diff options
499 files changed, 19594 insertions, 8354 deletions
diff --git a/Android.mk b/Android.mk index 7df1bd7fff9f..1247ae3a8639 100644 --- a/Android.mk +++ b/Android.mk @@ -90,6 +90,7 @@ LOCAL_SRC_FILES += \ core/java/android/app/IWallpaperManager.aidl \ core/java/android/app/IWallpaperManagerCallback.aidl \ core/java/android/app/admin/IDevicePolicyManager.aidl \ + core/java/android/app/trust/IStrongAuthTracker.aidl \ core/java/android/app/trust/ITrustManager.aidl \ core/java/android/app/trust/ITrustListener.aidl \ core/java/android/app/backup/IBackupManager.aidl \ @@ -159,6 +160,7 @@ LOCAL_SRC_FILES += \ core/java/android/hardware/fingerprint/IFingerprintDaemon.aidl \ core/java/android/hardware/fingerprint/IFingerprintDaemonCallback.aidl \ core/java/android/hardware/fingerprint/IFingerprintService.aidl \ + core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl \ core/java/android/hardware/fingerprint/IFingerprintServiceReceiver.aidl \ core/java/android/hardware/hdmi/IHdmiControlCallback.aidl \ core/java/android/hardware/hdmi/IHdmiControlService.aidl \ @@ -171,7 +173,9 @@ LOCAL_SRC_FILES += \ core/java/android/hardware/hdmi/IHdmiVendorCommandListener.aidl \ core/java/android/hardware/input/IInputManager.aidl \ core/java/android/hardware/input/IInputDevicesChangedListener.aidl \ + core/java/android/hardware/input/ITabletModeChangedListener.aidl \ core/java/android/hardware/location/IActivityRecognitionHardware.aidl \ + core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl \ core/java/android/hardware/location/IActivityRecognitionHardwareSink.aidl \ core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl \ core/java/android/hardware/location/IFusedLocationHardware.aidl \ diff --git a/api/current.txt b/api/current.txt index d7fdb2db68ee..c45cc3dbbf47 100644 --- a/api/current.txt +++ b/api/current.txt @@ -45134,7 +45134,10 @@ package java.lang.reflect { } public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public boolean equals(java.lang.Object); method public A getAnnotation(java.lang.Class<A>); + method public java.lang.annotation.Annotation[] getAnnotations(); + method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public java.lang.Class<T> getDeclaringClass(); method public java.lang.Class<?>[] getExceptionTypes(); method public java.lang.reflect.Type[] getGenericExceptionTypes(); @@ -45144,6 +45147,7 @@ package java.lang.reflect { method public java.lang.annotation.Annotation[][] getParameterAnnotations(); method public java.lang.Class<?>[] getParameterTypes(); method public java.lang.reflect.TypeVariable<java.lang.reflect.Constructor<T>>[] getTypeParameters(); + method public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>); method public boolean isSynthetic(); method public boolean isVarArgs(); method public T newInstance(java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException; @@ -45217,7 +45221,10 @@ package java.lang.reflect { } public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public boolean equals(java.lang.Object); method public A getAnnotation(java.lang.Class<A>); + method public java.lang.annotation.Annotation[] getAnnotations(); + method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public java.lang.Class<?> getDeclaringClass(); method public java.lang.Object getDefaultValue(); method public java.lang.Class<?>[] getExceptionTypes(); @@ -45231,6 +45238,7 @@ package java.lang.reflect { method public java.lang.Class<?> getReturnType(); method public java.lang.reflect.TypeVariable<java.lang.reflect.Method>[] getTypeParameters(); method public java.lang.Object invoke(java.lang.Object, java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException; + method public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>); method public boolean isBridge(); method public boolean isSynthetic(); method public boolean isVarArgs(); diff --git a/api/system-current.txt b/api/system-current.txt index 3c88e5979c8e..1e7b94e883e4 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -130,6 +130,7 @@ package android { field public static final java.lang.String MODIFY_APPWIDGET_BIND_PERMISSIONS = "android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS"; field public static final java.lang.String MODIFY_AUDIO_ROUTING = "android.permission.MODIFY_AUDIO_ROUTING"; field public static final java.lang.String MODIFY_AUDIO_SETTINGS = "android.permission.MODIFY_AUDIO_SETTINGS"; + field public static final java.lang.String MODIFY_CELL_BROADCASTS = "android.permission.MODIFY_CELL_BROADCASTS"; field public static final java.lang.String MODIFY_NETWORK_ACCOUNTING = "android.permission.MODIFY_NETWORK_ACCOUNTING"; field public static final java.lang.String MODIFY_PARENTAL_CONTROLS = "android.permission.MODIFY_PARENTAL_CONTROLS"; field public static final java.lang.String MODIFY_PHONE_STATE = "android.permission.MODIFY_PHONE_STATE"; @@ -32713,19 +32714,25 @@ package android.telecom { field public static final java.lang.String ACTION_DEFAULT_DIALER_CHANGED = "android.telecom.action.DEFAULT_DIALER_CHANGED"; field public static final java.lang.String ACTION_INCOMING_CALL = "android.telecom.action.INCOMING_CALL"; field public static final java.lang.String ACTION_PHONE_ACCOUNT_REGISTERED = "android.telecom.action.PHONE_ACCOUNT_REGISTERED"; + field public static final java.lang.String ACTION_PHONE_ACCOUNT_UNREGISTERED = "android.telecom.action.PHONE_ACCOUNT_UNREGISTERED"; field public static final java.lang.String ACTION_SHOW_CALL_ACCESSIBILITY_SETTINGS = "android.telecom.action.SHOW_CALL_ACCESSIBILITY_SETTINGS"; field public static final java.lang.String ACTION_SHOW_CALL_SETTINGS = "android.telecom.action.SHOW_CALL_SETTINGS"; + field public static final java.lang.String ACTION_SHOW_MISSED_CALLS_NOTIFICATION = "android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION"; field public static final java.lang.String ACTION_SHOW_RESPOND_VIA_SMS_SETTINGS = "android.telecom.action.SHOW_RESPOND_VIA_SMS_SETTINGS"; field public static final char DTMF_CHARACTER_PAUSE = 44; // 0x002c ',' field public static final char DTMF_CHARACTER_WAIT = 59; // 0x003b ';' + field public static final java.lang.String EXTRA_CALL_BACK_INTENT = "android.telecom.extra.CALL_BACK_INTENT"; field public static final java.lang.String EXTRA_CALL_BACK_NUMBER = "android.telecom.extra.CALL_BACK_NUMBER"; field public static final java.lang.String EXTRA_CALL_DISCONNECT_CAUSE = "android.telecom.extra.CALL_DISCONNECT_CAUSE"; field public static final java.lang.String EXTRA_CALL_DISCONNECT_MESSAGE = "android.telecom.extra.CALL_DISCONNECT_MESSAGE"; field public static final java.lang.String EXTRA_CALL_SUBJECT = "android.telecom.extra.CALL_SUBJECT"; field public static final java.lang.String EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME = "android.telecom.extra.CHANGE_DEFAULT_DIALER_PACKAGE_NAME"; + field public static final java.lang.String EXTRA_CLEAR_MISSED_CALLS_INTENT = "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT"; field public static final java.lang.String EXTRA_CONNECTION_SERVICE = "android.telecom.extra.CONNECTION_SERVICE"; field public static final java.lang.String EXTRA_INCOMING_CALL_ADDRESS = "android.telecom.extra.INCOMING_CALL_ADDRESS"; field public static final java.lang.String EXTRA_INCOMING_CALL_EXTRAS = "android.telecom.extra.INCOMING_CALL_EXTRAS"; + field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telecom.extra.NOTIFICATION_COUNT"; + field public static final java.lang.String EXTRA_NOTIFICATION_PHONE_NUMBER = "android.telecom.extra.NOTIFICATION_PHONE_NUMBER"; field public static final java.lang.String EXTRA_OUTGOING_CALL_EXTRAS = "android.telecom.extra.OUTGOING_CALL_EXTRAS"; field public static final java.lang.String EXTRA_PHONE_ACCOUNT_HANDLE = "android.telecom.extra.PHONE_ACCOUNT_HANDLE"; field public static final java.lang.String EXTRA_START_CALL_WITH_SPEAKERPHONE = "android.telecom.extra.START_CALL_WITH_SPEAKERPHONE"; @@ -33425,6 +33432,7 @@ package android.telephony { field public static final java.lang.String ACTION_CONFIGURE_VOICEMAIL = "android.telephony.action.CONFIGURE_VOICEMAIL"; field public static final java.lang.String ACTION_PHONE_STATE_CHANGED = "android.intent.action.PHONE_STATE"; field public static final java.lang.String ACTION_RESPOND_VIA_MESSAGE = "android.intent.action.RESPOND_VIA_MESSAGE"; + field public static final java.lang.String ACTION_SHOW_VOICEMAIL_NOTIFICATION = "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION"; field public static final int CALL_STATE_IDLE = 0; // 0x0 field public static final int CALL_STATE_OFFHOOK = 2; // 0x2 field public static final int CALL_STATE_RINGING = 1; // 0x1 @@ -33441,11 +33449,15 @@ package android.telephony { field public static final int DATA_CONNECTING = 1; // 0x1 field public static final int DATA_DISCONNECTED = 0; // 0x0 field public static final int DATA_SUSPENDED = 3; // 0x3 + field public static final java.lang.String EXTRA_CALL_VOICEMAIL_INTENT = "android.telephony.extra.CALL_VOICEMAIL_INTENT"; field public static final java.lang.String EXTRA_INCOMING_NUMBER = "incoming_number"; + field public static final java.lang.String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"; + field public static final java.lang.String EXTRA_NOTIFICATION_COUNT = "android.telephony.extra.NOTIFICATION_COUNT"; field public static final java.lang.String EXTRA_STATE = "state"; field public static final java.lang.String EXTRA_STATE_IDLE; field public static final java.lang.String EXTRA_STATE_OFFHOOK; field public static final java.lang.String EXTRA_STATE_RINGING; + field public static final java.lang.String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER"; field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7 field public static final int NETWORK_TYPE_CDMA = 4; // 0x4 field public static final int NETWORK_TYPE_EDGE = 2; // 0x2 @@ -47740,7 +47752,10 @@ package java.lang.reflect { } public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public boolean equals(java.lang.Object); method public A getAnnotation(java.lang.Class<A>); + method public java.lang.annotation.Annotation[] getAnnotations(); + method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public java.lang.Class<T> getDeclaringClass(); method public java.lang.Class<?>[] getExceptionTypes(); method public java.lang.reflect.Type[] getGenericExceptionTypes(); @@ -47750,6 +47765,7 @@ package java.lang.reflect { method public java.lang.annotation.Annotation[][] getParameterAnnotations(); method public java.lang.Class<?>[] getParameterTypes(); method public java.lang.reflect.TypeVariable<java.lang.reflect.Constructor<T>>[] getTypeParameters(); + method public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>); method public boolean isSynthetic(); method public boolean isVarArgs(); method public T newInstance(java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException; @@ -47823,7 +47839,10 @@ package java.lang.reflect { } public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public boolean equals(java.lang.Object); method public A getAnnotation(java.lang.Class<A>); + method public java.lang.annotation.Annotation[] getAnnotations(); + method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public java.lang.Class<?> getDeclaringClass(); method public java.lang.Object getDefaultValue(); method public java.lang.Class<?>[] getExceptionTypes(); @@ -47837,6 +47856,7 @@ package java.lang.reflect { method public java.lang.Class<?> getReturnType(); method public java.lang.reflect.TypeVariable<java.lang.reflect.Method>[] getTypeParameters(); method public java.lang.Object invoke(java.lang.Object, java.lang.Object...) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException, java.lang.reflect.InvocationTargetException; + method public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>); method public boolean isBridge(); method public boolean isSynthetic(); method public boolean isVarArgs(); diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp index fba462bfbe41..8f361ce1a779 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp @@ -556,15 +556,10 @@ bool BootAnimation::movie() mZip->endIteration(cookie); - // clear screen glShadeModel(GL_FLAT); glDisable(GL_DITHER); glDisable(GL_SCISSOR_TEST); glDisable(GL_BLEND); - glClearColor(0,0,0,1); - glClear(GL_COLOR_BUFFER_BIT); - - eglSwapBuffers(mDisplay, mSurface); glBindTexture(GL_TEXTURE_2D, 0); glEnable(GL_TEXTURE_2D); diff --git a/cmds/svc/src/com/android/commands/svc/NfcCommand.java b/cmds/svc/src/com/android/commands/svc/NfcCommand.java new file mode 100644 index 000000000000..e0f09ee2c666 --- /dev/null +++ b/cmds/svc/src/com/android/commands/svc/NfcCommand.java @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.commands.svc; + +import android.content.Context; +import android.content.pm.IPackageManager; +import android.content.pm.PackageManager; +import android.nfc.INfcAdapter; +import android.os.RemoteException; +import android.os.ServiceManager; + +public class NfcCommand extends Svc.Command { + + public NfcCommand() { + super("nfc"); + } + + @Override + public String shortHelp() { + return "Control NFC functions"; + } + + @Override + public String longHelp() { + return shortHelp() + "\n" + + "\n" + + "usage: svc nfc [enable|disable]\n" + + " Turn NFC on or off.\n\n"; + } + + @Override + public void run(String[] args) { + boolean validCommand = false; + if (args.length >= 2) { + boolean flag = false; + if ("enable".equals(args[1])) { + flag = true; + validCommand = true; + } else if ("disable".equals(args[1])) { + flag = false; + validCommand = true; + } + if (validCommand) { + IPackageManager pm = IPackageManager.Stub.asInterface( + ServiceManager.getService("package")); + try { + if (pm.hasSystemFeature(PackageManager.FEATURE_NFC)) { + INfcAdapter nfc = INfcAdapter.Stub + .asInterface(ServiceManager.getService(Context.NFC_SERVICE)); + try { + if (flag) { + nfc.enable(); + } else + nfc.disable(true); + } catch (RemoteException e) { + System.err.println("NFC operation failed: " + e); + } + } else { + System.err.println("NFC feature not supported."); + } + } catch (RemoteException e) { + System.err.println("RemoteException while calling PackageManager, is the " + + "system running?"); + } + return; + } + } + System.err.println(longHelp()); + } + +} diff --git a/cmds/svc/src/com/android/commands/svc/Svc.java b/cmds/svc/src/com/android/commands/svc/Svc.java index 0fbba11e927d..2cccd1a4dc92 100644 --- a/cmds/svc/src/com/android/commands/svc/Svc.java +++ b/cmds/svc/src/com/android/commands/svc/Svc.java @@ -95,6 +95,7 @@ public class Svc { new PowerCommand(), new DataCommand(), new WifiCommand(), - new UsbCommand() + new UsbCommand(), + new NfcCommand(), }; } diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 8c84b4d203ee..9ef13de6d444 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -426,7 +426,7 @@ public class AccountManager { @RequiresPermission(GET_ACCOUNTS) public Account[] getAccounts() { try { - return mService.getAccounts(null); + return mService.getAccounts(null, mContext.getOpPackageName()); } catch (RemoteException e) { // won't ever happen throw new RuntimeException(e); @@ -451,7 +451,7 @@ public class AccountManager { @RequiresPermission(GET_ACCOUNTS) public Account[] getAccountsAsUser(int userId) { try { - return mService.getAccountsAsUser(null, userId); + return mService.getAccountsAsUser(null, userId, mContext.getOpPackageName()); } catch (RemoteException e) { // won't ever happen throw new RuntimeException(e); @@ -468,7 +468,7 @@ public class AccountManager { */ public Account[] getAccountsForPackage(String packageName, int uid) { try { - return mService.getAccountsForPackage(packageName, uid); + return mService.getAccountsForPackage(packageName, uid, mContext.getOpPackageName()); } catch (RemoteException re) { // won't ever happen throw new RuntimeException(re); @@ -485,7 +485,8 @@ public class AccountManager { */ public Account[] getAccountsByTypeForPackage(String type, String packageName) { try { - return mService.getAccountsByTypeForPackage(type, packageName); + return mService.getAccountsByTypeForPackage(type, packageName, + mContext.getOpPackageName()); } catch (RemoteException re) { // won't ever happen throw new RuntimeException(re); @@ -522,7 +523,8 @@ public class AccountManager { /** @hide Same as {@link #getAccountsByType(String)} but for a specific user. */ public Account[] getAccountsByTypeAsUser(String type, UserHandle userHandle) { try { - return mService.getAccountsAsUser(type, userHandle.getIdentifier()); + return mService.getAccountsAsUser(type, userHandle.getIdentifier(), + mContext.getOpPackageName()); } catch (RemoteException e) { // won't ever happen throw new RuntimeException(e); @@ -610,7 +612,7 @@ public class AccountManager { if (features == null) throw new IllegalArgumentException("features is null"); return new Future2Task<Boolean>(handler, callback) { public void doWork() throws RemoteException { - mService.hasFeatures(mResponse, account, features); + mService.hasFeatures(mResponse, account, features, mContext.getOpPackageName()); } public Boolean bundleToResult(Bundle bundle) throws AuthenticatorException { if (!bundle.containsKey(KEY_BOOLEAN_RESULT)) { @@ -662,7 +664,8 @@ public class AccountManager { if (type == null) throw new IllegalArgumentException("type is null"); return new Future2Task<Account[]>(handler, callback) { public void doWork() throws RemoteException { - mService.getAccountsByFeatures(mResponse, type, features); + mService.getAccountsByFeatures(mResponse, type, features, + mContext.getOpPackageName()); } public Account[] bundleToResult(Bundle bundle) throws AuthenticatorException { if (!bundle.containsKey(KEY_ACCOUNTS)) { diff --git a/core/java/android/accounts/IAccountManager.aidl b/core/java/android/accounts/IAccountManager.aidl index 04b3c8864375..4378df408d10 100644 --- a/core/java/android/accounts/IAccountManager.aidl +++ b/core/java/android/accounts/IAccountManager.aidl @@ -30,12 +30,14 @@ interface IAccountManager { String getPassword(in Account account); String getUserData(in Account account, String key); AuthenticatorDescription[] getAuthenticatorTypes(int userId); - Account[] getAccounts(String accountType); - Account[] getAccountsForPackage(String packageName, int uid); - Account[] getAccountsByTypeForPackage(String type, String packageName); - Account[] getAccountsAsUser(String accountType, int userId); - void hasFeatures(in IAccountManagerResponse response, in Account account, in String[] features); - void getAccountsByFeatures(in IAccountManagerResponse response, String accountType, in String[] features); + Account[] getAccounts(String accountType, String opPackageName); + Account[] getAccountsForPackage(String packageName, int uid, String opPackageName); + Account[] getAccountsByTypeForPackage(String type, String packageName, String opPackageName); + Account[] getAccountsAsUser(String accountType, int userId, String opPackageName); + void hasFeatures(in IAccountManagerResponse response, in Account account, in String[] features, + String opPackageName); + void getAccountsByFeatures(in IAccountManagerResponse response, String accountType, + in String[] features, String opPackageName); boolean addAccountExplicitly(in Account account, String password, in Bundle extras); void removeAccount(in IAccountManagerResponse response, in Account account, boolean expectActivityLaunch); diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 890b75493874..83d41527650f 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -4238,6 +4238,11 @@ public final class ActivityThread { configDiff = mConfiguration.updateFrom(config); config = applyCompatConfiguration(mCurDefaultDisplayDpi); + + final Theme systemTheme = getSystemContext().getTheme(); + if ((systemTheme.getChangingConfigurations() & configDiff) != 0) { + systemTheme.rebase(); + } } ArrayList<ComponentCallbacks2> callbacks = collectComponentCallbacks(false, config); diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java index 9c0d93123d77..371c92393d17 100644 --- a/core/java/android/app/ActivityView.java +++ b/core/java/android/app/ActivityView.java @@ -239,6 +239,8 @@ public class ActivityView extends ViewGroup { } mTextureView.setSurfaceTextureListener(null); + + mThread.quit(); } private void attachToSurfaceWhenReady() { diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index 42ac67c7ae44..09c0a6e3ae46 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -235,8 +235,10 @@ public class AppOpsManager { public static final int OP_WRITE_EXTERNAL_STORAGE = 60; /** @hide Turned on the screen. */ public static final int OP_TURN_SCREEN_ON = 61; + /** @hide Get device accounts. */ + public static final int OP_GET_ACCOUNTS = 62; /** @hide */ - public static final int _NUM_OP = 62; + public static final int _NUM_OP = 63; /** Access to coarse location information. */ public static final String OPSTR_COARSE_LOCATION = "android:coarse_location"; @@ -331,6 +333,9 @@ public class AppOpsManager { /** Required to write/modify/update system settingss. */ public static final String OPSTR_WRITE_SETTINGS = "android:write_settings"; + /** @hide Get device accounts. */ + public static final String OPSTR_GET_ACCOUNTS + = "android:get_accounts"; /** * This maps each operation to the operation that serves as the @@ -403,6 +408,7 @@ public class AppOpsManager { OP_READ_EXTERNAL_STORAGE, OP_WRITE_EXTERNAL_STORAGE, OP_TURN_SCREEN_ON, + OP_GET_ACCOUNTS, }; /** @@ -472,6 +478,7 @@ public class AppOpsManager { OPSTR_READ_EXTERNAL_STORAGE, OPSTR_WRITE_EXTERNAL_STORAGE, null, + OPSTR_GET_ACCOUNTS }; /** @@ -541,6 +548,7 @@ public class AppOpsManager { "READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE", "TURN_ON_SCREEN", + "GET_ACCOUNTS", }; /** @@ -610,6 +618,7 @@ public class AppOpsManager { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE, null, // no permission for turning the screen on + Manifest.permission.GET_ACCOUNTS }; /** @@ -680,6 +689,7 @@ public class AppOpsManager { null, // READ_EXTERNAL_STORAGE null, // WRITE_EXTERNAL_STORAGE null, // TURN_ON_SCREEN + null, // GET_ACCOUNTS }; /** @@ -749,6 +759,7 @@ public class AppOpsManager { false, // READ_EXTERNAL_STORAGE false, // WRITE_EXTERNAL_STORAGE false, // TURN_ON_SCREEN + false, // GET_ACCOUNTS }; /** @@ -817,6 +828,7 @@ public class AppOpsManager { AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, // OP_TURN_ON_SCREEN + AppOpsManager.MODE_ALLOWED, }; /** @@ -889,6 +901,7 @@ public class AppOpsManager { false, false, false, + false }; /** diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index 82206ea998ea..d50483e4a3f4 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -460,6 +460,9 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene // If set this fragment is being retained across the current config change. boolean mRetaining; + // If set this fragment's loaders are being retained across the current config change. + boolean mRetainLoader; + // If set this fragment has menu items to contribute. boolean mHasMenu; @@ -2401,7 +2404,7 @@ public class Fragment implements ComponentCallbacks2, OnCreateContextMenuListene mLoaderManager = mHost.getLoaderManager(mWho, mLoadersStarted, false); } if (mLoaderManager != null) { - if (mRetaining) { + if (mRetainLoader) { mLoaderManager.doRetain(); } else { mLoaderManager.doStop(); diff --git a/core/java/android/app/FragmentController.java b/core/java/android/app/FragmentController.java index 28dadfa78b32..1b45137fb7c9 100644 --- a/core/java/android/app/FragmentController.java +++ b/core/java/android/app/FragmentController.java @@ -341,6 +341,7 @@ public class FragmentController { */ public void doLoaderStop(boolean retain) { mHost.doLoaderStop(retain); + mHost.mFragmentManager.setRetainLoader(retain); } /** diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index 3b026d26b757..51d613247c87 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -869,6 +869,17 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate } } + void setRetainLoader(boolean retain) { + if (mActive != null) { + for (int i=0; i<mActive.size(); i++) { + Fragment f = mActive.get(i); + if (f != null) { + f.mRetainLoader = retain; + } + } + } + } + void moveToState(Fragment f, int newState, int transit, int transitionStyle, boolean keepActive) { if (DEBUG && false) Log.v(TAG, "moveToState: " + f @@ -2196,6 +2207,7 @@ final class FragmentManagerImpl extends FragmentManager implements LayoutInflate fragment.mTag = tag; fragment.mInLayout = true; fragment.mFragmentManager = this; + fragment.mHost = mHost; fragment.onInflate(mHost.getContext(), attrs, fragment.mSavedFragmentState); addFragment(fragment, true); } else if (fragment.mInLayout) { diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index f3f24280d435..55aec5906cac 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -953,6 +953,9 @@ public class Notification implements Parcelable private Action(Icon icon, CharSequence title, PendingIntent intent, Bundle extras, RemoteInput[] remoteInputs) { this.mIcon = icon; + if (icon != null && icon.getType() == Icon.TYPE_RESOURCE) { + this.icon = icon.getResId(); + } this.title = title; this.actionIntent = intent; this.mExtras = extras != null ? extras : new Bundle(); @@ -4607,7 +4610,7 @@ public class Notification implements Parcelable * Size value for use with {@link #setCustomSizePreset} to show this notification with * default sizing. * <p>For custom display notifications created using {@link #setDisplayIntent}, - * the default is {@link #SIZE_LARGE}. All other notifications size automatically based + * the default is {@link #SIZE_MEDIUM}. All other notifications size automatically based * on their content. */ public static final int SIZE_DEFAULT = 0; diff --git a/core/java/android/app/StatusBarManager.java b/core/java/android/app/StatusBarManager.java index 31d1ab7b92ac..5e8ad68957b2 100644 --- a/core/java/android/app/StatusBarManager.java +++ b/core/java/android/app/StatusBarManager.java @@ -90,6 +90,9 @@ public class StatusBarManager { public static final int WINDOW_STATE_HIDING = 1; public static final int WINDOW_STATE_HIDDEN = 2; + public static final int CAMERA_LAUNCH_SOURCE_WIGGLE = 0; + public static final int CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP = 1; + private Context mContext; private IStatusBarService mService; private IBinder mToken = new Binder(); diff --git a/core/java/android/app/trust/IStrongAuthTracker.aidl b/core/java/android/app/trust/IStrongAuthTracker.aidl new file mode 100644 index 000000000000..36c71bff7682 --- /dev/null +++ b/core/java/android/app/trust/IStrongAuthTracker.aidl @@ -0,0 +1,26 @@ +/* +** +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +package android.app.trust; + +/** + * Private API to be notified about strong auth changes + * + * {@hide} + */ +oneway interface IStrongAuthTracker { + void onStrongAuthRequiredChanged(int strongAuthRequired, int userId); +}
\ No newline at end of file diff --git a/core/java/android/app/trust/ITrustManager.aidl b/core/java/android/app/trust/ITrustManager.aidl index 32951d997975..2dea5454054c 100644 --- a/core/java/android/app/trust/ITrustManager.aidl +++ b/core/java/android/app/trust/ITrustManager.aidl @@ -26,11 +26,9 @@ import android.app.trust.ITrustListener; interface ITrustManager { void reportUnlockAttempt(boolean successful, int userId); void reportEnabledTrustAgentsChanged(int userId); - void reportRequireCredentialEntry(int userId); void registerTrustListener(in ITrustListener trustListener); void unregisterTrustListener(in ITrustListener trustListener); void reportKeyguardShowingChanged(); boolean isDeviceLocked(int userId); boolean isDeviceSecure(int userId); - boolean hasUserAuthenticatedSinceBoot(int userId); } diff --git a/core/java/android/app/trust/TrustManager.java b/core/java/android/app/trust/TrustManager.java index 8cab565f8bad..aff69f07eef8 100644 --- a/core/java/android/app/trust/TrustManager.java +++ b/core/java/android/app/trust/TrustManager.java @@ -16,13 +16,19 @@ package android.app.trust; +import android.annotation.IntDef; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.RemoteException; +import android.os.UserHandle; import android.util.ArrayMap; import android.util.Log; +import android.util.SparseIntArray; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; /** * See {@link com.android.server.trust.TrustManagerService} @@ -73,21 +79,6 @@ public class TrustManager { } /** - * Reports that trust is disabled until credentials have been entered for user {@param userId}. - * - * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission. - * - * @param userId either an explicit user id or {@link android.os.UserHandle#USER_ALL} - */ - public void reportRequireCredentialEntry(int userId) { - try { - mService.reportRequireCredentialEntry(userId); - } catch (RemoteException e) { - onError(e); - } - } - - /** * Reports that the visibility of the keyguard has changed. * * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission. @@ -147,23 +138,6 @@ public class TrustManager { } } - /** - * Checks whether the specified user has been authenticated since the last boot. - * - * @param userId the user id of the user to check for - * @return true if the user has authenticated since boot, false otherwise - * - * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission. - */ - public boolean hasUserAuthenticatedSinceBoot(int userId) { - try { - return mService.hasUserAuthenticatedSinceBoot(userId); - } catch (RemoteException e) { - onError(e); - return false; - } - } - private void onError(Exception e) { Log.e(TAG, "Error while calling TrustManagerService", e); } diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index cba257cea9c2..dac17d559276 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -1604,6 +1604,23 @@ public class Intent implements Parcelable, Cloneable { = "android.intent.action.GET_PERMISSIONS_COUNT"; /** + * Broadcast action that requests list of all apps that have runtime permissions. It will + * respond to the request by sending a broadcast with action defined by + * {@link #EXTRA_GET_PERMISSIONS_PACKAGES_RESPONSE_INTENT}. The response will contain + * {@link #EXTRA_GET_PERMISSIONS_APP_LIST_RESULT}, as well as + * {@link #EXTRA_GET_PERMISSIONS_APP_LABEL_LIST_RESULT}, with contents described below or + * a null upon failure. + * + * <p>{@link #EXTRA_GET_PERMISSIONS_APP_LIST_RESULT} will contain a list of package names of + * apps that have runtime permissions. {@link #EXTRA_GET_PERMISSIONS_APP_LABEL_LIST_RESULT} + * will contain the list of app labels corresponding ot the apps in the first list. + * + * @hide + */ + public static final String ACTION_GET_PERMISSIONS_PACKAGES + = "android.intent.action.GET_PERMISSIONS_PACKAGES"; + + /** * Extra included in response to {@link #ACTION_GET_PERMISSIONS_COUNT}. * @hide */ @@ -1618,6 +1635,20 @@ public class Intent implements Parcelable, Cloneable { = "android.intent.extra.GET_PERMISSIONS_GROUP_LIST_RESULT"; /** + * String list of apps that have one or more runtime permissions. + * @hide + */ + public static final String EXTRA_GET_PERMISSIONS_APP_LIST_RESULT + = "android.intent.extra.GET_PERMISSIONS_APP_LIST_RESULT"; + + /** + * String list of app labels for apps that have one or more runtime permissions. + * @hide + */ + public static final String EXTRA_GET_PERMISSIONS_APP_LABEL_LIST_RESULT + = "android.intent.extra.GET_PERMISSIONS_APP_LABEL_LIST_RESULT"; + + /** * Required extra to be sent with {@link #ACTION_GET_PERMISSIONS_COUNT} broadcasts. * @hide */ @@ -1625,6 +1656,13 @@ public class Intent implements Parcelable, Cloneable { = "android.intent.extra.GET_PERMISSIONS_RESONSE_INTENT"; /** + * Required extra to be sent with {@link #ACTION_GET_PERMISSIONS_PACKAGES} broadcasts. + * @hide + */ + public static final String EXTRA_GET_PERMISSIONS_PACKAGES_RESPONSE_INTENT + = "android.intent.extra.GET_PERMISSIONS_PACKAGES_RESONSE_INTENT"; + + /** * Activity action: Launch UI to manage which apps have a given permission. * <p> * Input: {@link #EXTRA_PERMISSION_NAME} specifies the permission access @@ -2986,6 +3024,39 @@ public class Intent implements Parcelable, Cloneable { public static final String EXTRA_PROCESS_TEXT_READONLY = "android.intent.extra.PROCESS_TEXT_READONLY"; + /** + * Broadcast action: reports when a new thermal event has been reached. When the device + * is reaching its maximum temperatue, the thermal level reported + * {@hide} + */ + @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION) + public static final String ACTION_THERMAL_EVENT = "android.intent.action.THERMAL_EVENT"; + + /** {@hide} */ + public static final String EXTRA_THERMAL_STATE = "android.intent.extra.THERMAL_STATE"; + + /** + * Thermal state when the device is normal. This state is sent in the + * {@link ACTION_THERMAL_EVENT} broadcast as {@link EXTRA_THERMAL_STATE}. + * {@hide} + */ + public static final int EXTRA_THERMAL_STATE_NORMAL = 0; + + /** + * Thermal state where the device is approaching its maximum threshold. This state is sent in + * the {@link ACTION_THERMAL_EVENT} broadcast as {@link EXTRA_THERMAL_STATE}. + * {@hide} + */ + public static final int EXTRA_THERMAL_STATE_WARNING = 1; + + /** + * Thermal state where the device has reached its maximum threshold. This state is sent in the + * {@link ACTION_THERMAL_EVENT} broadcast as {@link EXTRA_THERMAL_STATE}. + * {@hide} + */ + public static final int EXTRA_THERMAL_STATE_EXCEEDED = 2; + + // --------------------------------------------------------------------- // --------------------------------------------------------------------- // Standard intent categories (see addCategory()). diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index ed7a2a3ea30d..7032c9a861cf 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -4520,6 +4520,17 @@ public class PackageParser { return applicationInfo.isUpdatedSystemApp(); } + /** + * @hide + */ + public boolean canHaveOatDir() { + // The following app types CANNOT have oat directory + // - non-updated system apps + // - forward-locked apps or apps installed in ASEC containers + return (!isSystemApp() || isUpdatedSystemApp()) + && !isForwardLocked() && !applicationInfo.isExternalAsec(); + } + public String toString() { return "Package{" + Integer.toHexString(System.identityHashCode(this)) diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java index 788aee9ec4c3..661425c51af8 100644 --- a/core/java/android/content/res/Resources.java +++ b/core/java/android/content/res/Resources.java @@ -1426,10 +1426,12 @@ public class Resources { * if not already defined in the theme. */ public void applyStyle(int resId, boolean force) { - AssetManager.applyThemeStyle(mTheme, resId, force); + synchronized (mKey) { + AssetManager.applyThemeStyle(mTheme, resId, force); - mThemeResId = resId; - mKey.append(resId, force); + mThemeResId = resId; + mKey.append(resId, force); + } } /** @@ -1442,10 +1444,14 @@ public class Resources { * @param other The existing Theme to copy from. */ public void setTo(Theme other) { - AssetManager.copyTheme(mTheme, other.mTheme); + synchronized (mKey) { + synchronized (other.mKey) { + AssetManager.copyTheme(mTheme, other.mTheme); - mThemeResId = other.mThemeResId; - mKey.setTo(other.getKey()); + mThemeResId = other.mThemeResId; + mKey.setTo(other.getKey()); + } + } } /** @@ -1468,11 +1474,13 @@ public class Resources { * @see #obtainStyledAttributes(AttributeSet, int[], int, int) */ public TypedArray obtainStyledAttributes(@StyleableRes int[] attrs) { - final int len = attrs.length; - final TypedArray array = TypedArray.obtain(Resources.this, len); - array.mTheme = this; - AssetManager.applyStyle(mTheme, 0, 0, 0, attrs, array.mData, array.mIndices); - return array; + synchronized (mKey) { + final int len = attrs.length; + final TypedArray array = TypedArray.obtain(Resources.this, len); + array.mTheme = this; + AssetManager.applyStyle(mTheme, 0, 0, 0, attrs, array.mData, array.mIndices); + return array; + } } /** @@ -1482,7 +1490,7 @@ public class Resources { * <p>Be sure to call {@link TypedArray#recycle() TypedArray.recycle()} when you are done * with the array. * - * @param resid The desired style resource. + * @param resId The desired style resource. * @param attrs The desired attributes in the style. * * @throws NotFoundException Throws NotFoundException if the given ID does not exist. @@ -1495,39 +1503,15 @@ public class Resources { * @see #obtainStyledAttributes(int[]) * @see #obtainStyledAttributes(AttributeSet, int[], int, int) */ - public TypedArray obtainStyledAttributes(@StyleRes int resid, @StyleableRes int[] attrs) + public TypedArray obtainStyledAttributes(@StyleRes int resId, @StyleableRes int[] attrs) throws NotFoundException { - final int len = attrs.length; - final TypedArray array = TypedArray.obtain(Resources.this, len); - array.mTheme = this; - if (false) { - int[] data = array.mData; - - System.out.println("**********************************************************"); - System.out.println("**********************************************************"); - System.out.println("**********************************************************"); - System.out.println("Attributes:"); - String s = " Attrs:"; - int i; - for (i=0; i<attrs.length; i++) { - s = s + " 0x" + Integer.toHexString(attrs[i]); - } - System.out.println(s); - s = " Found:"; - TypedValue value = new TypedValue(); - for (i=0; i<attrs.length; i++) { - int d = i*AssetManager.STYLE_NUM_ENTRIES; - value.type = data[d+AssetManager.STYLE_TYPE]; - value.data = data[d+AssetManager.STYLE_DATA]; - value.assetCookie = data[d+AssetManager.STYLE_ASSET_COOKIE]; - value.resourceId = data[d+AssetManager.STYLE_RESOURCE_ID]; - s = s + " 0x" + Integer.toHexString(attrs[i]) - + "=" + value; - } - System.out.println(s); + synchronized (mKey) { + final int len = attrs.length; + final TypedArray array = TypedArray.obtain(Resources.this, len); + array.mTheme = this; + AssetManager.applyStyle(mTheme, 0, resId, 0, attrs, array.mData, array.mIndices); + return array; } - AssetManager.applyStyle(mTheme, 0, resid, 0, attrs, array.mData, array.mIndices); - return array; } /** @@ -1580,50 +1564,23 @@ public class Resources { */ public TypedArray obtainStyledAttributes(AttributeSet set, @StyleableRes int[] attrs, @AttrRes int defStyleAttr, @StyleRes int defStyleRes) { - final int len = attrs.length; - final TypedArray array = TypedArray.obtain(Resources.this, len); - - // XXX note that for now we only work with compiled XML files. - // To support generic XML files we will need to manually parse - // out the attributes from the XML file (applying type information - // contained in the resources and such). - final XmlBlock.Parser parser = (XmlBlock.Parser)set; - AssetManager.applyStyle(mTheme, defStyleAttr, defStyleRes, - parser != null ? parser.mParseState : 0, attrs, array.mData, array.mIndices); + synchronized (mKey) { + final int len = attrs.length; + final TypedArray array = TypedArray.obtain(Resources.this, len); - array.mTheme = this; - array.mXml = parser; + // XXX note that for now we only work with compiled XML files. + // To support generic XML files we will need to manually parse + // out the attributes from the XML file (applying type information + // contained in the resources and such). + final XmlBlock.Parser parser = (XmlBlock.Parser) set; + AssetManager.applyStyle(mTheme, defStyleAttr, defStyleRes, + parser != null ? parser.mParseState : 0, + attrs, array.mData, array.mIndices); + array.mTheme = this; + array.mXml = parser; - if (false) { - int[] data = array.mData; - - System.out.println("Attributes:"); - String s = " Attrs:"; - int i; - for (i=0; i<set.getAttributeCount(); i++) { - s = s + " " + set.getAttributeName(i); - int id = set.getAttributeNameResource(i); - if (id != 0) { - s = s + "(0x" + Integer.toHexString(id) + ")"; - } - s = s + "=" + set.getAttributeValue(i); - } - System.out.println(s); - s = " Found:"; - TypedValue value = new TypedValue(); - for (i=0; i<attrs.length; i++) { - int d = i*AssetManager.STYLE_NUM_ENTRIES; - value.type = data[d+AssetManager.STYLE_TYPE]; - value.data = data[d+AssetManager.STYLE_DATA]; - value.assetCookie = data[d+AssetManager.STYLE_ASSET_COOKIE]; - value.resourceId = data[d+AssetManager.STYLE_RESOURCE_ID]; - s = s + " 0x" + Integer.toHexString(attrs[i]) - + "=" + value; - } - System.out.println(s); + return array; } - - return array; } /** @@ -1642,18 +1599,20 @@ public class Resources { */ @NonNull public TypedArray resolveAttributes(@NonNull int[] values, @NonNull int[] attrs) { - final int len = attrs.length; - if (values == null || len != values.length) { - throw new IllegalArgumentException( - "Base attribute values must the same length as attrs"); - } + synchronized (mKey) { + final int len = attrs.length; + if (values == null || len != values.length) { + throw new IllegalArgumentException( + "Base attribute values must the same length as attrs"); + } - final TypedArray array = TypedArray.obtain(Resources.this, len); - AssetManager.resolveAttrs(mTheme, 0, 0, values, attrs, array.mData, array.mIndices); - array.mTheme = this; - array.mXml = null; + final TypedArray array = TypedArray.obtain(Resources.this, len); + AssetManager.resolveAttrs(mTheme, 0, 0, values, attrs, array.mData, array.mIndices); + array.mTheme = this; + array.mXml = null; - return array; + return array; + } } /** @@ -1674,14 +1633,9 @@ public class Resources { * <var>outValue</var> is valid, else false. */ public boolean resolveAttribute(int resid, TypedValue outValue, boolean resolveRefs) { - boolean got = mAssets.getThemeValue(mTheme, resid, outValue, resolveRefs); - if (false) { - System.out.println( - "resolveAttribute #" + Integer.toHexString(resid) - + " got=" + got + ", type=0x" + Integer.toHexString(outValue.type) - + ", data=0x" + Integer.toHexString(outValue.data)); + synchronized (mKey) { + return mAssets.getThemeValue(mTheme, resid, outValue, resolveRefs); } - return got; } /** @@ -1727,8 +1681,11 @@ public class Resources { * @see ActivityInfo */ public int getChangingConfigurations() { - final int nativeChangingConfig = AssetManager.getThemeChangingConfigurations(mTheme); - return ActivityInfo.activityInfoConfigNativeToJava(nativeChangingConfig); + synchronized (mKey) { + final int nativeChangingConfig = + AssetManager.getThemeChangingConfigurations(mTheme); + return ActivityInfo.activityInfoConfigNativeToJava(nativeChangingConfig); + } } /** @@ -1739,7 +1696,9 @@ public class Resources { * @param prefix Text to prefix each line printed. */ public void dump(int priority, String tag, String prefix) { - AssetManager.dumpTheme(mTheme, priority, tag, prefix); + synchronized (mKey) { + AssetManager.dumpTheme(mTheme, priority, tag, prefix); + } } @Override @@ -1789,19 +1748,21 @@ public class Resources { */ @ViewDebug.ExportedProperty(category = "theme", hasAdjacentMapping = true) public String[] getTheme() { - final int N = mKey.mCount; - final String[] themes = new String[N * 2]; - for (int i = 0, j = N - 1; i < themes.length; i += 2, --j) { - final int resId = mKey.mResId[j]; - final boolean forced = mKey.mForce[j]; - try { - themes[i] = getResourceName(resId); - } catch (NotFoundException e) { - themes[i] = Integer.toHexString(i); + synchronized (mKey) { + final int N = mKey.mCount; + final String[] themes = new String[N * 2]; + for (int i = 0, j = N - 1; i < themes.length; i += 2, --j) { + final int resId = mKey.mResId[j]; + final boolean forced = mKey.mForce[j]; + try { + themes[i] = getResourceName(resId); + } catch (NotFoundException e) { + themes[i] = Integer.toHexString(i); + } + themes[i + 1] = forced ? "forced" : "not forced"; } - themes[i + 1] = forced ? "forced" : "not forced"; + return themes; } - return themes; } /** @hide */ @@ -1822,13 +1783,15 @@ public class Resources { * @hide */ public void rebase() { - AssetManager.clearTheme(mTheme); - - // Reapply the same styles in the same order. - for (int i = 0; i < mKey.mCount; i++) { - final int resId = mKey.mResId[i]; - final boolean force = mKey.mForce[i]; - AssetManager.applyThemeStyle(mTheme, resId, force); + synchronized (mKey) { + AssetManager.clearTheme(mTheme); + + // Reapply the same styles in the same order. + for (int i = 0; i < mKey.mCount; i++) { + final int resId = mKey.mResId[i]; + final boolean force = mKey.mForce[i]; + AssetManager.applyThemeStyle(mTheme, resId, force); + } } } } diff --git a/core/java/android/hardware/ICameraServiceProxy.aidl b/core/java/android/hardware/ICameraServiceProxy.aidl index 0bb24bc2b04e..0e654d5083b6 100644 --- a/core/java/android/hardware/ICameraServiceProxy.aidl +++ b/core/java/android/hardware/ICameraServiceProxy.aidl @@ -19,6 +19,8 @@ package android.hardware; /** * Binder interface for the camera service proxy running in system_server. * + * Keep in sync with frameworks/av/include/camera/ICameraServiceProxy.h + * * @hide */ interface ICameraServiceProxy @@ -27,4 +29,9 @@ interface ICameraServiceProxy * Ping the service proxy to update the valid users for the camera service. */ oneway void pingForUserUpdate(); + + /** + * Update the status of a camera device + */ + oneway void notifyCameraState(String cameraId, int newCameraState); } diff --git a/core/java/android/hardware/camera2/CameraCaptureSession.java b/core/java/android/hardware/camera2/CameraCaptureSession.java index 46ffe365d66c..766868da9193 100644 --- a/core/java/android/hardware/camera2/CameraCaptureSession.java +++ b/core/java/android/hardware/camera2/CameraCaptureSession.java @@ -138,6 +138,48 @@ public abstract class CameraCaptureSession implements AutoCloseable { */ public abstract void prepare(@NonNull Surface surface) throws CameraAccessException; + /** + * <p>Pre-allocate at most maxCount buffers for an output Surface.</p> + * + * <p>Like the {@link #prepare(Surface)} method, this method can be used to allocate output + * buffers for a given Surface. However, while the {@link #prepare(Surface)} method allocates + * the maximum possible buffer count, this method allocates at most maxCount buffers.</p> + * + * <p>If maxCount is greater than the possible maximum count (which is the sum of the buffer + * count requested by the creator of the Surface and the count requested by the camera device), + * only the possible maximum count is allocated, in which case the function acts exactly like + * {@link #prepare(Surface)}.</p> + * + * <p>The restrictions on when this method can be called are the same as for + * {@link #prepare(Surface)}.</p> + * + * <p>Repeated calls to this method are allowed, and a mix of {@link #prepare(Surface)} and + * this method is also allowed. Note that after the first call to {@link #prepare(Surface)}, + * subsequent calls to either prepare method are effectively no-ops. In addition, this method + * is not additive in terms of buffer count. This means calling it twice with maxCount = 2 + * will only allocate 2 buffers, not 4 (assuming the possible maximum is at least 2); to + * allocate two buffers on the first call and two on the second, the application needs to call + * prepare with prepare(surface, 2) and prepare(surface, 4).</p> + * + * @param maxCount the buffer count to try to allocate. If this is greater than the possible + * maximum for this output, the possible maximum is allocated instead. If + * maxCount buffers are already allocated, then prepare will do nothing. + * @param surface the output Surface for which buffers should be pre-allocated. + * + * @throws CameraAccessException if the camera device is no longer connected or has + * encountered a fatal error. + * @throws IllegalStateException if this session is no longer active, either because the + * session was explicitly closed, a new session has been created + * or the camera device has been closed. + * @throws IllegalArgumentException if the Surface is invalid, not part of this Session, + * or has already been used as a target of a CaptureRequest in + * this session or immediately prior sessions without an + * intervening tearDown call. + * + * @hide + */ + public abstract void prepare(int maxCount, @NonNull Surface surface) + throws CameraAccessException; /** * <p>Free all buffers allocated for an output Surface.</p> diff --git a/core/java/android/hardware/camera2/ICameraDeviceUser.aidl b/core/java/android/hardware/camera2/ICameraDeviceUser.aidl index 7cb367329dbe..c9c9abc805f6 100644 --- a/core/java/android/hardware/camera2/ICameraDeviceUser.aidl +++ b/core/java/android/hardware/camera2/ICameraDeviceUser.aidl @@ -102,4 +102,6 @@ interface ICameraDeviceUser int prepare(int streamId); int tearDown(int streamId); + + int prepare2(int maxCount, int streamId); } diff --git a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java index d325c77de0ef..55738963fe4d 100644 --- a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java @@ -146,6 +146,11 @@ public class CameraCaptureSessionImpl extends CameraCaptureSession } @Override + public void prepare(int maxCount, Surface surface) throws CameraAccessException { + mDeviceImpl.prepare(maxCount, surface); + } + + @Override public void tearDown(Surface surface) throws CameraAccessException { mDeviceImpl.tearDown(surface); } diff --git a/core/java/android/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl.java index a920e2b37361..8cd1da50c58a 100644 --- a/core/java/android/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraConstrainedHighSpeedCaptureSessionImpl.java @@ -169,6 +169,11 @@ public class CameraConstrainedHighSpeedCaptureSessionImpl } @Override + public void prepare(int maxCount, Surface surface) throws CameraAccessException { + mSessionImpl.prepare(maxCount, surface); + } + + @Override public void tearDown(Surface surface) throws CameraAccessException { mSessionImpl.tearDown(surface); } diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java index 91d623eae5f9..6e02df1f7131 100644 --- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @@ -679,6 +679,33 @@ public class CameraDeviceImpl extends CameraDevice { } } + public void prepare(int maxCount, Surface surface) throws CameraAccessException { + if (surface == null) throw new IllegalArgumentException("Surface is null"); + if (maxCount <= 0) throw new IllegalArgumentException("Invalid maxCount given: " + + maxCount); + + synchronized(mInterfaceLock) { + int streamId = -1; + for (int i = 0; i < mConfiguredOutputs.size(); i++) { + if (surface == mConfiguredOutputs.valueAt(i).getSurface()) { + streamId = mConfiguredOutputs.keyAt(i); + break; + } + } + if (streamId == -1) { + throw new IllegalArgumentException("Surface is not part of this session"); + } + try { + mRemoteDevice.prepare2(maxCount, streamId); + } catch (CameraRuntimeException e) { + throw e.asChecked(); + } catch (RemoteException e) { + // impossible + return; + } + } + } + public void tearDown(Surface surface) throws CameraAccessException { if (surface == null) throw new IllegalArgumentException("Surface is null"); diff --git a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java index e20eaa778ab9..6b8e1134f4d2 100644 --- a/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java +++ b/core/java/android/hardware/camera2/legacy/CameraDeviceUserShim.java @@ -636,6 +636,11 @@ public class CameraDeviceUserShim implements ICameraDeviceUser { return CameraBinderDecorator.NO_ERROR; } + public int prepare2(int maxCount, int streamId) { + // We don't support this in LEGACY mode. + return prepare(streamId); + } + public int tearDown(int streamId) { if (DEBUG) { Log.d(TAG, "tearDown called."); diff --git a/core/java/android/hardware/camera2/params/OutputConfiguration.java b/core/java/android/hardware/camera2/params/OutputConfiguration.java index 7aa9787a73fa..a04cdcebaa4c 100644 --- a/core/java/android/hardware/camera2/params/OutputConfiguration.java +++ b/core/java/android/hardware/camera2/params/OutputConfiguration.java @@ -19,7 +19,9 @@ package android.hardware.camera2.params; import android.hardware.camera2.CameraDevice; import android.hardware.camera2.utils.HashCodeHelpers; +import android.hardware.camera2.utils.SurfaceUtils; import android.util.Log; +import android.util.Size; import android.view.Surface; import android.os.Parcel; import android.os.Parcelable; @@ -66,9 +68,7 @@ public final class OutputConfiguration implements Parcelable { * */ public OutputConfiguration(Surface surface) { - checkNotNull(surface, "Surface must not be null"); - mSurface = surface; - mRotation = ROTATION_0; + this(surface, ROTATION_0); } /** @@ -94,6 +94,9 @@ public final class OutputConfiguration implements Parcelable { checkArgumentInRange(rotation, ROTATION_0, ROTATION_270, "Rotation constant"); mSurface = surface; mRotation = rotation; + mConfiguredSize = SurfaceUtils.getSurfaceSize(surface); + mConfiguredFormat = SurfaceUtils.getSurfaceFormat(surface); + mConfiguredDataspace = SurfaceUtils.getSurfaceDataspace(surface); } /** @@ -106,6 +109,9 @@ public final class OutputConfiguration implements Parcelable { checkArgumentInRange(rotation, ROTATION_0, ROTATION_270, "Rotation constant"); mSurface = surface; mRotation = rotation; + mConfiguredSize = SurfaceUtils.getSurfaceSize(mSurface); + mConfiguredFormat = SurfaceUtils.getSurfaceFormat(mSurface); + mConfiguredDataspace = SurfaceUtils.getSurfaceDataspace(mSurface); } /** @@ -163,8 +169,9 @@ public final class OutputConfiguration implements Parcelable { /** * Check if this {@link OutputConfiguration} is equal to another {@link OutputConfiguration}. * - * <p>Two output configurations are only equal if and only if the underlying surface and - * all other configuration parameters are equal. </p> + * <p>Two output configurations are only equal if and only if the underlying surfaces, surface + * properties (width, height, format, dataspace) when the output configurations are created, + * and all other configuration parameters are equal. </p> * * @return {@code true} if the objects were equal, {@code false} otherwise */ @@ -176,7 +183,11 @@ public final class OutputConfiguration implements Parcelable { return true; } else if (obj instanceof OutputConfiguration) { final OutputConfiguration other = (OutputConfiguration) obj; - return (mSurface == other.mSurface && mRotation == other.mRotation); + return mSurface == other.mSurface && + mRotation == other.mRotation && + mConfiguredSize.equals(other.mConfiguredSize) && + mConfiguredFormat == other.mConfiguredFormat && + mConfiguredDataspace == other.mConfiguredDataspace; } return false; } @@ -192,4 +203,9 @@ public final class OutputConfiguration implements Parcelable { private static final String TAG = "OutputConfiguration"; private final Surface mSurface; private final int mRotation; + + // The size, format, and dataspace of the surface when OutputConfiguration is created. + private final Size mConfiguredSize; + private final int mConfiguredFormat; + private final int mConfiguredDataspace; } diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java index 21ba7bda493e..121a187b3639 100644 --- a/core/java/android/hardware/display/DisplayManagerGlobal.java +++ b/core/java/android/hardware/display/DisplayManagerGlobal.java @@ -359,6 +359,14 @@ public final class DisplayManagerGlobal { } } + public void requestColorTransform(int displayId, int colorTransformId) { + try { + mDm.requestColorTransform(displayId, colorTransformId); + } catch (RemoteException ex) { + Log.e(TAG, "Failed to request color transform.", ex); + } + } + public VirtualDisplay createVirtualDisplay(Context context, MediaProjection projection, String name, int width, int height, int densityDpi, Surface surface, int flags, VirtualDisplay.Callback callback, Handler handler) { diff --git a/core/java/android/hardware/display/IDisplayManager.aidl b/core/java/android/hardware/display/IDisplayManager.aidl index 4486dd4e0887..8a1abf18602a 100644 --- a/core/java/android/hardware/display/IDisplayManager.aidl +++ b/core/java/android/hardware/display/IDisplayManager.aidl @@ -59,6 +59,9 @@ interface IDisplayManager { // No permissions required. WifiDisplayStatus getWifiDisplayStatus(); + // Requires CONFIGURE_DISPLAY_COLOR_TRANSFORM + void requestColorTransform(int displayId, int colorTransformId); + // Requires CAPTURE_VIDEO_OUTPUT, CAPTURE_SECURE_VIDEO_OUTPUT, or an appropriate // MediaProjection token for certain combinations of flags. int createVirtualDisplay(in IVirtualDisplayCallback callback, diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 6e29989b7744..122df2394b6b 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -27,6 +27,7 @@ import android.os.CancellationSignal.OnCancelListener; import android.os.Handler; import android.os.IBinder; import android.os.Looper; +import android.os.PowerManager; import android.os.RemoteException; import android.os.UserHandle; import android.security.keystore.AndroidKeyStoreProvider; @@ -392,6 +393,18 @@ public class FingerprintManager { }; /** + * @hide + */ + public static abstract class LockoutResetCallback { + + /** + * Called when lockout period expired and clients are allowed to listen for fingerprint + * again. + */ + public void onLockoutReset() { } + }; + + /** * Request authentication of a crypto object. This call warms up the fingerprint hardware * and starts scanning for a fingerprint. It terminates when * {@link AuthenticationCallback#onAuthenticationError(int, CharSequence)} or @@ -668,6 +681,60 @@ public class FingerprintManager { return 0; } + /** + * Reset the lockout timer when asked to do so by keyguard. + * + * @param token an opaque token returned by password confirmation. + * + * @hide + */ + public void resetTimeout(byte[] token) { + if (mService != null) { + try { + mService.resetTimeout(token); + } catch (RemoteException e) { + Log.v(TAG, "Remote exception in resetTimeout(): ", e); + } + } else { + Log.w(TAG, "resetTimeout(): Service not connected!"); + } + } + + /** + * @hide + */ + public void addLockoutResetCallback(final LockoutResetCallback callback) { + if (mService != null) { + try { + final PowerManager powerManager = mContext.getSystemService(PowerManager.class); + mService.addLockoutResetCallback( + new IFingerprintServiceLockoutResetCallback.Stub() { + + @Override + public void onLockoutReset(long deviceId) throws RemoteException { + final PowerManager.WakeLock wakeLock = powerManager.newWakeLock( + PowerManager.PARTIAL_WAKE_LOCK, "lockoutResetCallback"); + wakeLock.acquire(); + mHandler.post(new Runnable() { + @Override + public void run() { + try { + callback.onLockoutReset(); + } finally { + wakeLock.release(); + } + } + }); + } + }); + } catch (RemoteException e) { + Log.v(TAG, "Remote exception in addLockoutResetCallback(): ", e); + } + } else { + Log.w(TAG, "addLockoutResetCallback(): Service not connected!"); + } + } + private class MyHandler extends Handler { private MyHandler(Context context) { super(context.getMainLooper()); @@ -677,6 +744,7 @@ public class FingerprintManager { super(looper); } + @Override public void handleMessage(android.os.Message msg) { switch(msg.what) { case MSG_ENROLL_RESULT: @@ -707,7 +775,7 @@ public class FingerprintManager { if (fingerId != reqFingerId) { Log.w(TAG, "Finger id didn't match: " + fingerId + " != " + reqFingerId); } - if (fingerId != reqFingerId) { + if (groupId != reqGroupId) { Log.w(TAG, "Group id didn't match: " + groupId + " != " + reqGroupId); } mRemovalCallback.onRemovalSucceeded(mRemovalFingerprint); diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl index 5e233b87343e..690a7519a3b5 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl @@ -17,6 +17,7 @@ package android.hardware.fingerprint; import android.os.Bundle; import android.hardware.fingerprint.IFingerprintServiceReceiver; +import android.hardware.fingerprint.IFingerprintServiceLockoutResetCallback; import android.hardware.fingerprint.Fingerprint; import java.util.List; @@ -68,4 +69,10 @@ interface IFingerprintService { // Gets the authenticator ID for fingerprint long getAuthenticatorId(String opPackageName); + + // Reset the timeout when user authenticates with strong auth (e.g. PIN, pattern or password) + void resetTimeout(in byte [] cryptoToken); + + // Add a callback which gets notified when the fingerprint lockout period expired. + void addLockoutResetCallback(IFingerprintServiceLockoutResetCallback callback); } diff --git a/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl b/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl new file mode 100644 index 000000000000..e027a2b3d260 --- /dev/null +++ b/core/java/android/hardware/fingerprint/IFingerprintServiceLockoutResetCallback.aidl @@ -0,0 +1,30 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package android.hardware.fingerprint; + +import android.hardware.fingerprint.Fingerprint; +import android.os.Bundle; +import android.os.UserHandle; + +/** + * Callback when lockout period expired and clients are allowed to authenticate again. + * @hide + */ +interface IFingerprintServiceLockoutResetCallback { + + /** Method is synchronous so wakelock is held when this is called from a WAKEUP alarm. */ + void onLockoutReset(long deviceId); +} diff --git a/core/java/android/hardware/input/IInputManager.aidl b/core/java/android/hardware/input/IInputManager.aidl index 465d14269395..c8b45c78c5b5 100644 --- a/core/java/android/hardware/input/IInputManager.aidl +++ b/core/java/android/hardware/input/IInputManager.aidl @@ -19,6 +19,7 @@ package android.hardware.input; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.KeyboardLayout; import android.hardware.input.IInputDevicesChangedListener; +import android.hardware.input.ITabletModeChangedListener; import android.hardware.input.TouchCalibration; import android.os.IBinder; import android.view.InputDevice; @@ -60,6 +61,9 @@ interface IInputManager { // Registers an input devices changed listener. void registerInputDevicesChangedListener(IInputDevicesChangedListener listener); + // Registers a tablet mode change listener + void registerTabletModeChangedListener(ITabletModeChangedListener listener); + // Input device vibrator control. void vibrate(int deviceId, in long[] pattern, int repeat, IBinder token); void cancelVibrate(int deviceId, IBinder token); diff --git a/core/java/android/hardware/input/ITabletModeChangedListener.aidl b/core/java/android/hardware/input/ITabletModeChangedListener.aidl new file mode 100644 index 000000000000..a8559a73c7ce --- /dev/null +++ b/core/java/android/hardware/input/ITabletModeChangedListener.aidl @@ -0,0 +1,23 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.input; + +/** @hide */ +interface ITabletModeChangedListener { + /* Called when the device enters or exits tablet mode. */ + oneway void onTabletModeChanged(long whenNanos, boolean inTabletMode); +} diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index 444f0201b448..a754d6b1e0c7 100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java @@ -16,6 +16,7 @@ package android.hardware.input; +import com.android.internal.os.SomeArgs; import com.android.internal.util.ArrayUtils; import android.annotation.SdkConstant; @@ -29,6 +30,7 @@ import android.os.Looper; import android.os.Message; import android.os.RemoteException; import android.os.ServiceManager; +import android.os.SystemClock; import android.os.Vibrator; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; @@ -38,6 +40,7 @@ import android.view.InputDevice; import android.view.InputEvent; import java.util.ArrayList; +import java.util.List; /** * Provides information about input devices and available key layouts. @@ -67,6 +70,11 @@ public final class InputManager { private final ArrayList<InputDeviceListenerDelegate> mInputDeviceListeners = new ArrayList<InputDeviceListenerDelegate>(); + // Guarded by mTabletModeLock + private final Object mTabletModeLock = new Object(); + private TabletModeChangedListener mTabletModeChangedListener; + private List<OnTabletModeChangedListenerDelegate> mOnTabletModeChangedListeners; + /** * Broadcast Action: Query available keyboard layouts. * <p> @@ -331,6 +339,72 @@ public final class InputManager { } /** + * Register a tablet mode changed listener. + * + * @param listener The listener to register. + * @param handler The handler on which the listener should be invoked, or null + * if the listener should be invoked on the calling thread's looper. + * @hide + */ + public void registerOnTabletModeChangedListener( + OnTabletModeChangedListener listener, Handler handler) { + if (listener == null) { + throw new IllegalArgumentException("listener must not be null"); + } + synchronized (mTabletModeLock) { + if (mOnTabletModeChangedListeners == null) { + initializeTabletModeListenerLocked(); + } + int idx = findOnTabletModeChangedListenerLocked(listener); + if (idx < 0) { + OnTabletModeChangedListenerDelegate d = + new OnTabletModeChangedListenerDelegate(listener, handler); + mOnTabletModeChangedListeners.add(d); + } + } + } + + /** + * Unregister a tablet mode changed listener. + * + * @param listener The listener to unregister. + * @hide + */ + public void unregisterOnTabletModeChangedListener(OnTabletModeChangedListener listener) { + if (listener == null) { + throw new IllegalArgumentException("listener must not be null"); + } + synchronized (mTabletModeLock) { + int idx = findOnTabletModeChangedListenerLocked(listener); + if (idx >= 0) { + OnTabletModeChangedListenerDelegate d = mOnTabletModeChangedListeners.remove(idx); + d.removeCallbacksAndMessages(null); + } + } + } + + private void initializeTabletModeListenerLocked() { + final TabletModeChangedListener listener = new TabletModeChangedListener(); + try { + mIm.registerTabletModeChangedListener(listener); + } catch (RemoteException ex) { + throw new RuntimeException("Could not register tablet mode changed listener", ex); + } + mTabletModeChangedListener = listener; + mOnTabletModeChangedListeners = new ArrayList<>(); + } + + private int findOnTabletModeChangedListenerLocked(OnTabletModeChangedListener listener) { + final int N = mOnTabletModeChangedListeners.size(); + for (int i = 0; i < N; i++) { + if (mOnTabletModeChangedListeners.get(i).mListener == listener) { + return i; + } + } + return -1; + } + + /** * Gets information about all supported keyboard layouts. * <p> * The input manager consults the built-in keyboard layouts as well @@ -769,6 +843,22 @@ public final class InputManager { return false; } + + private void onTabletModeChanged(long whenNanos, boolean inTabletMode) { + if (DEBUG) { + Log.d(TAG, "Received tablet mode changed: " + + "whenNanos=" + whenNanos + ", inTabletMode=" + inTabletMode); + } + synchronized (mTabletModeLock) { + final int N = mOnTabletModeChangedListeners.size(); + for (int i = 0; i < N; i++) { + OnTabletModeChangedListenerDelegate listener = + mOnTabletModeChangedListeners.get(i); + listener.sendTabletModeChanged(whenNanos, inTabletMode); + } + } + } + /** * Gets a vibrator service associated with an input device, assuming it has one. * @return The vibrator, never null. @@ -838,6 +928,57 @@ public final class InputManager { } } + /** @hide */ + public interface OnTabletModeChangedListener { + /** + * Called whenever the device goes into or comes out of tablet mode. + * + * @param whenNanos The time at which the device transitioned into or + * out of tablet mode. This is given in nanoseconds in the + * {@link SystemClock#uptimeMillis} time base. + */ + void onTabletModeChanged(long whenNanos, boolean inTabletMode); + } + + private final class TabletModeChangedListener extends ITabletModeChangedListener.Stub { + @Override + public void onTabletModeChanged(long whenNanos, boolean inTabletMode) { + InputManager.this.onTabletModeChanged(whenNanos, inTabletMode); + } + } + + private static final class OnTabletModeChangedListenerDelegate extends Handler { + private static final int MSG_TABLET_MODE_CHANGED = 0; + + public final OnTabletModeChangedListener mListener; + + public OnTabletModeChangedListenerDelegate( + OnTabletModeChangedListener listener, Handler handler) { + super(handler != null ? handler.getLooper() : Looper.myLooper()); + mListener = listener; + } + + public void sendTabletModeChanged(long whenNanos, boolean inTabletMode) { + SomeArgs args = SomeArgs.obtain(); + args.argi1 = (int) (whenNanos & 0xFFFFFFFF); + args.argi2 = (int) (whenNanos >> 32); + args.arg1 = (Boolean) inTabletMode; + obtainMessage(MSG_TABLET_MODE_CHANGED, args).sendToTarget(); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_TABLET_MODE_CHANGED: + SomeArgs args = (SomeArgs) msg.obj; + long whenNanos = (args.argi1 & 0xFFFFFFFFl) | ((long) args.argi2 << 32); + boolean inTabletMode = (boolean) args.arg1; + mListener.onTabletModeChanged(whenNanos, inTabletMode); + break; + } + } + } + private final class InputDeviceVibrator extends Vibrator { private final int mDeviceId; private final Binder mToken; diff --git a/core/java/android/hardware/location/ActivityRecognitionHardware.java b/core/java/android/hardware/location/ActivityRecognitionHardware.java index 5d3953ab59d0..8acd1ff27917 100644 --- a/core/java/android/hardware/location/ActivityRecognitionHardware.java +++ b/core/java/android/hardware/location/ActivityRecognitionHardware.java @@ -30,20 +30,34 @@ import android.util.Log; * @hide */ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.Stub { - private static final String TAG = "ActivityRecognitionHardware"; + private static final String TAG = "ActivityRecognitionHW"; + private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final String HARDWARE_PERMISSION = Manifest.permission.LOCATION_HARDWARE; + private static final String ENFORCE_HW_PERMISSION_MESSAGE = "Permission '" + + HARDWARE_PERMISSION + "' not granted to access ActivityRecognitionHardware"; + private static final int INVALID_ACTIVITY_TYPE = -1; private static final int NATIVE_SUCCESS_RESULT = 0; + private static final int EVENT_TYPE_DISABLED = 0; + private static final int EVENT_TYPE_ENABLED = 1; + + /** + * Contains the number of supported Event Types. + * + * NOTE: increment this counter every time a new EVENT_TYPE_ is added to + * com.android.location.provider.ActivityRecognitionProvider + */ + private static final int EVENT_TYPE_COUNT = 3; - private static ActivityRecognitionHardware sSingletonInstance = null; + private static ActivityRecognitionHardware sSingletonInstance; private static final Object sSingletonInstanceLock = new Object(); private final Context mContext; + private final int mSupportedActivitiesCount; private final String[] mSupportedActivities; - - private final RemoteCallbackList<IActivityRecognitionHardwareSink> mSinks = - new RemoteCallbackList<IActivityRecognitionHardwareSink>(); + private final int[][] mSupportedActivitiesEnabledEvents; + private final SinkList mSinks = new SinkList(); private static class Event { public int activity; @@ -56,6 +70,8 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St mContext = context; mSupportedActivities = fetchSupportedActivities(); + mSupportedActivitiesCount = mSupportedActivities.length; + mSupportedActivitiesEnabledEvents = new int[mSupportedActivitiesCount][EVENT_TYPE_COUNT]; } public static ActivityRecognitionHardware getInstance(Context context) { @@ -107,7 +123,11 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St } int result = nativeEnableActivityEvent(activityType, eventType, reportLatencyNs); - return result == NATIVE_SUCCESS_RESULT; + if (result == NATIVE_SUCCESS_RESULT) { + mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_ENABLED; + return true; + } + return false; } @Override @@ -120,7 +140,11 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St } int result = nativeDisableActivityEvent(activityType, eventType); - return result == NATIVE_SUCCESS_RESULT; + if (result == NATIVE_SUCCESS_RESULT) { + mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_DISABLED; + return true; + } + return false; } @Override @@ -135,7 +159,7 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St */ private void onActivityChanged(Event[] events) { if (events == null || events.length == 0) { - Log.d(TAG, "No events to broadcast for onActivityChanged."); + if (DEBUG) Log.d(TAG, "No events to broadcast for onActivityChanged."); return; } @@ -161,7 +185,6 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St } } mSinks.finishBroadcast(); - } private String getActivityName(int activityType) { @@ -193,10 +216,7 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St } private void checkPermissions() { - String message = String.format( - "Permission '%s' not granted to access ActivityRecognitionHardware", - HARDWARE_PERMISSION); - mContext.enforceCallingPermission(HARDWARE_PERMISSION, message); + mContext.enforceCallingPermission(HARDWARE_PERMISSION, ENFORCE_HW_PERMISSION_MESSAGE); } private String[] fetchSupportedActivities() { @@ -208,6 +228,39 @@ public class ActivityRecognitionHardware extends IActivityRecognitionHardware.St return new String[0]; } + private class SinkList extends RemoteCallbackList<IActivityRecognitionHardwareSink> { + @Override + public void onCallbackDied(IActivityRecognitionHardwareSink callback) { + int callbackCount = mSinks.getRegisteredCallbackCount(); + if (DEBUG) Log.d(TAG, "RegisteredCallbackCount: " + callbackCount); + if (callbackCount != 0) { + return; + } + // currently there is only one client for this, so if all its sinks have died, we clean + // up after them, this ensures that the AR HAL is not out of sink + for (int activity = 0; activity < mSupportedActivitiesCount; ++activity) { + for (int event = 0; event < EVENT_TYPE_COUNT; ++event) { + disableActivityEventIfEnabled(activity, event); + } + } + } + + private void disableActivityEventIfEnabled(int activityType, int eventType) { + if (mSupportedActivitiesEnabledEvents[activityType][eventType] != EVENT_TYPE_ENABLED) { + return; + } + + int result = nativeDisableActivityEvent(activityType, eventType); + mSupportedActivitiesEnabledEvents[activityType][eventType] = EVENT_TYPE_DISABLED; + String message = String.format( + "DisableActivityEvent: activityType=%d, eventType=%d, result=%d", + activityType, + eventType, + result); + Log.e(TAG, message); + } + } + // native bindings static { nativeClassInit(); } diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl new file mode 100644 index 000000000000..d2c3d7555e70 --- /dev/null +++ b/core/java/android/hardware/location/IActivityRecognitionHardwareClient.aidl @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2015, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/license/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.hardware.location; + +import android.hardware.location.IActivityRecognitionHardware; + +/** + * Activity Recognition Hardware client interface. + * This interface can be used to receive interfaces to implementations of + * {@link IActivityRecognitionHardware}. + * + * @hide + */ +interface IActivityRecognitionHardwareClient { + /** + * Hardware Activity-Recognition availability event. + * + * @param isSupported whether the platform has hardware support for the feature + * @param instance the available instance to provide access to the feature + */ + void onAvailabilityChanged(in boolean isSupported, in IActivityRecognitionHardware instance); +} diff --git a/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl b/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl index 0507f5251b63..12e3117259e1 100644 --- a/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl +++ b/core/java/android/hardware/location/IActivityRecognitionHardwareWatcher.aidl @@ -22,6 +22,8 @@ import android.hardware.location.IActivityRecognitionHardware; * Activity Recognition Hardware watcher. This interface can be used to receive interfaces to * implementations of {@link IActivityRecognitionHardware}. * + * @deprecated use {@link IActivityRecognitionHardwareClient} instead. + * @hide */ interface IActivityRecognitionHardwareWatcher { @@ -29,4 +31,4 @@ interface IActivityRecognitionHardwareWatcher { * Hardware Activity-Recognition availability event. */ void onInstanceChanged(in IActivityRecognitionHardware instance); -}
\ No newline at end of file +} diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index ff6dd327e5ec..9a2a24128b92 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -100,6 +100,16 @@ public class ConnectivityManager { public static final String CONNECTIVITY_ACTION = "android.net.conn.CONNECTIVITY_CHANGE"; /** + * A temporary hack until SUPL system can get off the legacy APIS. + * They do too many network requests and the long list of apps listening + * and waking due to the CONNECTIVITY_ACTION bcast makes it expensive. + * Use this bcast intent instead for SUPL requests. + * @hide + */ + public static final String CONNECTIVITY_ACTION_SUPL = + "android.net.conn.CONNECTIVITY_CHANGE_SUPL"; + + /** * The device has connected to a network that has presented a captive * portal, which is blocking Internet connectivity. The user was presented * with a notification that network sign in is required, @@ -1038,11 +1048,13 @@ public class ConnectivityManager { type = "enableDUN"; result = TYPE_MOBILE_DUN; } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_SUPL)) { - type = "enableSUPL"; + type = "enableSUPL"; result = TYPE_MOBILE_SUPL; - } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) { - type = "enableMMS"; - result = TYPE_MOBILE_MMS; + // back out this hack for mms as they no longer need this and it's causing + // device slowdowns - b/23350688 (note, supl still needs this) + //} else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) { + // type = "enableMMS"; + // result = TYPE_MOBILE_MMS; } else if (netCap.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)) { type = "enableHIPRI"; result = TYPE_MOBILE_HIPRI; @@ -1179,6 +1191,144 @@ public class ConnectivityManager { return true; } + /** @hide */ + public static class PacketKeepaliveCallback { + /** The requested keepalive was successfully started. */ + public void onStarted() {} + /** The keepalive was successfully stopped. */ + public void onStopped() {} + /** An error occurred. */ + public void onError(int error) {} + } + + /** + * Allows applications to request that the system periodically send specific packets on their + * behalf, using hardware offload to save battery power. + * + * To request that the system send keepalives, call one of the methods that return a + * {@link ConnectivityManager.PacketKeepalive} object, such as {@link #startNattKeepalive}, + * passing in a non-null callback. If the callback is successfully started, the callback's + * {@code onStarted} method will be called. If an error occurs, {@code onError} will be called, + * specifying one of the {@code ERROR_*} constants in this class. + * + * To stop an existing keepalive, call {@link stop}. The system will call {@code onStopped} if + * the operation was successfull or {@code onError} if an error occurred. + * + * @hide + */ + public class PacketKeepalive { + + private static final String TAG = "PacketKeepalive"; + + /** @hide */ + public static final int SUCCESS = 0; + + /** @hide */ + public static final int NO_KEEPALIVE = -1; + + /** @hide */ + public static final int BINDER_DIED = -10; + + /** The specified {@code Network} is not connected. */ + public static final int ERROR_INVALID_NETWORK = -20; + /** The specified IP addresses are invalid. For example, the specified source IP address is + * not configured on the specified {@code Network}. */ + public static final int ERROR_INVALID_IP_ADDRESS = -21; + /** The requested port is invalid. */ + public static final int ERROR_INVALID_PORT = -22; + /** The packet length is invalid (e.g., too long). */ + public static final int ERROR_INVALID_LENGTH = -23; + /** The packet transmission interval is invalid (e.g., too short). */ + public static final int ERROR_INVALID_INTERVAL = -24; + + /** The hardware does not support this request. */ + public static final int ERROR_HARDWARE_UNSUPPORTED = -30; + /** The hardware returned an error. */ + public static final int ERROR_HARDWARE_ERROR = -31; + + public static final int NATT_PORT = 4500; + + private final Network mNetwork; + private final PacketKeepaliveCallback mCallback; + private final Looper mLooper; + private final Messenger mMessenger; + + private volatile Integer mSlot; + + void stopLooper() { + mLooper.quit(); + } + + public void stop() { + try { + mService.stopKeepalive(mNetwork, mSlot); + } catch (RemoteException e) { + Log.e(TAG, "Error stopping packet keepalive: ", e); + stopLooper(); + } + } + + private PacketKeepalive(Network network, PacketKeepaliveCallback callback) { + checkNotNull(network, "network cannot be null"); + checkNotNull(callback, "callback cannot be null"); + mNetwork = network; + mCallback = callback; + HandlerThread thread = new HandlerThread(TAG); + thread.start(); + mLooper = thread.getLooper(); + mMessenger = new Messenger(new Handler(mLooper) { + @Override + public void handleMessage(Message message) { + switch (message.what) { + case NetworkAgent.EVENT_PACKET_KEEPALIVE: + int error = message.arg2; + try { + if (error == SUCCESS) { + if (mSlot == null) { + mSlot = message.arg1; + mCallback.onStarted(); + } else { + mSlot = null; + stopLooper(); + mCallback.onStopped(); + } + } else { + stopLooper(); + mCallback.onError(error); + } + } catch (Exception e) { + Log.e(TAG, "Exception in keepalive callback(" + error + ")", e); + } + break; + default: + Log.e(TAG, "Unhandled message " + Integer.toHexString(message.what)); + break; + } + } + }); + } + } + + /** + * Starts an IPsec NAT-T keepalive packet with the specified parameters. + * + * @hide + */ + public PacketKeepalive startNattKeepalive( + Network network, int intervalSeconds, PacketKeepaliveCallback callback, + InetAddress srcAddr, int srcPort, InetAddress dstAddr) { + final PacketKeepalive k = new PacketKeepalive(network, callback); + try { + mService.startNattKeepalive(network, intervalSeconds, k.mMessenger, new Binder(), + srcAddr.getHostAddress(), srcPort, dstAddr.getHostAddress()); + } catch (RemoteException e) { + Log.e(TAG, "Error starting packet keepalive: ", e); + k.stopLooper(); + return null; + } + return k; + } + /** * Ensure that a network route exists to deliver traffic to the specified * host via the specified network interface. An attempt to add a route that @@ -2111,6 +2261,7 @@ public class ConnectivityManager { private final AtomicInteger mRefCount; private static final String TAG = "ConnectivityManager.CallbackHandler"; private final ConnectivityManager mCm; + private static final boolean DBG = false; CallbackHandler(Looper looper, HashMap<NetworkRequest, NetworkCallback>callbackMap, AtomicInteger refCount, ConnectivityManager cm) { @@ -2122,7 +2273,7 @@ public class ConnectivityManager { @Override public void handleMessage(Message message) { - Log.d(TAG, "CM callback handler got msg " + message.what); + if (DBG) Log.d(TAG, "CM callback handler got msg " + message.what); NetworkRequest request = (NetworkRequest) getObject(message, NetworkRequest.class); Network network = (Network) getObject(message, Network.class); switch (message.what) { diff --git a/core/java/android/net/IConnectivityManager.aidl b/core/java/android/net/IConnectivityManager.aidl index 46c28a69ab6f..d4dd6692110a 100644 --- a/core/java/android/net/IConnectivityManager.aidl +++ b/core/java/android/net/IConnectivityManager.aidl @@ -160,4 +160,9 @@ interface IConnectivityManager boolean setUnderlyingNetworksForVpn(in Network[] networks); void factoryReset(); + + void startNattKeepalive(in Network network, int intervalSeconds, in Messenger messenger, + in IBinder binder, String srcAddr, int srcPort, String dstAddr); + + void stopKeepalive(in Network network, int slot); } diff --git a/core/java/android/net/INetworkPolicyManager.aidl b/core/java/android/net/INetworkPolicyManager.aidl index 7f5f3776d355..9e639e8f05a1 100644 --- a/core/java/android/net/INetworkPolicyManager.aidl +++ b/core/java/android/net/INetworkPolicyManager.aidl @@ -48,6 +48,9 @@ interface INetworkPolicyManager { /** Snooze limit on policy matching given template. */ void snoozeLimit(in NetworkTemplate template); + /** Snooze warning on policy matching given template. */ + void snoozeWarning(in NetworkTemplate template); + /** Control if background data is restricted system-wide. */ void setRestrictBackground(boolean restrictBackground); boolean getRestrictBackground(); diff --git a/core/java/android/net/IpReachabilityMonitor.java b/core/java/android/net/IpReachabilityMonitor.java index 88fb01437cd0..2283004c7759 100644 --- a/core/java/android/net/IpReachabilityMonitor.java +++ b/core/java/android/net/IpReachabilityMonitor.java @@ -18,6 +18,7 @@ package android.net; import com.android.internal.annotations.GuardedBy; +import android.content.Context; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.LinkProperties.ProvisioningChange; @@ -31,6 +32,7 @@ import android.net.netlink.RtNetlinkNeighborMessage; import android.net.netlink.StructNdaCacheInfo; import android.net.netlink.StructNdMsg; import android.net.netlink.StructNlMsgHdr; +import android.os.PowerManager; import android.os.SystemClock; import android.system.ErrnoException; import android.system.NetlinkSocketAddress; @@ -74,6 +76,7 @@ public class IpReachabilityMonitor { } private final Object mLock = new Object(); + private final PowerManager.WakeLock mWakeLock; private final String mInterfaceName; private final int mInterfaceIndex; private final Callback mCallback; @@ -136,7 +139,8 @@ public class IpReachabilityMonitor { return returnValue; } - public IpReachabilityMonitor(String ifName, Callback callback) throws IllegalArgumentException { + public IpReachabilityMonitor(Context context, String ifName, Callback callback) + throws IllegalArgumentException { mInterfaceName = ifName; int ifIndex = -1; try { @@ -145,6 +149,8 @@ public class IpReachabilityMonitor { } catch (SocketException | NullPointerException e) { throw new IllegalArgumentException("invalid interface '" + ifName + "': ", e); } + mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)).newWakeLock( + PowerManager.PARTIAL_WAKE_LOCK, TAG + "." + mInterfaceName); mCallback = callback; mNetlinkSocketObserver = new NetlinkSocketObserver(); mObserverThread = new Thread(mNetlinkSocketObserver); @@ -291,6 +297,17 @@ public class IpReachabilityMonitor { synchronized (mLock) { ipProbeList.addAll(mIpWatchList.keySet()); } + + if (!ipProbeList.isEmpty() && stillRunning()) { + // Keep the CPU awake long enough to allow all ARP/ND + // probes a reasonable chance at success. See b/23197666. + // + // The wakelock we use is (by default) refcounted, and this version + // of acquire(timeout) queues a release message to keep acquisitions + // and releases balanced. + mWakeLock.acquire(getProbeWakeLockDuration()); + } + for (InetAddress target : ipProbeList) { if (!stillRunning()) { break; @@ -299,6 +316,22 @@ public class IpReachabilityMonitor { } } + private long getProbeWakeLockDuration() { + // Ideally, this would be computed by examining the values of: + // + // /proc/sys/net/ipv[46]/neigh/<ifname>/ucast_solicit + // + // and: + // + // /proc/sys/net/ipv[46]/neigh/<ifname>/retrans_time_ms + // + // For now, just make some assumptions. + final long numUnicastProbes = 3; + final long retransTimeMs = 1000; + final long gracePeriodMs = 500; + return (numUnicastProbes * retransTimeMs) + gracePeriodMs; + } + // TODO: simply the number of objects by making this extend Thread. private final class NetlinkSocketObserver implements Runnable { diff --git a/core/java/android/net/NetworkAgent.java b/core/java/android/net/NetworkAgent.java index 808a8827a076..20c216826531 100644 --- a/core/java/android/net/NetworkAgent.java +++ b/core/java/android/net/NetworkAgent.java @@ -17,6 +17,7 @@ package android.net; import android.content.Context; +import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; @@ -25,6 +26,7 @@ import android.util.Log; import com.android.internal.util.AsyncChannel; import com.android.internal.util.Protocol; +import android.net.ConnectivityManager.PacketKeepalive; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; @@ -143,17 +145,60 @@ public abstract class NetworkAgent extends Handler { */ public static final int CMD_SAVE_ACCEPT_UNVALIDATED = BASE + 9; - /** Sent by ConnectivityService to the NetworkAgent to inform the agent to pull + /** + * Sent by ConnectivityService to the NetworkAgent to inform the agent to pull * the underlying network connection for updated bandwidth information. */ public static final int CMD_REQUEST_BANDWIDTH_UPDATE = BASE + 10; /** + * Sent by ConnectivityService to the NetworkAgent to request that the specified packet be sent + * periodically on the given interval. + * + * arg1 = the slot number of the keepalive to start + * arg2 = interval in seconds + * obj = KeepalivePacketData object describing the data to be sent + * + * Also used internally by ConnectivityService / KeepaliveTracker, with different semantics. + */ + public static final int CMD_START_PACKET_KEEPALIVE = BASE + 11; + + /** + * Requests that the specified keepalive packet be stopped. + * + * arg1 = slot number of the keepalive to stop. + * + * Also used internally by ConnectivityService / KeepaliveTracker, with different semantics. + */ + public static final int CMD_STOP_PACKET_KEEPALIVE = BASE + 12; + + /** + * Sent by the NetworkAgent to ConnectivityService to provide status on a packet keepalive + * request. This may either be the reply to a CMD_START_PACKET_KEEPALIVE, or an asynchronous + * error notification. + * + * This is also sent by KeepaliveTracker to the app's ConnectivityManager.PacketKeepalive to + * so that the app's PacketKeepaliveCallback methods can be called. + * + * arg1 = slot number of the keepalive + * arg2 = error code + */ + public static final int EVENT_PACKET_KEEPALIVE = BASE + 13; + + /** + * Sent by ConnectivityService to inform this network transport of signal strength thresholds + * that when crossed should trigger a system wakeup and a NetworkCapabilities update. + * + * obj = int[] describing signal strength thresholds. + */ + public static final int CMD_SET_SIGNAL_STRENGTH_THRESHOLDS = BASE + 14; + + /** * Sent by ConnectivityService to the NeworkAgent to inform the agent to avoid * automatically reconnecting to this network (e.g. via autojoin). Happens * when user selects "No" option on the "Stay connected?" dialog box. */ - public static final int CMD_PREVENT_AUTOMATIC_RECONNECT = BASE + 11; + public static final int CMD_PREVENT_AUTOMATIC_RECONNECT = BASE + 15; public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni, NetworkCapabilities nc, LinkProperties lp, int score) { @@ -249,6 +294,27 @@ public abstract class NetworkAgent extends Handler { saveAcceptUnvalidated(msg.arg1 != 0); break; } + case CMD_START_PACKET_KEEPALIVE: { + startPacketKeepalive(msg); + break; + } + case CMD_STOP_PACKET_KEEPALIVE: { + stopPacketKeepalive(msg); + break; + } + + case CMD_SET_SIGNAL_STRENGTH_THRESHOLDS: { + ArrayList<Integer> thresholds = + ((Bundle) msg.obj).getIntegerArrayList("thresholds"); + // TODO: Change signal strength thresholds API to use an ArrayList<Integer> + // rather than convert to int[]. + int[] intThresholds = new int[(thresholds != null) ? thresholds.size() : 0]; + for (int i = 0; i < intThresholds.length; i++) { + intThresholds[i] = thresholds.get(i); + } + setSignalStrengthThresholds(intThresholds); + break; + } case CMD_PREVENT_AUTOMATIC_RECONNECT: { preventAutomaticReconnect(); break; @@ -257,13 +323,27 @@ public abstract class NetworkAgent extends Handler { } private void queueOrSendMessage(int what, Object obj) { + queueOrSendMessage(what, 0, 0, obj); + } + + private void queueOrSendMessage(int what, int arg1, int arg2) { + queueOrSendMessage(what, arg1, arg2, null); + } + + private void queueOrSendMessage(int what, int arg1, int arg2, Object obj) { + Message msg = Message.obtain(); + msg.what = what; + msg.arg1 = arg1; + msg.arg2 = arg2; + msg.obj = obj; + queueOrSendMessage(msg); + } + + private void queueOrSendMessage(Message msg) { synchronized (mPreConnectedQueue) { if (mAsyncChannel != null) { - mAsyncChannel.sendMessage(what, obj); + mAsyncChannel.sendMessage(msg); } else { - Message msg = Message.obtain(); - msg.what = what; - msg.obj = obj; mPreConnectedQueue.add(msg); } } @@ -378,6 +458,34 @@ public abstract class NetworkAgent extends Handler { } /** + * Requests that the network hardware send the specified packet at the specified interval. + */ + protected void startPacketKeepalive(Message msg) { + onPacketKeepaliveEvent(msg.arg1, PacketKeepalive.ERROR_HARDWARE_UNSUPPORTED); + } + + /** + * Requests that the network hardware send the specified packet at the specified interval. + */ + protected void stopPacketKeepalive(Message msg) { + onPacketKeepaliveEvent(msg.arg1, PacketKeepalive.ERROR_HARDWARE_UNSUPPORTED); + } + + /** + * Called by the network when a packet keepalive event occurs. + */ + public void onPacketKeepaliveEvent(int slot, int reason) { + queueOrSendMessage(EVENT_PACKET_KEEPALIVE, slot, reason); + } + + /** + * Called by ConnectivityService to inform this network transport of signal strength thresholds + * that when crossed should trigger a system wakeup and a NetworkCapabilities update. + */ + protected void setSignalStrengthThresholds(int[] thresholds) { + } + + /** * Called when the user asks to not stay connected to this network because it was found to not * provide Internet access. Usually followed by call to {@code unwanted}. The transport is * responsible for making sure the device does not automatically reconnect to the same network diff --git a/core/java/android/net/NetworkCapabilities.java b/core/java/android/net/NetworkCapabilities.java index d0e0cbe63965..3bd12c060748 100644 --- a/core/java/android/net/NetworkCapabilities.java +++ b/core/java/android/net/NetworkCapabilities.java @@ -48,6 +48,7 @@ public final class NetworkCapabilities implements Parcelable { mLinkUpBandwidthKbps = nc.mLinkUpBandwidthKbps; mLinkDownBandwidthKbps = nc.mLinkDownBandwidthKbps; mNetworkSpecifier = nc.mNetworkSpecifier; + mSignalStrength = nc.mSignalStrength; } } @@ -60,6 +61,7 @@ public final class NetworkCapabilities implements Parcelable { mNetworkCapabilities = mTransportTypes = 0; mLinkUpBandwidthKbps = mLinkDownBandwidthKbps = 0; mNetworkSpecifier = null; + mSignalStrength = SIGNAL_STRENGTH_UNSPECIFIED; } /** @@ -184,6 +186,28 @@ public final class NetworkCapabilities implements Parcelable { private static final int MAX_NET_CAPABILITY = NET_CAPABILITY_CAPTIVE_PORTAL; /** + * Network capabilities that are expected to be mutable, i.e., can change while a particular + * network is connected. + */ + private static final long MUTABLE_CAPABILITIES = + // TRUSTED can change when user explicitly connects to an untrusted network in Settings. + // http://b/18206275 + (1 << NET_CAPABILITY_TRUSTED) | + (1 << NET_CAPABILITY_VALIDATED) | + (1 << NET_CAPABILITY_CAPTIVE_PORTAL); + + /** + * Network capabilities that are not allowed in NetworkRequests. This exists because the + * NetworkFactory / NetworkAgent model does not deal well with the situation where a + * capability's presence cannot be known in advance. If such a capability is requested, then we + * can get into a cycle where the NetworkFactory endlessly churns out NetworkAgents that then + * get immediately torn down because they do not have the requested capability. + */ + private static final long NON_REQUESTABLE_CAPABILITIES = + (1 << NET_CAPABILITY_VALIDATED) | + (1 << NET_CAPABILITY_CAPTIVE_PORTAL); + + /** * Capabilities that are set by default when the object is constructed. */ private static final long DEFAULT_CAPABILITIES = @@ -278,8 +302,31 @@ public final class NetworkCapabilities implements Parcelable { this.mNetworkCapabilities |= nc.mNetworkCapabilities; } - private boolean satisfiedByNetCapabilities(NetworkCapabilities nc) { - return ((nc.mNetworkCapabilities & this.mNetworkCapabilities) == this.mNetworkCapabilities); + /** + * Convenience function that returns a human-readable description of the first mutable + * capability we find. Used to present an error message to apps that request mutable + * capabilities. + * + * @hide + */ + public String describeFirstNonRequestableCapability() { + if (hasCapability(NET_CAPABILITY_VALIDATED)) return "NET_CAPABILITY_VALIDATED"; + if (hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) return "NET_CAPABILITY_CAPTIVE_PORTAL"; + // This cannot happen unless the preceding checks are incomplete. + if ((mNetworkCapabilities & NON_REQUESTABLE_CAPABILITIES) != 0) { + return "unknown non-requestable capabilities " + Long.toHexString(mNetworkCapabilities); + } + if (mLinkUpBandwidthKbps != 0 || mLinkDownBandwidthKbps != 0) return "link bandwidth"; + if (hasSignalStrength()) return "signalStrength"; + return null; + } + + private boolean satisfiedByNetCapabilities(NetworkCapabilities nc, boolean onlyImmutable) { + long networkCapabilities = this.mNetworkCapabilities; + if (onlyImmutable) { + networkCapabilities = networkCapabilities & ~MUTABLE_CAPABILITIES; + } + return ((nc.mNetworkCapabilities & networkCapabilities) == networkCapabilities); } /** @hide */ @@ -287,6 +334,11 @@ public final class NetworkCapabilities implements Parcelable { return (nc.mNetworkCapabilities == this.mNetworkCapabilities); } + private boolean equalsNetCapabilitiesImmutable(NetworkCapabilities that) { + return ((this.mNetworkCapabilities & ~MUTABLE_CAPABILITIES) == + (that.mNetworkCapabilities & ~MUTABLE_CAPABILITIES)); + } + /** * Removes the NET_CAPABILITY_NOT_RESTRICTED capability if all the capabilities it provides are * typically provided by restricted networks. @@ -555,26 +607,130 @@ public final class NetworkCapabilities implements Parcelable { } /** + * Magic value that indicates no signal strength provided. A request specifying this value is + * always satisfied. + * + * @hide + */ + public static final int SIGNAL_STRENGTH_UNSPECIFIED = Integer.MIN_VALUE; + + /** + * Signal strength. This is a signed integer, and higher values indicate better signal. + * The exact units are bearer-dependent. For example, Wi-Fi uses RSSI. + */ + private int mSignalStrength; + + /** + * Sets the signal strength. This is a signed integer, with higher values indicating a stronger + * signal. The exact units are bearer-dependent. For example, Wi-Fi uses the same RSSI units + * reported by WifiManager. + * <p> + * Note that when used to register a network callback, this specifies the minimum acceptable + * signal strength. When received as the state of an existing network it specifies the current + * value. A value of code SIGNAL_STRENGTH_UNSPECIFIED} means no value when received and has no + * effect when requesting a callback. + * + * @param signalStrength the bearer-specific signal strength. + * @hide + */ + public void setSignalStrength(int signalStrength) { + mSignalStrength = signalStrength; + } + + /** + * Returns {@code true} if this object specifies a signal strength. + * + * @hide + */ + public boolean hasSignalStrength() { + return mSignalStrength > SIGNAL_STRENGTH_UNSPECIFIED; + } + + /** + * Retrieves the signal strength. + * + * @return The bearer-specific signal strength. + * @hide + */ + public int getSignalStrength() { + return mSignalStrength; + } + + private void combineSignalStrength(NetworkCapabilities nc) { + this.mSignalStrength = Math.max(this.mSignalStrength, nc.mSignalStrength); + } + + private boolean satisfiedBySignalStrength(NetworkCapabilities nc) { + return this.mSignalStrength <= nc.mSignalStrength; + } + + private boolean equalsSignalStrength(NetworkCapabilities nc) { + return this.mSignalStrength == nc.mSignalStrength; + } + + /** * Combine a set of Capabilities to this one. Useful for coming up with the complete set - * {@hide} + * @hide */ public void combineCapabilities(NetworkCapabilities nc) { combineNetCapabilities(nc); combineTransportTypes(nc); combineLinkBandwidths(nc); combineSpecifiers(nc); + combineSignalStrength(nc); } /** - * Check if our requirements are satisfied by the given Capabilities. - * {@hide} + * Check if our requirements are satisfied by the given {@code NetworkCapabilities}. + * + * @param nc the {@code NetworkCapabilities} that may or may not satisfy our requirements. + * @param onlyImmutable if {@code true}, do not consider mutable requirements such as link + * bandwidth, signal strength, or validation / captive portal status. + * + * @hide */ - public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) { + private boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc, boolean onlyImmutable) { return (nc != null && - satisfiedByNetCapabilities(nc) && + satisfiedByNetCapabilities(nc, onlyImmutable) && satisfiedByTransportTypes(nc) && - satisfiedByLinkBandwidths(nc) && - satisfiedBySpecifier(nc)); + (onlyImmutable || satisfiedByLinkBandwidths(nc)) && + satisfiedBySpecifier(nc) && + (onlyImmutable || satisfiedBySignalStrength(nc))); + } + + /** + * Check if our requirements are satisfied by the given {@code NetworkCapabilities}. + * + * @param nc the {@code NetworkCapabilities} that may or may not satisfy our requirements. + * + * @hide + */ + public boolean satisfiedByNetworkCapabilities(NetworkCapabilities nc) { + return satisfiedByNetworkCapabilities(nc, false); + } + + /** + * Check if our immutable requirements are satisfied by the given {@code NetworkCapabilities}. + * + * @param nc the {@code NetworkCapabilities} that may or may not satisfy our requirements. + * + * @hide + */ + public boolean satisfiedByImmutableNetworkCapabilities(NetworkCapabilities nc) { + return satisfiedByNetworkCapabilities(nc, true); + } + + /** + * Checks that our immutable capabilities are the same as those of the given + * {@code NetworkCapabilities}. + * + * @hide + */ + public boolean equalImmutableCapabilities(NetworkCapabilities nc) { + if (nc == null) return false; + return (equalsNetCapabilitiesImmutable(nc) && + equalsTransportTypes(nc) && + equalsSpecifier(nc)); } @Override @@ -584,6 +740,7 @@ public final class NetworkCapabilities implements Parcelable { return (equalsNetCapabilities(that) && equalsTransportTypes(that) && equalsLinkBandwidths(that) && + equalsSignalStrength(that) && equalsSpecifier(that)); } @@ -595,7 +752,8 @@ public final class NetworkCapabilities implements Parcelable { ((int)(mTransportTypes >> 32) * 7) + (mLinkUpBandwidthKbps * 11) + (mLinkDownBandwidthKbps * 13) + - (TextUtils.isEmpty(mNetworkSpecifier) ? 0 : mNetworkSpecifier.hashCode() * 17)); + (TextUtils.isEmpty(mNetworkSpecifier) ? 0 : mNetworkSpecifier.hashCode() * 17) + + (mSignalStrength * 19)); } @Override @@ -609,7 +767,9 @@ public final class NetworkCapabilities implements Parcelable { dest.writeInt(mLinkUpBandwidthKbps); dest.writeInt(mLinkDownBandwidthKbps); dest.writeString(mNetworkSpecifier); + dest.writeInt(mSignalStrength); } + public static final Creator<NetworkCapabilities> CREATOR = new Creator<NetworkCapabilities>() { @Override @@ -621,6 +781,7 @@ public final class NetworkCapabilities implements Parcelable { netCap.mLinkUpBandwidthKbps = in.readInt(); netCap.mLinkDownBandwidthKbps = in.readInt(); netCap.mNetworkSpecifier = in.readString(); + netCap.mSignalStrength = in.readInt(); return netCap; } @Override @@ -678,6 +839,8 @@ public final class NetworkCapabilities implements Parcelable { String specifier = (mNetworkSpecifier == null ? "" : " Specifier: <" + mNetworkSpecifier + ">"); - return "[" + transports + capabilities + upBand + dnBand + specifier + "]"; + String signalStrength = (hasSignalStrength() ? " SignalStrength: " + mSignalStrength : ""); + + return "[" + transports + capabilities + upBand + dnBand + specifier + signalStrength + "]"; } } diff --git a/core/java/android/net/NetworkFactory.java b/core/java/android/net/NetworkFactory.java index 5f46c73f645e..cab88b9972b5 100644 --- a/core/java/android/net/NetworkFactory.java +++ b/core/java/android/net/NetworkFactory.java @@ -169,7 +169,8 @@ public class NetworkFactory extends Handler { } } - private void handleAddRequest(NetworkRequest request, int score) { + @VisibleForTesting + protected void handleAddRequest(NetworkRequest request, int score) { NetworkRequestInfo n = mNetworkRequests.get(request.requestId); if (n == null) { if (DBG) log("got request " + request + " with score " + score); @@ -184,7 +185,8 @@ public class NetworkFactory extends Handler { evalRequest(n); } - private void handleRemoveRequest(NetworkRequest request) { + @VisibleForTesting + protected void handleRemoveRequest(NetworkRequest request) { NetworkRequestInfo n = mNetworkRequests.get(request.requestId); if (n != null) { mNetworkRequests.remove(request.requestId); diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java index 3f40484b2595..02dae8a7b615 100644 --- a/core/java/android/net/NetworkPolicyManager.java +++ b/core/java/android/net/NetworkPolicyManager.java @@ -20,6 +20,7 @@ import static android.content.pm.PackageManager.GET_SIGNATURES; import static android.net.NetworkPolicy.CYCLE_NONE; import static android.text.format.Time.MONTH_DAY; +import android.annotation.SystemApi; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; @@ -80,6 +81,54 @@ public class NetworkPolicyManager { */ public static final String EXTRA_NETWORK_TEMPLATE = "android.net.NETWORK_TEMPLATE"; + /** + * Broadcast intent action for informing a custom component about a network policy + * notification. + * @hide + */ + @SystemApi + public static final String ACTION_SHOW_NETWORK_POLICY_NOTIFICATION = + "android.net.action.SHOW_NETWORK_POLICY_NOTIFICATION"; + + /** + * The sequence number associated with the notification - a higher number + * indicates previous notifications may be disregarded. + * @hide + */ + @SystemApi + public static final String EXTRA_NOTIFICATION_SEQUENCE_NUMBER = + "android.net.extra.NOTIFICATION_SEQUENCE_NUMBER"; + + /** + * The type of notification that should be presented to the user. + * @hide + */ + @SystemApi + public static final String EXTRA_NOTIFICATION_TYPE = "android.net.extra.NOTIFICATION_TYPE"; + + @SystemApi + public static final int NOTIFICATION_TYPE_NONE = 0; + @SystemApi + public static final int NOTIFICATION_TYPE_USAGE_WARNING = 1; + @SystemApi + public static final int NOTIFICATION_TYPE_USAGE_REACHED_LIMIT = 2; + @SystemApi + public static final int NOTIFICATION_TYPE_USAGE_EXCEEDED_LIMIT = 3; + + /** + * The number of bytes used on the network in the notification. + * @hide + */ + @SystemApi + public static final String EXTRA_BYTES_USED = "android.net.extra.BYTES_USED"; + + /** + * The network policy for the network in the notification. + * @hide + */ + @SystemApi + public static final String EXTRA_NETWORK_POLICY = "android.net.extra.NETWORK_POLICY"; + private final Context mContext; private INetworkPolicyManager mService; diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java index e184ec479061..7da4818991b6 100644 --- a/core/java/android/net/NetworkRequest.java +++ b/core/java/android/net/NetworkRequest.java @@ -191,6 +191,24 @@ public class NetworkRequest implements Parcelable { mNetworkCapabilities.setNetworkSpecifier(networkSpecifier); return this; } + + /** + * Sets the signal strength. This is a signed integer, with higher values indicating a + * stronger signal. The exact units are bearer-dependent. For example, Wi-Fi uses the same + * RSSI units reported by WifiManager. + * <p> + * Note that when used to register a network callback, this specifies the minimum acceptable + * signal strength. When received as the state of an existing network it specifies the + * current value. A value of {@code SIGNAL_STRENGTH_UNSPECIFIED} means no value when + * received and has no effect when requesting a callback. + * + * @param signalStrength the bearer-specific signal strength. + * @hide + */ + public Builder setSignalStrength(int signalStrength) { + mNetworkCapabilities.setSignalStrength(signalStrength); + return this; + } } // implement the Parcelable interface diff --git a/core/java/android/nfc/cardemulation/AidGroup.java b/core/java/android/nfc/cardemulation/AidGroup.java index 4407c9deb911..78a9401a2abd 100644 --- a/core/java/android/nfc/cardemulation/AidGroup.java +++ b/core/java/android/nfc/cardemulation/AidGroup.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package android.nfc.cardemulation; import java.io.IOException; diff --git a/core/java/android/nfc/cardemulation/HostApduService.java b/core/java/android/nfc/cardemulation/HostApduService.java index ad34e61db910..a2994790efb5 100644 --- a/core/java/android/nfc/cardemulation/HostApduService.java +++ b/core/java/android/nfc/cardemulation/HostApduService.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package android.nfc.cardemulation; import android.annotation.SdkConstant; diff --git a/core/java/android/nfc/cardemulation/OffHostApduService.java b/core/java/android/nfc/cardemulation/OffHostApduService.java index 0d01762ae8e2..6a8aeee1ebee 100644 --- a/core/java/android/nfc/cardemulation/OffHostApduService.java +++ b/core/java/android/nfc/cardemulation/OffHostApduService.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package android.nfc.cardemulation; import android.annotation.SdkConstant; diff --git a/core/java/android/os/BatteryManager.java b/core/java/android/os/BatteryManager.java index cccc4be5ae29..1f3e9a7025eb 100644 --- a/core/java/android/os/BatteryManager.java +++ b/core/java/android/os/BatteryManager.java @@ -101,6 +101,13 @@ public class BatteryManager { */ public static final String EXTRA_INVALID_CHARGER = "invalid_charger"; + /** + * Extra for {@link android.content.Intent#ACTION_BATTERY_CHANGED}: + * Int value set to the maximum charging current supported by the charger in micro amperes. + * {@hide} + */ + public static final String EXTRA_MAX_CHARGING_CURRENT = "max_charging_current"; + // values for "status" field in the ACTION_BATTERY_CHANGED Intent public static final int BATTERY_STATUS_UNKNOWN = 1; public static final int BATTERY_STATUS_CHARGING = 2; diff --git a/core/java/android/os/BatteryProperties.java b/core/java/android/os/BatteryProperties.java index 8f5cf8b0d418..29e868c60454 100644 --- a/core/java/android/os/BatteryProperties.java +++ b/core/java/android/os/BatteryProperties.java @@ -22,6 +22,7 @@ public class BatteryProperties implements Parcelable { public boolean chargerAcOnline; public boolean chargerUsbOnline; public boolean chargerWirelessOnline; + public int maxChargingCurrent; public int batteryStatus; public int batteryHealth; public boolean batteryPresent; @@ -37,6 +38,7 @@ public class BatteryProperties implements Parcelable { chargerAcOnline = other.chargerAcOnline; chargerUsbOnline = other.chargerUsbOnline; chargerWirelessOnline = other.chargerWirelessOnline; + maxChargingCurrent = other.maxChargingCurrent; batteryStatus = other.batteryStatus; batteryHealth = other.batteryHealth; batteryPresent = other.batteryPresent; @@ -55,6 +57,7 @@ public class BatteryProperties implements Parcelable { chargerAcOnline = p.readInt() == 1 ? true : false; chargerUsbOnline = p.readInt() == 1 ? true : false; chargerWirelessOnline = p.readInt() == 1 ? true : false; + maxChargingCurrent = p.readInt(); batteryStatus = p.readInt(); batteryHealth = p.readInt(); batteryPresent = p.readInt() == 1 ? true : false; @@ -68,6 +71,7 @@ public class BatteryProperties implements Parcelable { p.writeInt(chargerAcOnline ? 1 : 0); p.writeInt(chargerUsbOnline ? 1 : 0); p.writeInt(chargerWirelessOnline ? 1 : 0); + p.writeInt(maxChargingCurrent); p.writeInt(batteryStatus); p.writeInt(batteryHealth); p.writeInt(batteryPresent ? 1 : 0); diff --git a/core/java/android/os/BatteryStats.java b/core/java/android/os/BatteryStats.java index 80169a956f41..8e86a53072e7 100644 --- a/core/java/android/os/BatteryStats.java +++ b/core/java/android/os/BatteryStats.java @@ -169,7 +169,7 @@ public abstract class BatteryStats implements Parcelable { /** * Current version of checkin data format. */ - static final String CHECKIN_VERSION = "14"; + static final String CHECKIN_VERSION = "15"; /** * Old version, we hit 9 and ran out of room, need to remove. @@ -463,12 +463,15 @@ public abstract class BatteryStats implements Parcelable { public abstract long getCpuPowerMaUs(int which); /** - * Returns the approximate cpu time (in milliseconds) spent at a certain CPU speed. + * Returns the approximate cpu time (in milliseconds) spent at a certain CPU speed for a + * given CPU cluster. + * @param cluster the index of the CPU cluster. * @param step the index of the CPU speed. This is not the actual speed of the CPU. * @param which one of STATS_SINCE_CHARGED, STATS_SINCE_UNPLUGGED, or STATS_CURRENT. - * @see BatteryStats#getCpuSpeedSteps() + * @see PowerProfile.getNumCpuClusters() + * @see PowerProfile.getNumSpeedStepsInCpuCluster(int) */ - public abstract long getTimeAtCpuSpeed(int step, int which); + public abstract long getTimeAtCpuSpeed(int cluster, int step, int which); public static abstract class Sensor { /* @@ -2275,9 +2278,6 @@ public abstract class BatteryStats implements Parcelable { public abstract Map<String, ? extends Timer> getKernelWakelockStats(); - /** Returns the number of different speeds that the CPU can run at */ - public abstract int getCpuSpeedSteps(); - public abstract void writeToParcelWithoutUids(Parcel out, int flags); private final static void formatTimeRaw(StringBuilder out, long seconds) { diff --git a/core/java/android/os/PowerManagerInternal.java b/core/java/android/os/PowerManagerInternal.java index e742f989c500..b6d0fcb448f5 100644 --- a/core/java/android/os/PowerManagerInternal.java +++ b/core/java/android/os/PowerManagerInternal.java @@ -53,6 +53,15 @@ public abstract class PowerManagerInternal { */ public static final int WAKEFULNESS_DOZING = 3; + + /** + * Power hint: The user is interacting with the device. The corresponding data field must be + * the expected duration of the fling, or 0 if unknown. + * + * This must be kept in sync with the values in hardware/libhardware/include/hardware/power.h + */ + public static final int POWER_HINT_INTERACTION = 2; + public static String wakefulnessToString(int wakefulness) { switch (wakefulness) { case WAKEFULNESS_ASLEEP: @@ -108,6 +117,12 @@ public abstract class PowerManagerInternal { public abstract void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis); /** + * Used by the window manager to tell the power manager that the user is no longer actively + * using the device. + */ + public abstract void setUserInactiveOverrideFromWindowManager(); + + /** * Used by device administration to set the maximum screen off timeout. * * This method must only be called by the device administration policy manager. @@ -142,4 +157,6 @@ public abstract class PowerManagerInternal { public abstract void updateUidProcState(int uid, int procState); public abstract void uidGone(int uid); + + public abstract void powerHint(int hintId, int data); } diff --git a/core/java/android/os/storage/IMountService.java b/core/java/android/os/storage/IMountService.java index fce09dd4c80c..9f71ce149ae7 100644 --- a/core/java/android/os/storage/IMountService.java +++ b/core/java/android/os/storage/IMountService.java @@ -1180,6 +1180,37 @@ public interface IMountService extends IInterface { _data.recycle(); } } + + @Override + public void createNewUserDir(int userHandle, String path) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(userHandle); + _data.writeString(path); + mRemote.transact(Stub.TRANSACTION_createNewUserDir, _data, _reply, 0); + _reply.readException(); + } finally { + _reply.recycle(); + _data.recycle(); + } + } + + @Override + public void deleteUserKey(int userHandle) throws RemoteException { + Parcel _data = Parcel.obtain(); + Parcel _reply = Parcel.obtain(); + try { + _data.writeInterfaceToken(DESCRIPTOR); + _data.writeInt(userHandle); + mRemote.transact(Stub.TRANSACTION_deleteUserKey, _data, _reply, 0); + _reply.readException(); + } finally { + _reply.recycle(); + _data.recycle(); + } + } } private static final String DESCRIPTOR = "IMountService"; @@ -1295,6 +1326,9 @@ public interface IMountService extends IInterface { static final int TRANSACTION_benchmark = IBinder.FIRST_CALL_TRANSACTION + 59; static final int TRANSACTION_setDebugFlags = IBinder.FIRST_CALL_TRANSACTION + 60; + static final int TRANSACTION_createNewUserDir = IBinder.FIRST_CALL_TRANSACTION + 62; + static final int TRANSACTION_deleteUserKey = IBinder.FIRST_CALL_TRANSACTION + 63; + /** * Cast an IBinder object into an IMountService interface, generating a * proxy if needed. @@ -1850,6 +1884,21 @@ public interface IMountService extends IInterface { reply.writeNoException(); return true; } + case TRANSACTION_createNewUserDir: { + data.enforceInterface(DESCRIPTOR); + int userHandle = data.readInt(); + String path = data.readString(); + createNewUserDir(userHandle, path); + reply.writeNoException(); + return true; + } + case TRANSACTION_deleteUserKey: { + data.enforceInterface(DESCRIPTOR); + int userHandle = data.readInt(); + deleteUserKey(userHandle); + reply.writeNoException(); + return true; + } } return super.onTransact(code, data, reply, flags); } @@ -2159,4 +2208,19 @@ public interface IMountService extends IInterface { public String getPrimaryStorageUuid() throws RemoteException; public void setPrimaryStorageUuid(String volumeUuid, IPackageMoveObserver callback) throws RemoteException; + + /** + * Creates the user data directory, possibly encrypted + * @param userHandle Handle of the user whose directory we are creating + * @param path Path at which to create the directory. + */ + public void createNewUserDir(int userHandle, String path) + throws RemoteException; + + /** + * Securely delete the user's encryption key + * @param userHandle Handle of the user whose key we are deleting + */ + public void deleteUserKey(int userHandle) + throws RemoteException; } diff --git a/core/java/android/os/storage/StorageManager.java b/core/java/android/os/storage/StorageManager.java index d1f37436e4ba..1d92453b3e9e 100644 --- a/core/java/android/os/storage/StorageManager.java +++ b/core/java/android/os/storage/StorageManager.java @@ -960,6 +960,24 @@ public class StorageManager { } /** {@hide} */ + public void createNewUserDir(int userHandle, File path) { + try { + mMountService.createNewUserDir(userHandle, path.getAbsolutePath()); + } catch (RemoteException e) { + throw e.rethrowAsRuntimeException(); + } + } + + /** {@hide} */ + public void deleteUserKey(int userHandle) { + try { + mMountService.deleteUserKey(userHandle); + } catch (RemoteException e) { + throw e.rethrowAsRuntimeException(); + } + } + + /** {@hide} */ public static File maybeTranslateEmulatedPathToInternal(File path) { final IMountService mountService = IMountService.Stub.asInterface( ServiceManager.getService("mount")); diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index fe95864e4172..33f94763608d 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -3283,7 +3283,6 @@ public final class Settings { DOCK_SOUNDS_ENABLED, // moved to global LOCKSCREEN_SOUNDS_ENABLED, SHOW_WEB_SUGGESTIONS, - NOTIFICATION_LIGHT_PULSE, SIP_CALL_OPTIONS, SIP_RECEIVE_CALLS, POINTER_SPEED, @@ -5712,6 +5711,22 @@ public final class Settings { public static final String ASSISTANT = "assistant"; /** + * Whether the camera launch gesture should be disabled. + * + * @hide + */ + public static final String CAMERA_GESTURE_DISABLED = "camera_gesture_disabled"; + + /** + * Whether the camera launch gesture to double tap the power button when the screen is off + * should be disabled. + * + * @hide + */ + public static final String CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED = + "camera_double_tap_power_gesture_disabled"; + + /** * This are the settings to be backed up. * * NOTE: Settings are backed up and restored in the order they appear @@ -5767,6 +5782,7 @@ public final class Settings { MOUNT_UMS_NOTIFY_ENABLED, SLEEP_TIMEOUT, DOUBLE_TAP_TO_WAKE, + CAMERA_GESTURE_DISABLED, }; /** @@ -8080,6 +8096,13 @@ public final class Settings { * @hide */ public static final String CONTACT_METADATA_SYNC = "contact_metadata_sync"; + + /** + * Whether to enable cellular on boot. + * The value 1 - enable, 0 - disable + * @hide + */ + public static final String ENABLE_CELLULAR_ON_BOOT = "enable_cellular_on_boot"; } /** diff --git a/core/java/android/view/Display.java b/core/java/android/view/Display.java index 35c41928f214..1269ad93d306 100644 --- a/core/java/android/view/Display.java +++ b/core/java/android/view/Display.java @@ -16,7 +16,10 @@ package android.view; +import android.annotation.RequiresPermission; +import android.content.Context; import android.content.res.CompatibilityInfo; +import android.content.res.Resources; import android.graphics.PixelFormat; import android.graphics.Point; import android.graphics.Rect; @@ -30,6 +33,8 @@ import android.util.Log; import java.util.Arrays; +import static android.Manifest.permission.CONFIGURE_DISPLAY_COLOR_TRANSFORM; + /** * Provides information about the size and density of a logical display. * <p> @@ -679,6 +684,49 @@ public final class Display { } /** + * Request the display applies a color transform. + * @hide + */ + @RequiresPermission(CONFIGURE_DISPLAY_COLOR_TRANSFORM) + public void requestColorTransform(ColorTransform colorTransform) { + mGlobal.requestColorTransform(mDisplayId, colorTransform.getId()); + } + + /** + * Returns the active color transform of this display + * @hide + */ + public ColorTransform getColorTransform() { + synchronized (this) { + updateDisplayInfoLocked(); + return mDisplayInfo.getColorTransform(); + } + } + + /** + * Returns the default color transform of this display + * @hide + */ + public ColorTransform getDefaultColorTransform() { + synchronized (this) { + updateDisplayInfoLocked(); + return mDisplayInfo.getDefaultColorTransform(); + } + } + + /** + * Gets the supported color transforms of this device. + * @hide + */ + public ColorTransform[] getSupportedColorTransforms() { + synchronized (this) { + updateDisplayInfoLocked(); + ColorTransform[] transforms = mDisplayInfo.supportedColorTransforms; + return Arrays.copyOf(transforms, transforms.length); + } + } + + /** * Gets the app VSYNC offset, in nanoseconds. This is a positive value indicating * the phase offset of the VSYNC events provided by Choreographer relative to the * display refresh. For example, if Choreographer reports that the refresh occurred @@ -1054,4 +1102,89 @@ public final class Display { } }; } + + /** + * A color transform supported by a given display. + * + * @see Display#getSupportedColorTransforms() + * @hide + */ + public static final class ColorTransform implements Parcelable { + public static final ColorTransform[] EMPTY_ARRAY = new ColorTransform[0]; + + private final int mId; + private final int mColorTransform; + + public ColorTransform(int id, int colorTransform) { + mId = id; + mColorTransform = colorTransform; + } + + public int getId() { + return mId; + } + + public int getColorTransform() { + return mColorTransform; + } + + @Override + public boolean equals(Object other) { + if (this == other) { + return true; + } + if (!(other instanceof ColorTransform)) { + return false; + } + ColorTransform that = (ColorTransform) other; + return mId == that.mId + && mColorTransform == that.mColorTransform; + } + + @Override + public int hashCode() { + int hash = 1; + hash = hash * 17 + mId; + hash = hash * 17 + mColorTransform; + return hash; + } + + @Override + public String toString() { + return new StringBuilder("{") + .append("id=").append(mId) + .append(", colorTransform=").append(mColorTransform) + .append("}") + .toString(); + } + + @Override + public int describeContents() { + return 0; + } + + private ColorTransform(Parcel in) { + this(in.readInt(), in.readInt()); + } + + @Override + public void writeToParcel(Parcel out, int parcelableFlags) { + out.writeInt(mId); + out.writeInt(mColorTransform); + } + + @SuppressWarnings("hiding") + public static final Parcelable.Creator<ColorTransform> CREATOR + = new Parcelable.Creator<ColorTransform>() { + @Override + public ColorTransform createFromParcel(Parcel in) { + return new ColorTransform(in); + } + + @Override + public ColorTransform[] newArray(int size) { + return new ColorTransform[size]; + } + }; + } } diff --git a/core/java/android/view/DisplayInfo.java b/core/java/android/view/DisplayInfo.java index cf1799040f5f..ee76274ca5a6 100644 --- a/core/java/android/view/DisplayInfo.java +++ b/core/java/android/view/DisplayInfo.java @@ -169,6 +169,15 @@ public final class DisplayInfo implements Parcelable { */ public Display.Mode[] supportedModes = Display.Mode.EMPTY_ARRAY; + /** The active color transform. */ + public int colorTransformId; + + /** The default color transform. */ + public int defaultColorTransformId; + + /** The list of supported color transforms */ + public Display.ColorTransform[] supportedColorTransforms = Display.ColorTransform.EMPTY_ARRAY; + /** * The logical display density which is the basis for density-independent * pixels. @@ -279,6 +288,8 @@ public final class DisplayInfo implements Parcelable { && rotation == other.rotation && modeId == other.modeId && defaultModeId == other.defaultModeId + && colorTransformId == other.colorTransformId + && defaultColorTransformId == other.defaultColorTransformId && logicalDensityDpi == other.logicalDensityDpi && physicalXDpi == other.physicalXDpi && physicalYDpi == other.physicalYDpi @@ -317,6 +328,10 @@ public final class DisplayInfo implements Parcelable { modeId = other.modeId; defaultModeId = other.defaultModeId; supportedModes = Arrays.copyOf(other.supportedModes, other.supportedModes.length); + colorTransformId = other.colorTransformId; + defaultColorTransformId = other.defaultColorTransformId; + supportedColorTransforms = Arrays.copyOf( + other.supportedColorTransforms, other.supportedColorTransforms.length); logicalDensityDpi = other.logicalDensityDpi; physicalXDpi = other.physicalXDpi; physicalYDpi = other.physicalYDpi; @@ -353,6 +368,13 @@ public final class DisplayInfo implements Parcelable { for (int i = 0; i < nModes; i++) { supportedModes[i] = Display.Mode.CREATOR.createFromParcel(source); } + colorTransformId = source.readInt(); + defaultColorTransformId = source.readInt(); + int nColorTransforms = source.readInt(); + supportedColorTransforms = new Display.ColorTransform[nColorTransforms]; + for (int i = 0; i < nColorTransforms; i++) { + supportedColorTransforms[i] = Display.ColorTransform.CREATOR.createFromParcel(source); + } logicalDensityDpi = source.readInt(); physicalXDpi = source.readFloat(); physicalYDpi = source.readFloat(); @@ -390,6 +412,12 @@ public final class DisplayInfo implements Parcelable { for (int i = 0; i < supportedModes.length; i++) { supportedModes[i].writeToParcel(dest, flags); } + dest.writeInt(colorTransformId); + dest.writeInt(defaultColorTransformId); + dest.writeInt(supportedColorTransforms.length); + for (int i = 0; i < supportedColorTransforms.length; i++) { + supportedColorTransforms[i].writeToParcel(dest, flags); + } dest.writeInt(logicalDensityDpi); dest.writeFloat(physicalXDpi); dest.writeFloat(physicalYDpi); @@ -461,6 +489,24 @@ public final class DisplayInfo implements Parcelable { return result; } + public Display.ColorTransform getColorTransform() { + return findColorTransform(colorTransformId); + } + + public Display.ColorTransform getDefaultColorTransform() { + return findColorTransform(defaultColorTransformId); + } + + private Display.ColorTransform findColorTransform(int colorTransformId) { + for (int i = 0; i < supportedColorTransforms.length; i++) { + Display.ColorTransform colorTransform = supportedColorTransforms[i]; + if (colorTransform.getId() == colorTransformId) { + return colorTransform; + } + } + throw new IllegalStateException("Unable to locate color transform: " + colorTransformId); + } + public void getAppMetrics(DisplayMetrics outMetrics) { getAppMetrics(outMetrics, CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null); } @@ -562,6 +608,12 @@ public final class DisplayInfo implements Parcelable { sb.append(defaultModeId); sb.append(", modes "); sb.append(Arrays.toString(supportedModes)); + sb.append(", colorTransformId "); + sb.append(colorTransformId); + sb.append(", defaultColorTransformId "); + sb.append(defaultColorTransformId); + sb.append(", supportedColorTransforms "); + sb.append(Arrays.toString(supportedColorTransforms)); sb.append(", rotation "); sb.append(rotation); sb.append(", density "); diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java index a9bf92b1dfa3..052ef7c73e77 100644 --- a/core/java/android/view/KeyEvent.java +++ b/core/java/android/view/KeyEvent.java @@ -761,6 +761,19 @@ public class KeyEvent extends InputEvent implements Parcelable { * Backs out one level of a navigation hierarchy or collapses the item that currently has * focus. */ public static final int KEYCODE_NAVIGATE_OUT = 263; + /** Key code constant: Primary stem key for Wear + * Main power/reset button on watch. + * @hide */ + public static final int KEYCODE_STEM_PRIMARY = 264; + /** Key code constant: Generic stem key 1 for Wear + * @hide */ + public static final int KEYCODE_STEM_1 = 265; + /** Key code constant: Generic stem key 2 for Wear + * @hide */ + public static final int KEYCODE_STEM_2 = 266; + /** Key code constant: Generic stem key 3 for Wear + * @hide */ + public static final int KEYCODE_STEM_3 = 267; /** Key code constant: Skip forward media key. */ public static final int KEYCODE_MEDIA_SKIP_FORWARD = 272; /** Key code constant: Skip backward media key. */ @@ -771,8 +784,11 @@ public class KeyEvent extends InputEvent implements Parcelable { /** Key code constant: Step backward media key. * Steps media backward, one frame at a time. */ public static final int KEYCODE_MEDIA_STEP_BACKWARD = 275; + /** Key code constant: put device to sleep unless a wakelock is held. + * @hide */ + public static final int KEYCODE_SOFT_SLEEP = 276; - private static final int LAST_KEYCODE = KEYCODE_MEDIA_STEP_BACKWARD; + private static final int LAST_KEYCODE = KEYCODE_SOFT_SLEEP; // NOTE: If you add a new keycode here you must also add it to: // isSystem() diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index 5970c3f738a0..bcf9b2c7fe7c 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -484,6 +484,7 @@ public class SurfaceControl { public boolean secure; public long appVsyncOffsetNanos; public long presentationDeadlineNanos; + public int colorTransform; public PhysicalDisplayInfo() { } @@ -507,7 +508,8 @@ public class SurfaceControl { && yDpi == other.yDpi && secure == other.secure && appVsyncOffsetNanos == other.appVsyncOffsetNanos - && presentationDeadlineNanos == other.presentationDeadlineNanos; + && presentationDeadlineNanos == other.presentationDeadlineNanos + && colorTransform == other.colorTransform; } @Override @@ -525,6 +527,7 @@ public class SurfaceControl { secure = other.secure; appVsyncOffsetNanos = other.appVsyncOffsetNanos; presentationDeadlineNanos = other.presentationDeadlineNanos; + colorTransform = other.colorTransform; } // For debugging purposes @@ -533,7 +536,8 @@ public class SurfaceControl { return "PhysicalDisplayInfo{" + width + " x " + height + ", " + refreshRate + " fps, " + "density " + density + ", " + xDpi + " x " + yDpi + " dpi, secure " + secure + ", appVsyncOffset " + appVsyncOffsetNanos - + ", bufferDeadline " + presentationDeadlineNanos + "}"; + + ", bufferDeadline " + presentationDeadlineNanos + + ", colorTransform " + colorTransform + "}"; } } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 6e93a3031de5..42402ebdc746 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -6621,6 +6621,19 @@ public final class ViewRootImpl implements ViewParent, return false; } + /** + * Force the window to report its next draw. + * <p> + * This method is only supposed to be used to speed up the interaction from SystemUI and window + * manager when waiting for the first frame to be drawn when turning on the screen. DO NOT USE + * unless you fully understand this interaction. + * @hide + */ + public void setReportNextDraw() { + mReportNextDraw = true; + invalidate(); + } + void changeCanvasOpacity(boolean opaque) { Log.d(TAG, "changeCanvasOpacity: opaque=" + opaque); if (mAttachInfo.mHardwareRenderer != null) { diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java index ed858e7a9836..6e9a41857851 100644 --- a/core/java/android/widget/AbsListView.java +++ b/core/java/android/widget/AbsListView.java @@ -2395,6 +2395,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te lp.itemId = mAdapter.getItemId(position); } lp.viewType = mAdapter.getItemViewType(position); + lp.isEnabled = mAdapter.isEnabled(position); if (lp != vlp) { child.setLayoutParams(lp); } @@ -2416,19 +2417,33 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } final int position = getPositionForView(host); - final ListAdapter adapter = getAdapter(); - - if ((position == INVALID_POSITION) || (adapter == null)) { + if (position == INVALID_POSITION || mAdapter == null) { // Cannot perform actions on invalid items. return false; } - if (!isEnabled() || !adapter.isEnabled(position)) { - // Cannot perform actions on disabled items. + if (position >= mAdapter.getCount()) { + // The position is no longer valid, likely due to a data set + // change. We could fail here for all data set changes, since + // there is a chance that the data bound to the view may no + // longer exist at the same position within the adapter, but + // it's more consistent with the standard touch interaction to + // click at whatever may have moved into that position. return false; } - final long id = getItemIdAtPosition(position); + final boolean isItemEnabled; + final ViewGroup.LayoutParams lp = host.getLayoutParams(); + if (lp instanceof AbsListView.LayoutParams) { + isItemEnabled = ((AbsListView.LayoutParams) lp).isEnabled; + } else { + isItemEnabled = false; + } + + if (!isEnabled() || !isItemEnabled) { + // Cannot perform actions on disabled items. + return false; + } switch (action) { case AccessibilityNodeInfo.ACTION_CLEAR_SELECTION: { @@ -2445,11 +2460,13 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te } return false; case AccessibilityNodeInfo.ACTION_CLICK: { if (isClickable()) { + final long id = getItemIdAtPosition(position); return performItemClick(host, position, id); } } return false; case AccessibilityNodeInfo.ACTION_LONG_CLICK: { if (isLongClickable()) { + final long id = getItemIdAtPosition(position); return performLongPress(host, position, id); } } return false; @@ -2469,13 +2486,20 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te */ public void onInitializeAccessibilityNodeInfoForItem( View view, int position, AccessibilityNodeInfo info) { - final ListAdapter adapter = getAdapter(); - if (position == INVALID_POSITION || adapter == null) { + if (position == INVALID_POSITION) { // The item doesn't exist, so there's not much we can do here. return; } - if (!isEnabled() || !adapter.isEnabled(position)) { + final boolean isItemEnabled; + final ViewGroup.LayoutParams lp = view.getLayoutParams(); + if (lp instanceof AbsListView.LayoutParams) { + isItemEnabled = ((AbsListView.LayoutParams) lp).isEnabled; + } else { + isItemEnabled = false; + } + + if (!isEnabled() || !isItemEnabled) { info.setEnabled(false); return; } @@ -6315,6 +6339,9 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te */ long itemId = -1; + /** Whether the adapter considers the item enabled. */ + boolean isEnabled; + public LayoutParams(Context c, AttributeSet attrs) { super(c, attrs); } @@ -6340,6 +6367,7 @@ public abstract class AbsListView extends AdapterView<ListAdapter> implements Te encoder.addProperty("list:viewType", viewType); encoder.addProperty("list:recycledHeaderFooter", recycledHeaderFooter); encoder.addProperty("list:forceAdd", forceAdd); + encoder.addProperty("list:isEnabled", isEnabled); } } diff --git a/core/java/android/widget/AdapterView.java b/core/java/android/widget/AdapterView.java index 0cc1b25d19b7..2cfefba10c57 100644 --- a/core/java/android/widget/AdapterView.java +++ b/core/java/android/widget/AdapterView.java @@ -600,13 +600,20 @@ public abstract class AdapterView<T extends Adapter> extends ViewGroup { } /** - * Get the position within the adapter's data set for the view, where view is a an adapter item - * or a descendant of an adapter item. + * Returns the position within the adapter's data set for the view, where + * view is a an adapter item or a descendant of an adapter item. + * <p> + * <strong>Note:</strong> The result of this method only reflects the + * position of the data bound to <var>view</var> during the most recent + * layout pass. If the adapter's data set has changed without a subsequent + * layout pass, the position returned by this method may not match the + * current position of the data within the adapter. * - * @param view an adapter item, or a descendant of an adapter item. This must be visible in this - * AdapterView at the time of the call. - * @return the position within the adapter's data set of the view, or {@link #INVALID_POSITION} - * if the view does not correspond to a list item (or it is not currently visible). + * @param view an adapter item, or a descendant of an adapter item. This + * must be visible in this AdapterView at the time of the call. + * @return the position within the adapter's data set of the view, or + * {@link #INVALID_POSITION} if the view does not correspond to a + * list item (or it is not currently visible) */ public int getPositionForView(View view) { View listItem = view; diff --git a/core/java/android/widget/GridView.java b/core/java/android/widget/GridView.java index f994d4ad91be..607e955d5698 100644 --- a/core/java/android/widget/GridView.java +++ b/core/java/android/widget/GridView.java @@ -1070,6 +1070,7 @@ public class GridView extends AbsListView { child.setLayoutParams(p); } p.viewType = mAdapter.getItemViewType(0); + p.isEnabled = mAdapter.isEnabled(0); p.forceAdd = true; int childHeightSpec = getChildMeasureSpec( @@ -1480,6 +1481,7 @@ public class GridView extends AbsListView { p = (AbsListView.LayoutParams) generateDefaultLayoutParams(); } p.viewType = mAdapter.getItemViewType(position); + p.isEnabled = mAdapter.isEnabled(position); if (recycled && !p.forceAdd) { attachViewToParent(child, where, p); diff --git a/core/java/android/widget/ListView.java b/core/java/android/widget/ListView.java index c5632ec91fe4..00d017f9f576 100644 --- a/core/java/android/widget/ListView.java +++ b/core/java/android/widget/ListView.java @@ -1200,6 +1200,7 @@ public class ListView extends AbsListView { child.setLayoutParams(p); } p.viewType = mAdapter.getItemViewType(position); + p.isEnabled = mAdapter.isEnabled(position); p.forceAdd = true; final int childWidthSpec = ViewGroup.getChildMeasureSpec(widthMeasureSpec, @@ -1913,6 +1914,7 @@ public class ListView extends AbsListView { p = (AbsListView.LayoutParams) generateDefaultLayoutParams(); } p.viewType = mAdapter.getItemViewType(position); + p.isEnabled = mAdapter.isEnabled(position); if ((recycled && !p.forceAdd) || (p.recycledHeaderFooter && p.viewType == AdapterView.ITEM_VIEW_TYPE_HEADER_OR_FOOTER)) { diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 7ca333947918..ca1b211bc291 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -31,6 +31,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; +import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.PorterDuff; import android.graphics.Rect; @@ -55,6 +56,8 @@ import android.view.ViewGroup; import android.widget.AdapterView.OnItemClickListener; import libcore.util.Objects; +import com.android.internal.R; + import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -206,14 +209,22 @@ public class RemoteViews implements Parcelable, Filter { /** @hide */ public static class OnClickHandler { + + private int mEnterAnimationId; + public boolean onClickHandler(View view, PendingIntent pendingIntent, Intent fillInIntent) { try { // TODO: Unregister this handler if PendingIntent.FLAG_ONE_SHOT? Context context = view.getContext(); - ActivityOptions opts = ActivityOptions.makeScaleUpAnimation(view, - 0, 0, - view.getMeasuredWidth(), view.getMeasuredHeight()); + ActivityOptions opts; + if (mEnterAnimationId != 0) { + opts = ActivityOptions.makeCustomAnimation(context, mEnterAnimationId, 0); + } else { + opts = ActivityOptions.makeScaleUpAnimation(view, + 0, 0, + view.getMeasuredWidth(), view.getMeasuredHeight()); + } context.startIntentSender( pendingIntent.getIntentSender(), fillInIntent, Intent.FLAG_ACTIVITY_NEW_TASK, @@ -228,6 +239,10 @@ public class RemoteViews implements Parcelable, Filter { } return true; } + + public void setEnterAnimationId(int enterAnimationId) { + mEnterAnimationId = enterAnimationId; + } } /** @@ -2761,11 +2776,31 @@ public class RemoteViews implements Parcelable, Filter { inflater.setFilter(this); result = inflater.inflate(rvToApply.getLayoutId(), parent, false); + loadTransitionOverride(context, handler); + rvToApply.performApply(result, parent, handler); return result; } + private static void loadTransitionOverride(Context context, + RemoteViews.OnClickHandler handler) { + if (handler != null && context.getResources().getBoolean( + com.android.internal.R.bool.config_overrideRemoteViewsActivityTransition)) { + TypedArray windowStyle = context.getTheme().obtainStyledAttributes( + com.android.internal.R.styleable.Window); + int windowAnimations = windowStyle.getResourceId( + com.android.internal.R.styleable.Window_windowAnimationStyle, 0); + TypedArray windowAnimationStyle = context.obtainStyledAttributes( + windowAnimations, com.android.internal.R.styleable.WindowAnimation); + handler.setEnterAnimationId(windowAnimationStyle.getResourceId( + com.android.internal.R.styleable. + WindowAnimation_activityOpenRemoteViewsEnterAnimation, 0)); + windowStyle.recycle(); + windowAnimationStyle.recycle(); + } + } + /** * Applies all of the actions to the provided view. * diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index d9faece9485f..3219dcb5ad8b 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -104,6 +104,7 @@ public class ChooserActivity extends ResolverActivity { sri.resultTargets); } unbindService(sri.connection); + sri.connection.destroy(); mServiceConnections.remove(sri.connection); if (mServiceConnections.isEmpty()) { mChooserHandler.removeMessages(CHOOSER_TARGET_SERVICE_WATCHDOG_TIMEOUT); @@ -208,6 +209,8 @@ public class ChooserActivity extends ResolverActivity { mRefinementResultReceiver.destroy(); mRefinementResultReceiver = null; } + unbindRemainingServices(); + mChooserHandler.removeMessages(CHOOSER_TARGET_SERVICE_RESULT); } @Override @@ -265,6 +268,11 @@ public class ChooserActivity extends ResolverActivity { return true; } + @Override + boolean shouldAutoLaunchSingleChoice() { + return false; + } + private void modifyTargetIntent(Intent in) { final String action = in.getAction(); if (Intent.ACTION_SEND.equals(action) || @@ -371,7 +379,8 @@ public class ChooserActivity extends ResolverActivity { continue; } - final ChooserTargetServiceConnection conn = new ChooserTargetServiceConnection(dri); + final ChooserTargetServiceConnection conn = + new ChooserTargetServiceConnection(this, dri); if (bindServiceAsUser(serviceIntent, conn, BIND_AUTO_CREATE | BIND_NOT_FOREGROUND, UserHandle.CURRENT)) { if (DEBUG) { @@ -425,6 +434,7 @@ public class ChooserActivity extends ResolverActivity { final ChooserTargetServiceConnection conn = mServiceConnections.get(i); if (DEBUG) Log.d(TAG, "unbinding " + conn); unbindService(conn); + conn.destroy(); } mServiceConnections.clear(); mChooserHandler.removeMessages(CHOOSER_TARGET_SERVICE_WATCHDOG_TIMEOUT); @@ -637,7 +647,8 @@ public class ChooserActivity extends ResolverActivity { @Override public CharSequence getExtendedInfo() { - return mSourceInfo != null ? mSourceInfo.getExtendedInfo() : null; + // ChooserTargets have badge icons, so we won't show the extended info to disambiguate. + return null; } @Override @@ -730,9 +741,8 @@ public class ChooserActivity extends ResolverActivity { @Override public boolean showsExtendedInfo(TargetInfo info) { - // Reserve space to show extended info if any one of the items in the adapter has - // extended info. This keeps grid item sizes uniform. - return hasExtendedInfo(); + // We have badges so we don't need this text shown. + return false; } @Override @@ -1024,54 +1034,93 @@ public class ChooserActivity extends ResolverActivity { } } - class ChooserTargetServiceConnection implements ServiceConnection { + static class ChooserTargetServiceConnection implements ServiceConnection { private final DisplayResolveInfo mOriginalTarget; + private ComponentName mConnectedComponent; + private ChooserActivity mChooserActivity; + private final Object mLock = new Object(); private final IChooserTargetResult mChooserTargetResult = new IChooserTargetResult.Stub() { @Override public void sendResult(List<ChooserTarget> targets) throws RemoteException { - filterServiceTargets(mOriginalTarget.getResolveInfo().activityInfo.packageName, - targets); - final Message msg = Message.obtain(); - msg.what = CHOOSER_TARGET_SERVICE_RESULT; - msg.obj = new ServiceResultInfo(mOriginalTarget, targets, - ChooserTargetServiceConnection.this); - mChooserHandler.sendMessage(msg); + synchronized (mLock) { + if (mChooserActivity == null) { + Log.e(TAG, "destroyed ChooserTargetServiceConnection received result from " + + mConnectedComponent + "; ignoring..."); + return; + } + mChooserActivity.filterServiceTargets( + mOriginalTarget.getResolveInfo().activityInfo.packageName, targets); + final Message msg = Message.obtain(); + msg.what = CHOOSER_TARGET_SERVICE_RESULT; + msg.obj = new ServiceResultInfo(mOriginalTarget, targets, + ChooserTargetServiceConnection.this); + mChooserActivity.mChooserHandler.sendMessage(msg); + } } }; - public ChooserTargetServiceConnection(DisplayResolveInfo dri) { + public ChooserTargetServiceConnection(ChooserActivity chooserActivity, + DisplayResolveInfo dri) { + mChooserActivity = chooserActivity; mOriginalTarget = dri; } @Override public void onServiceConnected(ComponentName name, IBinder service) { if (DEBUG) Log.d(TAG, "onServiceConnected: " + name); - final IChooserTargetService icts = IChooserTargetService.Stub.asInterface(service); - try { - icts.getChooserTargets(mOriginalTarget.getResolvedComponentName(), - mOriginalTarget.getResolveInfo().filter, mChooserTargetResult); - } catch (RemoteException e) { - Log.e(TAG, "Querying ChooserTargetService " + name + " failed.", e); - unbindService(this); - mServiceConnections.remove(this); + synchronized (mLock) { + if (mChooserActivity == null) { + Log.e(TAG, "destroyed ChooserTargetServiceConnection got onServiceConnected"); + return; + } + + final IChooserTargetService icts = IChooserTargetService.Stub.asInterface(service); + try { + icts.getChooserTargets(mOriginalTarget.getResolvedComponentName(), + mOriginalTarget.getResolveInfo().filter, mChooserTargetResult); + } catch (RemoteException e) { + Log.e(TAG, "Querying ChooserTargetService " + name + " failed.", e); + mChooserActivity.unbindService(this); + destroy(); + mChooserActivity.mServiceConnections.remove(this); + } } } @Override public void onServiceDisconnected(ComponentName name) { if (DEBUG) Log.d(TAG, "onServiceDisconnected: " + name); - unbindService(this); - mServiceConnections.remove(this); - if (mServiceConnections.isEmpty()) { - mChooserHandler.removeMessages(CHOOSER_TARGET_SERVICE_WATCHDOG_TIMEOUT); - sendVoiceChoicesIfNeeded(); + synchronized (mLock) { + if (mChooserActivity == null) { + Log.e(TAG, + "destroyed ChooserTargetServiceConnection got onServiceDisconnected"); + return; + } + + mChooserActivity.unbindService(this); + destroy(); + mChooserActivity.mServiceConnections.remove(this); + if (mChooserActivity.mServiceConnections.isEmpty()) { + mChooserActivity.mChooserHandler.removeMessages( + CHOOSER_TARGET_SERVICE_WATCHDOG_TIMEOUT); + mChooserActivity.sendVoiceChoicesIfNeeded(); + } + mConnectedComponent = null; + } + } + + public void destroy() { + synchronized (mLock) { + mChooserActivity = null; } } @Override public String toString() { - return mOriginalTarget.getResolveInfo().activityInfo.toString(); + return "ChooserTargetServiceConnection{service=" + + mConnectedComponent + ", activity=" + + mOriginalTarget.getResolveInfo().activityInfo.toString() + "}"; } } diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 7dd3bed079fc..ef9d1cebff57 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -234,7 +234,9 @@ public class ResolverActivity extends Activity { mResolverComparator = new ResolverComparator(this, getTargetIntent(), referrerPackage); - configureContentView(mIntents, initialIntents, rList, alwaysUseOption); + if (configureContentView(mIntents, initialIntents, rList, alwaysUseOption)) { + return; + } // Prevent the Resolver window from becoming the top fullscreen window and thus from taking // control of the system bars. @@ -794,6 +796,10 @@ public class ResolverActivity extends Activity { return false; } + boolean shouldAutoLaunchSingleChoice() { + return true; + } + void showAppDetails(ResolveInfo ri) { Intent in = new Intent().setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) .setData(Uri.fromParts("package", ri.activityInfo.packageName, null)) @@ -808,7 +814,10 @@ public class ResolverActivity extends Activity { launchedFromUid, filterLastUsed); } - void configureContentView(List<Intent> payloadIntents, Intent[] initialIntents, + /** + * Returns true if the activity is finishing and creation should halt + */ + boolean configureContentView(List<Intent> payloadIntents, Intent[] initialIntents, List<ResolveInfo> rList, boolean alwaysUseOption) { // The last argument of createAdapter is whether to do special handling // of the last used choice to highlight it in the list. We need to always @@ -828,7 +837,9 @@ public class ResolverActivity extends Activity { mAlwaysUseOption = alwaysUseOption; int count = mAdapter.getUnfilteredCount(); - if (count > 1 || (count == 1 && mAdapter.getOtherProfile() != null)) { + if ((!shouldAutoLaunchSingleChoice() && count > 0) + || count > 1 + || (count == 1 && mAdapter.getOtherProfile() != null)) { setContentView(layoutId); mAdapterView = (AbsListView) findViewById(R.id.resolver_list); onPrepareAdapterView(mAdapterView, mAdapter, alwaysUseOption); @@ -837,7 +848,7 @@ public class ResolverActivity extends Activity { mPackageMonitor.unregister(); mRegistered = false; finish(); - return; + return true; } else { setContentView(R.layout.resolver_list); @@ -847,6 +858,7 @@ public class ResolverActivity extends Activity { mAdapterView = (AbsListView) findViewById(R.id.resolver_list); mAdapterView.setVisibility(View.GONE); } + return false; } void onPrepareAdapterView(AbsListView adapterView, ResolveListAdapter adapter, @@ -884,6 +896,7 @@ public class ResolverActivity extends Activity { private final ResolveInfo mResolveInfo; private final CharSequence mDisplayLabel; private Drawable mDisplayIcon; + private Drawable mBadge; private final CharSequence mExtendedInfo; private final Intent mResolvedIntent; private final List<Intent> mSourceIntents = new ArrayList<>(); @@ -928,7 +941,25 @@ public class ResolverActivity extends Activity { } public Drawable getBadgeIcon() { - return null; + // We only expose a badge if we have extended info. + // The badge is a higher-priority disambiguation signal + // but we don't need one if we wouldn't show extended info at all. + if (TextUtils.isEmpty(getExtendedInfo())) { + return null; + } + + if (mBadge == null && mResolveInfo != null && mResolveInfo.activityInfo != null + && mResolveInfo.activityInfo.applicationInfo != null) { + if (mResolveInfo.activityInfo.icon == 0 || mResolveInfo.activityInfo.icon + == mResolveInfo.activityInfo.applicationInfo.icon) { + // Badging an icon with exactly the same icon is silly. + // If the activityInfo icon resid is 0 it will fall back + // to the application's icon, making it a match. + return null; + } + mBadge = mResolveInfo.activityInfo.applicationInfo.loadIcon(mPm); + } + return mBadge; } @Override @@ -1366,8 +1397,8 @@ public class ResolverActivity extends Activity { } else { mHasExtendedInfo = true; boolean usePkg = false; - CharSequence startApp = ro.getResolveInfoAt(0).activityInfo.applicationInfo - .loadLabel(mPm); + final ApplicationInfo ai = ro.getResolveInfoAt(0).activityInfo.applicationInfo; + final CharSequence startApp = ai.loadLabel(mPm); if (startApp == null) { usePkg = true; } diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java index 55493c3a9576..b6240e48a1fd 100644 --- a/core/java/com/android/internal/logging/MetricsLogger.java +++ b/core/java/com/android/internal/logging/MetricsLogger.java @@ -29,6 +29,23 @@ public class MetricsLogger implements MetricsConstants { // Temporary constants go here, to await migration to MetricsConstants. // next value is 239; public static final int ACTION_ASSIST_LONG_PRESS = 239; + public static final int FINGERPRINT_ENROLLING = 240; + public static final int FINGERPRINT_FIND_SENSOR = 241; + public static final int FINGERPRINT_ENROLL_FINISH = 242; + public static final int FINGERPRINT_ENROLL_INTRO = 243; + public static final int FINGERPRINT_ENROLL_ONBOARD = 244; + public static final int FINGERPRINT_ENROLL_SIDECAR = 245; + public static final int FINGERPRINT_ENROLLING_SETUP = 246; + public static final int FINGERPRINT_FIND_SENSOR_SETUP = 247; + public static final int FINGERPRINT_ENROLL_FINISH_SETUP = 248; + public static final int FINGERPRINT_ENROLL_INTRO_SETUP = 249; + public static final int FINGERPRINT_ENROLL_ONBOARD_SETUP = 250; + public static final int ACTION_FINGERPRINT_ENROLL = 251; + public static final int ACTION_FINGERPRINT_AUTH = 252; + public static final int ACTION_FINGERPRINT_DELETE = 253; + public static final int ACTION_FINGERPRINT_RENAME = 254; + public static final int ACTION_DOUBLE_TAP_POWER_CAMERA_GESTURE = 255; + public static final int ACTION_WIGGLE_CAMERA_GESTURE = 256; public static void visible(Context context, int category) throws IllegalArgumentException { if (Build.IS_DEBUGGABLE && category == VIEW_UNKNOWN) { diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 4ff786987028..8cf2dabdb549 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -105,7 +105,7 @@ public final class BatteryStatsImpl extends BatteryStats { private static final int MAGIC = 0xBA757475; // 'BATSTATS' // Current on-disk Parcel version - private static final int VERSION = 130 + (USE_OLD_HISTORY ? 1000 : 0); + private static final int VERSION = 132 + (USE_OLD_HISTORY ? 1000 : 0); // Maximum number of items we will record in the history. private static final int MAX_HISTORY_ITEMS = 2000; @@ -118,8 +118,6 @@ public final class BatteryStatsImpl extends BatteryStats { // in to one common name. private static final int MAX_WAKELOCKS_PER_UID = 100; - private static int sNumSpeedSteps; - private final JournaledFile mFile; public final AtomicFile mCheckinFile; public final AtomicFile mDailyFile; @@ -133,7 +131,7 @@ public final class BatteryStatsImpl extends BatteryStats { private final KernelWakelockStats mTmpWakelockStats = new KernelWakelockStats(); private final KernelUidCpuTimeReader mKernelUidCpuTimeReader = new KernelUidCpuTimeReader(); - private final KernelCpuSpeedReader mKernelCpuSpeedReader = new KernelCpuSpeedReader(); + private KernelCpuSpeedReader[] mKernelCpuSpeedReaders; public interface BatteryCallback { public void batteryNeedsCpuUpdate(); @@ -4411,7 +4409,7 @@ public final class BatteryStatsImpl extends BatteryStats { LongSamplingCounter mUserCpuTime = new LongSamplingCounter(mOnBatteryTimeBase); LongSamplingCounter mSystemCpuTime = new LongSamplingCounter(mOnBatteryTimeBase); LongSamplingCounter mCpuPower = new LongSamplingCounter(mOnBatteryTimeBase); - LongSamplingCounter[] mSpeedBins; + LongSamplingCounter[][] mCpuClusterSpeed; /** * The statistics we have collected for this uid's wake locks. @@ -4470,7 +4468,6 @@ public final class BatteryStatsImpl extends BatteryStats { mWifiMulticastTimer = new StopwatchTimer(Uid.this, WIFI_MULTICAST_ENABLED, mWifiMulticastTimers, mOnBatteryTimeBase); mProcessStateTimer = new StopwatchTimer[NUM_PROCESS_STATE]; - mSpeedBins = new LongSamplingCounter[getCpuSpeedSteps()]; } @Override @@ -5008,10 +5005,18 @@ public final class BatteryStatsImpl extends BatteryStats { } @Override - public long getTimeAtCpuSpeed(int step, int which) { - if (step >= 0 && step < mSpeedBins.length) { - if (mSpeedBins[step] != null) { - return mSpeedBins[step].getCountLocked(which); + public long getTimeAtCpuSpeed(int cluster, int step, int which) { + if (mCpuClusterSpeed != null) { + if (cluster >= 0 && cluster < mCpuClusterSpeed.length) { + final LongSamplingCounter[] cpuSpeeds = mCpuClusterSpeed[cluster]; + if (cpuSpeeds != null) { + if (step >= 0 && step < cpuSpeeds.length) { + final LongSamplingCounter c = cpuSpeeds[step]; + if (c != null) { + return c.getCountLocked(which); + } + } + } } } return 0; @@ -5128,10 +5133,16 @@ public final class BatteryStatsImpl extends BatteryStats { mUserCpuTime.reset(false); mSystemCpuTime.reset(false); mCpuPower.reset(false); - for (int i = 0; i < mSpeedBins.length; i++) { - LongSamplingCounter c = mSpeedBins[i]; - if (c != null) { - c.reset(false); + + if (mCpuClusterSpeed != null) { + for (LongSamplingCounter[] speeds : mCpuClusterSpeed) { + if (speeds != null) { + for (LongSamplingCounter speed : speeds) { + if (speed != null) { + speed.reset(false); + } + } + } } } @@ -5280,10 +5291,16 @@ public final class BatteryStatsImpl extends BatteryStats { mUserCpuTime.detach(); mSystemCpuTime.detach(); mCpuPower.detach(); - for (int i = 0; i < mSpeedBins.length; i++) { - LongSamplingCounter c = mSpeedBins[i]; - if (c != null) { - c.detach(); + + if (mCpuClusterSpeed != null) { + for (LongSamplingCounter[] cpuSpeeds : mCpuClusterSpeed) { + if (cpuSpeeds != null) { + for (LongSamplingCounter c : cpuSpeeds) { + if (c != null) { + c.detach(); + } + } + } } } } @@ -5461,15 +5478,27 @@ public final class BatteryStatsImpl extends BatteryStats { mSystemCpuTime.writeToParcel(out); mCpuPower.writeToParcel(out); - out.writeInt(mSpeedBins.length); - for (int i = 0; i < mSpeedBins.length; i++) { - LongSamplingCounter c = mSpeedBins[i]; - if (c != null) { - out.writeInt(1); - c.writeToParcel(out); - } else { - out.writeInt(0); + if (mCpuClusterSpeed != null) { + out.writeInt(1); + out.writeInt(mCpuClusterSpeed.length); + for (LongSamplingCounter[] cpuSpeeds : mCpuClusterSpeed) { + if (cpuSpeeds != null) { + out.writeInt(1); + out.writeInt(cpuSpeeds.length); + for (LongSamplingCounter c : cpuSpeeds) { + if (c != null) { + out.writeInt(1); + c.writeToParcel(out); + } else { + out.writeInt(0); + } + } + } else { + out.writeInt(0); + } } + } else { + out.writeInt(0); } } @@ -5653,13 +5682,32 @@ public final class BatteryStatsImpl extends BatteryStats { mSystemCpuTime = new LongSamplingCounter(mOnBatteryTimeBase, in); mCpuPower = new LongSamplingCounter(mOnBatteryTimeBase, in); - int bins = in.readInt(); - int steps = getCpuSpeedSteps(); - mSpeedBins = new LongSamplingCounter[bins >= steps ? bins : steps]; - for (int i = 0; i < bins; i++) { - if (in.readInt() != 0) { - mSpeedBins[i] = new LongSamplingCounter(mOnBatteryTimeBase, in); + if (in.readInt() != 0) { + int numCpuClusters = in.readInt(); + if (mPowerProfile != null && mPowerProfile.getNumCpuClusters() != numCpuClusters) { + throw new ParcelFormatException("Incompatible number of cpu clusters"); + } + + mCpuClusterSpeed = new LongSamplingCounter[numCpuClusters][]; + for (int cluster = 0; cluster < numCpuClusters; cluster++) { + if (in.readInt() != 0) { + int numSpeeds = in.readInt(); + if (mPowerProfile != null && + mPowerProfile.getNumSpeedStepsInCpuCluster(cluster) != numSpeeds) { + throw new ParcelFormatException("Incompatible number of cpu speeds"); + } + + final LongSamplingCounter[] cpuSpeeds = new LongSamplingCounter[numSpeeds]; + mCpuClusterSpeed[cluster] = cpuSpeeds; + for (int speed = 0; speed < numSpeeds; speed++) { + if (in.readInt() != 0) { + cpuSpeeds[speed] = new LongSamplingCounter(mOnBatteryTimeBase, in); + } + } + } } + } else { + mCpuClusterSpeed = null; } } @@ -6874,6 +6922,19 @@ public final class BatteryStatsImpl extends BatteryStats { public void setPowerProfile(PowerProfile profile) { synchronized (this) { mPowerProfile = profile; + + // We need to initialize the KernelCpuSpeedReaders to read from + // the first cpu of each core. Once we have the PowerProfile, we have access to this + // information. + final int numClusters = mPowerProfile.getNumCpuClusters(); + mKernelCpuSpeedReaders = new KernelCpuSpeedReader[numClusters]; + int firstCpuOfCluster = 0; + for (int i = 0; i < numClusters; i++) { + final int numSpeedSteps = mPowerProfile.getNumSpeedStepsInCpuCluster(i); + mKernelCpuSpeedReaders[i] = new KernelCpuSpeedReader(firstCpuOfCluster, + numSpeedSteps); + firstCpuOfCluster += mPowerProfile.getNumCoresInCpuCluster(i); + } } } @@ -6881,10 +6942,6 @@ public final class BatteryStatsImpl extends BatteryStats { mCallback = cb; } - public void setNumSpeedSteps(int steps) { - if (sNumSpeedSteps == 0) sNumSpeedSteps = steps; - } - public void setRadioScanningTimeout(long timeout) { if (mPhoneSignalScanningTimer != null) { mPhoneSignalScanningTimer.setTimeout(timeout); @@ -7987,6 +8044,10 @@ public final class BatteryStatsImpl extends BatteryStats { * wakelocks. If the screen is on, we just assign the actual cpu time an app used. */ public void updateCpuTimeLocked() { + if (mPowerProfile == null) { + return; + } + if (DEBUG_ENERGY_CPU) { Slog.d(TAG, "!Cpu updating!"); } @@ -7997,9 +8058,11 @@ public final class BatteryStatsImpl extends BatteryStats { // If no app is holding a wakelock, then the distribution is normal. final int wakelockWeight = 50; - // Read the time spent at various cpu frequencies. - final int cpuSpeedSteps = getCpuSpeedSteps(); - final long[] cpuSpeeds = mKernelCpuSpeedReader.readDelta(); + // Read the time spent for each cluster at various cpu frequencies. + final long[][] clusterSpeeds = new long[mKernelCpuSpeedReaders.length][]; + for (int cluster = 0; cluster < mKernelCpuSpeedReaders.length; cluster++) { + clusterSpeeds[cluster] = mKernelCpuSpeedReaders[cluster].readDelta(); + } int numWakelocks = 0; @@ -8072,11 +8135,28 @@ public final class BatteryStatsImpl extends BatteryStats { // Add the cpu speeds to this UID. These are used as a ratio // for computing the power this UID used. - for (int i = 0; i < cpuSpeedSteps; i++) { - if (u.mSpeedBins[i] == null) { - u.mSpeedBins[i] = new LongSamplingCounter(mOnBatteryTimeBase); + final int numClusters = mPowerProfile.getNumCpuClusters(); + if (u.mCpuClusterSpeed == null || u.mCpuClusterSpeed.length != + numClusters) { + u.mCpuClusterSpeed = new LongSamplingCounter[numClusters][]; + } + + for (int cluster = 0; cluster < clusterSpeeds.length; cluster++) { + final int speedsInCluster = mPowerProfile.getNumSpeedStepsInCpuCluster( + cluster); + if (u.mCpuClusterSpeed[cluster] == null || speedsInCluster != + u.mCpuClusterSpeed[cluster].length) { + u.mCpuClusterSpeed[cluster] = + new LongSamplingCounter[speedsInCluster]; + } + + final LongSamplingCounter[] cpuSpeeds = u.mCpuClusterSpeed[cluster]; + for (int speed = 0; speed < clusterSpeeds[cluster].length; speed++) { + if (cpuSpeeds[speed] == null) { + cpuSpeeds[speed] = new LongSamplingCounter(mOnBatteryTimeBase); + } + cpuSpeeds[speed].addCountLocked(clusterSpeeds[cluster][speed]); } - u.mSpeedBins[i].addCountLocked(cpuSpeeds[i]); } } }); @@ -8776,11 +8856,6 @@ public final class BatteryStatsImpl extends BatteryStats { } } - @Override - public int getCpuSpeedSteps() { - return sNumSpeedSteps; - } - /** * Retrieve the statistics object for a particular uid, creating if needed. */ @@ -9216,11 +9291,6 @@ public final class BatteryStatsImpl extends BatteryStats { } } - sNumSpeedSteps = in.readInt(); - if (sNumSpeedSteps < 0 || sNumSpeedSteps > 100) { - throw new ParcelFormatException("Bad speed steps in data: " + sNumSpeedSteps); - } - final int NU = in.readInt(); if (NU > 10000) { throw new ParcelFormatException("File corrupt: too many uids " + NU); @@ -9304,17 +9374,33 @@ public final class BatteryStatsImpl extends BatteryStats { u.mSystemCpuTime.readSummaryFromParcelLocked(in); u.mCpuPower.readSummaryFromParcelLocked(in); - int NSB = in.readInt(); - if (NSB > 100) { - throw new ParcelFormatException("File corrupt: too many speed bins " + NSB); - } + if (in.readInt() != 0) { + final int numClusters = in.readInt(); + if (mPowerProfile != null && mPowerProfile.getNumCpuClusters() != numClusters) { + throw new ParcelFormatException("Incompatible cpu cluster arrangement"); + } - u.mSpeedBins = new LongSamplingCounter[NSB]; - for (int i=0; i<NSB; i++) { - if (in.readInt() != 0) { - u.mSpeedBins[i] = new LongSamplingCounter(mOnBatteryTimeBase); - u.mSpeedBins[i].readSummaryFromParcelLocked(in); + u.mCpuClusterSpeed = new LongSamplingCounter[numClusters][]; + for (int cluster = 0; cluster < numClusters; cluster++) { + int NSB = in.readInt(); + if (mPowerProfile != null && + mPowerProfile.getNumSpeedStepsInCpuCluster(cluster) != NSB) { + throw new ParcelFormatException("File corrupt: too many speed bins " + NSB); + } + + if (in.readInt() != 0) { + u.mCpuClusterSpeed[cluster] = new LongSamplingCounter[NSB]; + for (int speed = 0; speed < NSB; speed++) { + if (in.readInt() != 0) { + u.mCpuClusterSpeed[cluster][speed] = new LongSamplingCounter( + mOnBatteryTimeBase); + u.mCpuClusterSpeed[cluster][speed].readSummaryFromParcelLocked(in); + } + } + } } + } else { + u.mCpuClusterSpeed = null; } int NW = in.readInt(); @@ -9531,7 +9617,6 @@ public final class BatteryStatsImpl extends BatteryStats { } } - out.writeInt(sNumSpeedSteps); final int NU = mUidStats.size(); out.writeInt(NU); for (int iu = 0; iu < NU; iu++) { @@ -9640,15 +9725,27 @@ public final class BatteryStatsImpl extends BatteryStats { u.mSystemCpuTime.writeSummaryFromParcelLocked(out); u.mCpuPower.writeSummaryFromParcelLocked(out); - out.writeInt(u.mSpeedBins.length); - for (int i = 0; i < u.mSpeedBins.length; i++) { - LongSamplingCounter speedBin = u.mSpeedBins[i]; - if (speedBin != null) { - out.writeInt(1); - speedBin.writeSummaryFromParcelLocked(out); - } else { - out.writeInt(0); + if (u.mCpuClusterSpeed != null) { + out.writeInt(1); + out.writeInt(u.mCpuClusterSpeed.length); + for (LongSamplingCounter[] cpuSpeeds : u.mCpuClusterSpeed) { + if (cpuSpeeds != null) { + out.writeInt(1); + out.writeInt(cpuSpeeds.length); + for (LongSamplingCounter c : cpuSpeeds) { + if (c != null) { + out.writeInt(1); + c.writeSummaryFromParcelLocked(out); + } else { + out.writeInt(0); + } + } + } else { + out.writeInt(0); + } } + } else { + out.writeInt(0); } final ArrayMap<String, Uid.Wakelock> wakeStats = u.mWakelockStats.getMap(); @@ -9897,8 +9994,6 @@ public final class BatteryStatsImpl extends BatteryStats { mFlashlightTurnedOnTimers.clear(); mCameraTurnedOnTimers.clear(); - sNumSpeedSteps = in.readInt(); - int numUids = in.readInt(); mUidStats.clear(); for (int i = 0; i < numUids; i++) { @@ -10037,8 +10132,6 @@ public final class BatteryStatsImpl extends BatteryStats { out.writeInt(0); } - out.writeInt(sNumSpeedSteps); - if (inclUids) { int size = mUidStats.size(); out.writeInt(size); diff --git a/core/java/com/android/internal/os/CpuPowerCalculator.java b/core/java/com/android/internal/os/CpuPowerCalculator.java index a3ef612077bf..8417856d16d5 100644 --- a/core/java/com/android/internal/os/CpuPowerCalculator.java +++ b/core/java/com/android/internal/os/CpuPowerCalculator.java @@ -22,55 +22,50 @@ import android.util.Log; public class CpuPowerCalculator extends PowerCalculator { private static final String TAG = "CpuPowerCalculator"; private static final boolean DEBUG = BatteryStatsHelper.DEBUG; - - private final double[] mPowerCpuNormal; - - /** - * Reusable array for calculations. - */ - private final long[] mSpeedStepTimes; + private final PowerProfile mProfile; public CpuPowerCalculator(PowerProfile profile) { - final int speedSteps = profile.getNumSpeedSteps(); - mPowerCpuNormal = new double[speedSteps]; - mSpeedStepTimes = new long[speedSteps]; - for (int p = 0; p < speedSteps; p++) { - mPowerCpuNormal[p] = profile.getAveragePower(PowerProfile.POWER_CPU_ACTIVE, p); - } + mProfile = profile; } @Override public void calculateApp(BatterySipper app, BatteryStats.Uid u, long rawRealtimeUs, long rawUptimeUs, int statsType) { - final int speedSteps = mSpeedStepTimes.length; - - long totalTimeAtSpeeds = 0; - for (int step = 0; step < speedSteps; step++) { - mSpeedStepTimes[step] = u.getTimeAtCpuSpeed(step, statsType); - totalTimeAtSpeeds += mSpeedStepTimes[step]; - } - totalTimeAtSpeeds = Math.max(totalTimeAtSpeeds, 1); app.cpuTimeMs = (u.getUserCpuTimeUs(statsType) + u.getSystemCpuTimeUs(statsType)) / 1000; - if (DEBUG && app.cpuTimeMs != 0) { - Log.d(TAG, "UID " + u.getUid() + ": CPU time " + app.cpuTimeMs + " ms"); + + // Aggregate total time spent on each cluster. + long totalTime = 0; + final int numClusters = mProfile.getNumCpuClusters(); + for (int cluster = 0; cluster < numClusters; cluster++) { + final int speedsForCluster = mProfile.getNumSpeedStepsInCpuCluster(cluster); + for (int speed = 0; speed < speedsForCluster; speed++) { + totalTime += u.getTimeAtCpuSpeed(cluster, speed, statsType); + } } + totalTime = Math.max(totalTime, 1); double cpuPowerMaMs = 0; - for (int step = 0; step < speedSteps; step++) { - final double ratio = (double) mSpeedStepTimes[step] / totalTimeAtSpeeds; - final double cpuSpeedStepPower = ratio * app.cpuTimeMs * mPowerCpuNormal[step]; - if (DEBUG && ratio != 0) { - Log.d(TAG, "UID " + u.getUid() + ": CPU step #" - + step + " ratio=" + BatteryStatsHelper.makemAh(ratio) + " power=" - + BatteryStatsHelper.makemAh(cpuSpeedStepPower / (60 * 60 * 1000))); + for (int cluster = 0; cluster < numClusters; cluster++) { + final int speedsForCluster = mProfile.getNumSpeedStepsInCpuCluster(cluster); + for (int speed = 0; speed < speedsForCluster; speed++) { + final double ratio = (double) u.getTimeAtCpuSpeed(cluster, speed, statsType) / + totalTime; + final double cpuSpeedStepPower = ratio * app.cpuTimeMs * + mProfile.getAveragePowerForCpu(cluster, speed); + if (DEBUG && ratio != 0) { + Log.d(TAG, "UID " + u.getUid() + ": CPU cluster #" + cluster + " step #" + + speed + " ratio=" + BatteryStatsHelper.makemAh(ratio) + " power=" + + BatteryStatsHelper.makemAh(cpuSpeedStepPower / (60 * 60 * 1000))); + } + cpuPowerMaMs += cpuSpeedStepPower; } - cpuPowerMaMs += cpuSpeedStepPower; } + app.cpuPowerMah = cpuPowerMaMs / (60 * 60 * 1000); - if (DEBUG && cpuPowerMaMs != 0) { - Log.d(TAG, "UID " + u.getUid() + ": cpu total power=" - + BatteryStatsHelper.makemAh(cpuPowerMaMs / (60 * 60 * 1000))); + if (DEBUG && (app.cpuTimeMs != 0 || app.cpuPowerMah != 0)) { + Log.d(TAG, "UID " + u.getUid() + ": CPU time=" + app.cpuTimeMs + " ms power=" + + BatteryStatsHelper.makemAh(app.cpuPowerMah)); } // Keep track of the package with highest drain. @@ -108,8 +103,5 @@ public class CpuPowerCalculator extends PowerCalculator { // Statistics may not have been gathered yet. app.cpuTimeMs = app.cpuFgTimeMs; } - - // Convert the CPU power to mAh - app.cpuPowerMah = cpuPowerMaMs / (60 * 60 * 1000); } } diff --git a/core/java/com/android/internal/os/KernelCpuSpeedReader.java b/core/java/com/android/internal/os/KernelCpuSpeedReader.java index c30df28c5c1f..5b776acf0cc8 100644 --- a/core/java/com/android/internal/os/KernelCpuSpeedReader.java +++ b/core/java/com/android/internal/os/KernelCpuSpeedReader.java @@ -24,8 +24,8 @@ import java.io.IOException; import java.util.Arrays; /** - * Reads CPU time spent at various frequencies and provides a delta from the last call to - * {@link #readDelta}. Each line in the proc file has the format: + * Reads CPU time of a specific core spent at various frequencies and provides a delta from the + * last call to {@link #readDelta}. Each line in the proc file has the format: * * freq time * @@ -33,12 +33,20 @@ import java.util.Arrays; */ public class KernelCpuSpeedReader { private static final String TAG = "KernelCpuSpeedReader"; - private static final String sProcFile = - "/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state"; - private static final int MAX_SPEEDS = 60; - private long[] mLastSpeedTimes = new long[MAX_SPEEDS]; - private long[] mDeltaSpeedTimes = new long[MAX_SPEEDS]; + private final String mProcFile; + private final long[] mLastSpeedTimes; + private final long[] mDeltaSpeedTimes; + + /** + * @param cpuNumber The cpu (cpu0, cpu1, etc) whose state to read. + */ + public KernelCpuSpeedReader(int cpuNumber, int numSpeedSteps) { + mProcFile = String.format("/sys/devices/system/cpu/cpu%d/cpufreq/stats/time_in_state", + cpuNumber); + mLastSpeedTimes = new long[numSpeedSteps]; + mDeltaSpeedTimes = new long[numSpeedSteps]; + } /** * The returned array is modified in subsequent calls to {@link #readDelta}. @@ -46,22 +54,28 @@ public class KernelCpuSpeedReader { * {@link #readDelta}. */ public long[] readDelta() { - try (BufferedReader reader = new BufferedReader(new FileReader(sProcFile))) { + try (BufferedReader reader = new BufferedReader(new FileReader(mProcFile))) { TextUtils.SimpleStringSplitter splitter = new TextUtils.SimpleStringSplitter(' '); String line; int speedIndex = 0; - while ((line = reader.readLine()) != null) { + while (speedIndex < mLastSpeedTimes.length && (line = reader.readLine()) != null) { splitter.setString(line); Long.parseLong(splitter.next()); // The proc file reports time in 1/100 sec, so convert to milliseconds. long time = Long.parseLong(splitter.next()) * 10; - mDeltaSpeedTimes[speedIndex] = time - mLastSpeedTimes[speedIndex]; + if (time < mLastSpeedTimes[speedIndex]) { + // The stats reset when the cpu hotplugged. That means that the time + // we read is offset from 0, so the time is the delta. + mDeltaSpeedTimes[speedIndex] = time; + } else { + mDeltaSpeedTimes[speedIndex] = time - mLastSpeedTimes[speedIndex]; + } mLastSpeedTimes[speedIndex] = time; speedIndex++; } } catch (IOException e) { - Slog.e(TAG, "Failed to read cpu-freq", e); + Slog.e(TAG, "Failed to read cpu-freq: " + e.getMessage()); Arrays.fill(mDeltaSpeedTimes, 0); } return mDeltaSpeedTimes; diff --git a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java index 0df78ed6a68d..5d3043cc8a02 100644 --- a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java +++ b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java @@ -137,7 +137,7 @@ public class KernelUidCpuTimeReader { mLastPowerMaUs.put(uid, powerMaUs); } } catch (IOException e) { - Slog.e(TAG, "Failed to read uid_cputime", e); + Slog.e(TAG, "Failed to read uid_cputime: " + e.getMessage()); } mLastTimeReadUs = nowUs; } diff --git a/core/java/com/android/internal/os/PowerProfile.java b/core/java/com/android/internal/os/PowerProfile.java index 4ede8ddab3bc..aaa9f734aba8 100644 --- a/core/java/com/android/internal/os/PowerProfile.java +++ b/core/java/com/android/internal/os/PowerProfile.java @@ -59,6 +59,7 @@ public class PowerProfile { /** * Power consumption when CPU is in power collapse mode. */ + @Deprecated public static final String POWER_CPU_ACTIVE = "cpu.active"; /** @@ -163,6 +164,7 @@ public class PowerProfile { */ public static final String POWER_CAMERA = "camera.avg"; + @Deprecated public static final String POWER_CPU_SPEEDS = "cpu.speeds"; /** @@ -191,6 +193,7 @@ public class PowerProfile { if (sPowerMap.size() == 0) { readPowerValuesFromXml(context); } + initCpuClusters(); } private void readPowerValuesFromXml(Context context) { @@ -249,7 +252,7 @@ public class PowerProfile { } // Now collect other config variables. - int[] configResIds = new int[] { + int[] configResIds = new int[]{ com.android.internal.R.integer.config_bluetooth_idle_cur_ma, com.android.internal.R.integer.config_bluetooth_rx_cur_ma, com.android.internal.R.integer.config_bluetooth_tx_cur_ma, @@ -260,7 +263,7 @@ public class PowerProfile { com.android.internal.R.integer.config_wifi_operating_voltage_mv, }; - String[] configResIdKeys = new String[] { + String[] configResIdKeys = new String[]{ POWER_BLUETOOTH_CONTROLLER_IDLE, POWER_BLUETOOTH_CONTROLLER_RX, POWER_BLUETOOTH_CONTROLLER_TX, @@ -279,6 +282,69 @@ public class PowerProfile { } } + private CpuClusterKey[] mCpuClusters; + + private static final String POWER_CPU_CLUSTER_CORE_COUNT = "cpu.clusters.cores"; + private static final String POWER_CPU_CLUSTER_SPEED_PREFIX = "cpu.speeds.cluster"; + private static final String POWER_CPU_CLUSTER_ACTIVE_PREFIX = "cpu.active.cluster"; + + @SuppressWarnings("deprecated") + private void initCpuClusters() { + // Figure out how many CPU clusters we're dealing with + final Object obj = sPowerMap.get(POWER_CPU_CLUSTER_CORE_COUNT); + if (obj == null || !(obj instanceof Double[])) { + // Default to single. + mCpuClusters = new CpuClusterKey[1]; + mCpuClusters[0] = new CpuClusterKey(POWER_CPU_SPEEDS, POWER_CPU_ACTIVE, 1); + + } else { + final Double[] array = (Double[]) obj; + mCpuClusters = new CpuClusterKey[array.length]; + for (int cluster = 0; cluster < array.length; cluster++) { + int numCpusInCluster = (int) Math.round(array[cluster]); + mCpuClusters[cluster] = new CpuClusterKey( + POWER_CPU_CLUSTER_SPEED_PREFIX + cluster, + POWER_CPU_CLUSTER_ACTIVE_PREFIX + cluster, + numCpusInCluster); + } + } + } + + public static class CpuClusterKey { + private final String timeKey; + private final String powerKey; + private final int numCpus; + + private CpuClusterKey(String timeKey, String powerKey, int numCpus) { + this.timeKey = timeKey; + this.powerKey = powerKey; + this.numCpus = numCpus; + } + } + + public int getNumCpuClusters() { + return mCpuClusters.length; + } + + public int getNumCoresInCpuCluster(int index) { + return mCpuClusters[index].numCpus; + } + + public int getNumSpeedStepsInCpuCluster(int index) { + Object value = sPowerMap.get(mCpuClusters[index].timeKey); + if (value != null && value instanceof Double[]) { + return ((Double[])value).length; + } + return 1; // Only one speed + } + + public double getAveragePowerForCpu(int cluster, int step) { + if (cluster >= 0 && cluster < mCpuClusters.length) { + return getAveragePower(mCpuClusters[cluster].powerKey, step); + } + return 0; + } + /** * Returns the average current in mA consumed by the subsystem, or the given * default value if the subsystem has no recorded value. @@ -344,16 +410,4 @@ public class PowerProfile { public double getBatteryCapacity() { return getAveragePower(POWER_BATTERY_CAPACITY); } - - /** - * Returns the number of speeds that the CPU can be run at. - * @return - */ - public int getNumSpeedSteps() { - Object value = sPowerMap.get(POWER_CPU_SPEEDS); - if (value != null && value instanceof Double[]) { - return ((Double[])value).length; - } - return 1; // Only one speed - } } diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index c1645c330445..ba67cf46b0b9 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -69,5 +69,12 @@ oneway interface IStatusBar void showAssistDisclosure(); void startAssist(in Bundle args); + + /** + * Notifies the status bar that a camera launch gesture has been detected. + * + * @param source the identifier for the gesture, see {@link StatusBarManager} + */ + void onCameraLaunchGestureDetected(int source); } diff --git a/core/java/com/android/internal/util/StateMachine.java b/core/java/com/android/internal/util/StateMachine.java index 916f19d53f67..447292c9f357 100644 --- a/core/java/com/android/internal/util/StateMachine.java +++ b/core/java/com/android/internal/util/StateMachine.java @@ -29,6 +29,7 @@ import java.io.StringWriter; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; +import java.util.Iterator; import java.util.HashMap; import java.util.Vector; @@ -1864,6 +1865,20 @@ public class StateMachine { } /** + * Removes a message from the deferred messages queue. + */ + protected final void removeDeferredMessages(int what) { + SmHandler smh = mSmHandler; + if (smh == null) return; + + Iterator<Message> iterator = smh.mDeferredMessages.iterator(); + while (iterator.hasNext()) { + Message msg = iterator.next(); + if (msg.what == what) iterator.remove(); + } + } + + /** * Validate that the message was sent by * {@link StateMachine#quit} or {@link StateMachine#quitNow}. * */ diff --git a/core/java/com/android/internal/view/FloatingActionMode.java b/core/java/com/android/internal/view/FloatingActionMode.java index 976166138417..44df0ce89133 100644 --- a/core/java/com/android/internal/view/FloatingActionMode.java +++ b/core/java/com/android/internal/view/FloatingActionMode.java @@ -76,6 +76,15 @@ public class FloatingActionMode extends ActionMode { mMenu = new MenuBuilder(context).setDefaultShowAsAction( MenuItem.SHOW_AS_ACTION_IF_ROOM); setType(ActionMode.TYPE_FLOATING); + mMenu.setCallback(new MenuBuilder.Callback() { + @Override + public void onMenuModeChange(MenuBuilder menu) {} + + @Override + public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { + return mCallback.onActionItemClicked(FloatingActionMode.this, item); + } + }); mContentRect = new Rect(); mContentRectOnScreen = new Rect(); mPreviousContentRectOnScreen = new Rect(); @@ -99,7 +108,7 @@ public class FloatingActionMode extends ActionMode { .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { - return mCallback.onActionItemClicked(FloatingActionMode.this, item); + return mMenu.performItemAction(item, 0); } }); mFloatingToolbarVisibilityHelper = new FloatingToolbarVisibilityHelper(mFloatingToolbar); diff --git a/core/java/com/android/internal/widget/ILockSettings.aidl b/core/java/com/android/internal/widget/ILockSettings.aidl index dfb7c50ab503..4e4552d33288 100644 --- a/core/java/com/android/internal/widget/ILockSettings.aidl +++ b/core/java/com/android/internal/widget/ILockSettings.aidl @@ -16,6 +16,7 @@ package com.android.internal.widget; +import android.app.trust.IStrongAuthTracker; import com.android.internal.widget.VerifyCredentialResponse; /** {@hide} */ @@ -35,4 +36,7 @@ interface ILockSettings { boolean checkVoldPassword(int userId); boolean havePattern(int userId); boolean havePassword(int userId); + void registerStrongAuthTracker(in IStrongAuthTracker tracker); + void unregisterStrongAuthTracker(in IStrongAuthTracker tracker); + void requireStrongAuth(int strongAuthReason, int userId); } diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 86d11be78b0a..60380fb36d20 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -16,18 +16,19 @@ package com.android.internal.widget; -import android.Manifest; +import android.annotation.IntDef; import android.app.ActivityManager; -import android.app.ActivityManagerNative; import android.app.admin.DevicePolicyManager; +import android.app.trust.IStrongAuthTracker; import android.app.trust.TrustManager; -import android.bluetooth.BluetoothClass; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; -import android.content.pm.PackageManager; import android.os.AsyncTask; +import android.os.Handler; import android.os.IBinder; +import android.os.Looper; +import android.os.Message; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemClock; @@ -38,9 +39,12 @@ import android.os.storage.StorageManager; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; +import android.util.SparseIntArray; import com.google.android.collect.Lists; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -228,7 +232,7 @@ public class LockPatternUtils { public void reportFailedPasswordAttempt(int userId) { getDevicePolicyManager().reportFailedPasswordAttempt(userId); getTrustManager().reportUnlockAttempt(false /* authenticated */, userId); - getTrustManager().reportRequireCredentialEntry(userId); + requireStrongAuth(StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL, userId); } public void reportSuccessfulPasswordAttempt(int userId) { @@ -1067,12 +1071,22 @@ public class LockPatternUtils { * enter a pattern. */ public long getLockoutAttemptDeadline(int userId) { - final long deadline = getLong(LOCKOUT_ATTEMPT_DEADLINE, 0L, userId); + long deadline = getLong(LOCKOUT_ATTEMPT_DEADLINE, 0L, userId); final long timeoutMs = getLong(LOCKOUT_ATTEMPT_TIMEOUT_MS, 0L, userId); final long now = SystemClock.elapsedRealtime(); - if (deadline < now || deadline > (now + timeoutMs)) { + if (deadline < now && deadline != 0) { + // timeout expired + setLong(LOCKOUT_ATTEMPT_DEADLINE, 0, userId); + setLong(LOCKOUT_ATTEMPT_TIMEOUT_MS, 0, userId); return 0L; } + + if (deadline > (now + timeoutMs)) { + // device was rebooted, set new deadline + deadline = now + timeoutMs; + setLong(LOCKOUT_ATTEMPT_DEADLINE, deadline, userId); + } + return deadline; } @@ -1163,10 +1177,32 @@ public class LockPatternUtils { } /** - * @see android.app.trust.TrustManager#reportRequireCredentialEntry(int) + * Disable trust until credentials have been entered for user {@param userId}. + * + * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission. + * + * @param userId either an explicit user id or {@link android.os.UserHandle#USER_ALL} */ public void requireCredentialEntry(int userId) { - getTrustManager().reportRequireCredentialEntry(userId); + requireStrongAuth(StrongAuthTracker.SOME_AUTH_REQUIRED_AFTER_USER_REQUEST, userId); + } + + /** + * Requests strong authentication for user {@param userId}. + * + * Requires the {@link android.Manifest.permission#ACCESS_KEYGUARD_SECURE_STORAGE} permission. + * + * @param strongAuthReason a combination of {@link StrongAuthTracker.StrongAuthFlags} indicating + * the reason for and the strength of the requested authentication. + * @param userId either an explicit user id or {@link android.os.UserHandle#USER_ALL} + */ + public void requireStrongAuth(@StrongAuthTracker.StrongAuthFlags int strongAuthReason, + int userId) { + try { + getLockSettings().requireStrongAuth(strongAuthReason, userId); + } catch (RemoteException e) { + Log.e(TAG, "Error while requesting strong auth: " + e); + } } private void onAfterChangingPassword(int userHandle) { @@ -1198,4 +1234,161 @@ public class LockPatternUtils { private boolean shouldEncryptWithCredentials(boolean defaultValue) { return isCredentialRequiredToDecrypt(defaultValue) && !isDoNotAskCredentialsOnBootSet(); } + + + public void registerStrongAuthTracker(final StrongAuthTracker strongAuthTracker) { + try { + getLockSettings().registerStrongAuthTracker(strongAuthTracker.mStub); + } catch (RemoteException e) { + throw new RuntimeException("Could not register StrongAuthTracker"); + } + } + + public void unregisterStrongAuthTracker(final StrongAuthTracker strongAuthTracker) { + try { + getLockSettings().unregisterStrongAuthTracker(strongAuthTracker.mStub); + } catch (RemoteException e) { + Log.e(TAG, "Could not unregister StrongAuthTracker", e); + } + } + + /** + * Tracks the global strong authentication state. + */ + public static class StrongAuthTracker { + + @IntDef(flag = true, + value = { STRONG_AUTH_NOT_REQUIRED, + STRONG_AUTH_REQUIRED_AFTER_BOOT, + STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW, + SOME_AUTH_REQUIRED_AFTER_USER_REQUEST}) + @Retention(RetentionPolicy.SOURCE) + public @interface StrongAuthFlags {} + + /** + * Strong authentication is not required. + */ + public static final int STRONG_AUTH_NOT_REQUIRED = 0x0; + + /** + * Strong authentication is required because the user has not authenticated since boot. + */ + public static final int STRONG_AUTH_REQUIRED_AFTER_BOOT = 0x1; + + /** + * Strong authentication is required because a device admin has requested it. + */ + public static final int STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW = 0x2; + + /** + * Some authentication is required because the user has temporarily disabled trust. + */ + public static final int SOME_AUTH_REQUIRED_AFTER_USER_REQUEST = 0x4; + + /** + * Strong authentication is required because the user has been locked out after too many + * attempts. + */ + public static final int STRONG_AUTH_REQUIRED_AFTER_LOCKOUT = 0x8; + + /** + * Some authentication is required because the user has entered a wrong credential. + */ + public static final int SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL = 0x10; + + public static final int DEFAULT = STRONG_AUTH_REQUIRED_AFTER_BOOT; + + private static final int ALLOWING_FINGERPRINT = STRONG_AUTH_NOT_REQUIRED + | SOME_AUTH_REQUIRED_AFTER_USER_REQUEST + | SOME_AUTH_REQUIRED_AFTER_WRONG_CREDENTIAL; + + private final SparseIntArray mStrongAuthRequiredForUser = new SparseIntArray(); + private final H mHandler; + + public StrongAuthTracker() { + this(Looper.myLooper()); + } + + /** + * @param looper the looper on whose thread calls to {@link #onStrongAuthRequiredChanged} + * will be scheduled. + */ + public StrongAuthTracker(Looper looper) { + mHandler = new H(looper); + } + + /** + * Returns {@link #STRONG_AUTH_NOT_REQUIRED} if strong authentication is not required, + * otherwise returns a combination of {@link StrongAuthFlags} indicating why strong + * authentication is required. + * + * @param userId the user for whom the state is queried. + */ + public @StrongAuthFlags int getStrongAuthForUser(int userId) { + return mStrongAuthRequiredForUser.get(userId, DEFAULT); + } + + /** + * @return true if unlocking with trust alone is allowed for {@param userId} by the current + * strong authentication requirements. + */ + public boolean isTrustAllowedForUser(int userId) { + return getStrongAuthForUser(userId) == STRONG_AUTH_NOT_REQUIRED; + } + + /** + * @return true if unlocking with fingerprint alone is allowed for {@param userId} by the + * current strong authentication requirements. + */ + public boolean isFingerprintAllowedForUser(int userId) { + return (getStrongAuthForUser(userId) & ~ALLOWING_FINGERPRINT) == 0; + } + + /** + * Called when the strong authentication requirements for {@param userId} changed. + */ + public void onStrongAuthRequiredChanged(int userId) { + } + + void handleStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, + int userId) { + + int oldValue = getStrongAuthForUser(userId); + if (strongAuthFlags != oldValue) { + if (strongAuthFlags == DEFAULT) { + mStrongAuthRequiredForUser.delete(userId); + } else { + mStrongAuthRequiredForUser.put(userId, strongAuthFlags); + } + onStrongAuthRequiredChanged(userId); + } + } + + + final IStrongAuthTracker.Stub mStub = new IStrongAuthTracker.Stub() { + @Override + public void onStrongAuthRequiredChanged(@StrongAuthFlags int strongAuthFlags, + int userId) { + mHandler.obtainMessage(H.MSG_ON_STRONG_AUTH_REQUIRED_CHANGED, + strongAuthFlags, userId).sendToTarget(); + } + }; + + private class H extends Handler { + static final int MSG_ON_STRONG_AUTH_REQUIRED_CHANGED = 1; + + public H(Looper looper) { + super(looper); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_ON_STRONG_AUTH_REQUIRED_CHANGED: + handleStrongAuthRequiredChanged(msg.arg1, msg.arg2); + break; + } + } + }; + } } diff --git a/core/java/com/android/internal/widget/SwipeDismissLayout.java b/core/java/com/android/internal/widget/SwipeDismissLayout.java index 35ed63b7eb1d..d88f4797cc1c 100644 --- a/core/java/com/android/internal/widget/SwipeDismissLayout.java +++ b/core/java/com/android/internal/widget/SwipeDismissLayout.java @@ -89,14 +89,21 @@ public class SwipeDismissLayout extends FrameLayout { } }; private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() { + private Runnable mRunnable = new Runnable() { + @Override + public void run() { + if (mDismissed) { + dismiss(); + } else { + cancel(); + } + resetMembers(); + } + }; + @Override public void onReceive(Context context, Intent intent) { - if (mDismissed) { - dismiss(); - } else { - cancel(); - } - resetMembers(); + post(mRunnable); } }; private IntentFilter mScreenOffFilter = new IntentFilter(Intent.ACTION_SCREEN_OFF); diff --git a/core/jni/Android.mk b/core/jni/Android.mk index 20fc998eb4e7..47b2f3b0f6ab 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -19,6 +19,10 @@ ifneq ($(ENABLE_CPUSETS),) LOCAL_CFLAGS += -DENABLE_CPUSETS endif +ifneq ($(ENABLE_SCHED_BOOST),) + LOCAL_CFLAGS += -DENABLE_SCHED_BOOST +endif + LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES -DEGL_EGLEXT_PROTOTYPES LOCAL_CFLAGS += -DU_USING_ICU_NAMESPACE=0 diff --git a/core/jni/android_hardware_SensorManager.cpp b/core/jni/android_hardware_SensorManager.cpp index b5617f2e824d..2e5cda069538 100644 --- a/core/jni/android_hardware_SensorManager.cpp +++ b/core/jni/android_hardware_SensorManager.cpp @@ -138,7 +138,7 @@ nativeCreate (JNIEnv *env, jclass clazz, jstring opPackageName) { ScopedUtfChars opPackageNameUtf(env, opPackageName); - return (jlong) new SensorManager(String16(opPackageNameUtf.c_str())); + return (jlong) &SensorManager::getInstanceForPackage(String16(opPackageNameUtf.c_str())); } static jboolean diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp index 7b7b0176ad5e..738a62ad5772 100644 --- a/core/jni/android_hardware_camera2_DngCreator.cpp +++ b/core/jni/android_hardware_camera2_DngCreator.cpp @@ -20,6 +20,7 @@ #include <string.h> #include <algorithm> #include <memory> +#include <vector> #include <utils/Log.h> #include <utils/Errors.h> @@ -754,48 +755,31 @@ uint32_t DirectStripSource::getIfd() const { // ---------------------------------------------------------------------------- /** - * Given a buffer crop rectangle relative to the pixel array size, and the pre-correction active - * array crop rectangle for the camera characteristics, set the default crop rectangle in the - * TiffWriter relative to the buffer crop rectangle origin. + * Calculate the default crop relative to the "active area" of the image sensor (this active area + * will always be the pre-correction active area rectangle), and set this. */ static status_t calculateAndSetCrop(JNIEnv* env, const CameraMetadata& characteristics, - uint32_t bufWidth, uint32_t bufHeight, sp<TiffWriter> writer) { + sp<TiffWriter> writer) { camera_metadata_ro_entry entry = characteristics.find(ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); - uint32_t xmin = static_cast<uint32_t>(entry.data.i32[0]); - uint32_t ymin = static_cast<uint32_t>(entry.data.i32[1]); uint32_t width = static_cast<uint32_t>(entry.data.i32[2]); uint32_t height = static_cast<uint32_t>(entry.data.i32[3]); const uint32_t margin = 8; // Default margin recommended by Adobe for interpolation. - // Crop based on pre-correction array for pixel array - uint32_t aLeft = xmin; - uint32_t aTop = ymin; - uint32_t aRight = xmin + width; - uint32_t aBottom = ymin + height; - - // 8 pixel border crop for pixel array dimens - uint32_t bLeft = margin; - uint32_t bTop = margin; - uint32_t bRight = bufWidth - margin; - uint32_t bBottom = bufHeight - margin; - - // Set the crop to be the intersection of the two rectangles - uint32_t defaultCropOrigin[] = {std::max(aLeft, bLeft), std::max(aTop, bTop)}; - uint32_t defaultCropSize[] = {std::min(aRight, bRight) - defaultCropOrigin[0], - std::min(aBottom, bBottom) - defaultCropOrigin[1]}; - - // If using buffers with pre-correction array dimens, switch to 8 pixel border crop - // relative to the pixel array dimens - if (bufWidth == width && bufHeight == height) { - defaultCropOrigin[0] = xmin + margin; - defaultCropOrigin[1] = ymin + margin; - defaultCropSize[0] = width - margin; - defaultCropSize[1] = height - margin; + if (width < margin * 2 || height < margin * 2) { + ALOGE("%s: Cannot calculate default crop for image, pre-correction active area is too" + "small: h=%" PRIu32 ", w=%" PRIu32, __FUNCTION__, height, width); + jniThrowException(env, "java/lang/IllegalStateException", + "Pre-correction active area is too small."); + return BAD_VALUE; } + uint32_t defaultCropOrigin[] = {margin, margin}; + uint32_t defaultCropSize[] = {width - defaultCropOrigin[0] - margin, + height - defaultCropOrigin[1] - margin}; + BAIL_IF_INVALID_R(writer->addEntry(TAG_DEFAULTCROPORIGIN, 2, defaultCropOrigin, TIFF_IFD_0), env, TAG_DEFAULTCROPORIGIN, writer); BAIL_IF_INVALID_R(writer->addEntry(TAG_DEFAULTCROPSIZE, 2, defaultCropSize, @@ -1564,17 +1548,24 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image { // Set dimensions - if (calculateAndSetCrop(env, characteristics, imageWidth, imageHeight, writer) != OK) { + if (calculateAndSetCrop(env, characteristics, writer) != OK) { return nullptr; } camera_metadata_entry entry = characteristics.find(ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); - BAIL_IF_EMPTY_RET_NULL_SP(entry, env, TAG_DEFAULTCROPSIZE, writer); + BAIL_IF_EMPTY_RET_NULL_SP(entry, env, TAG_ACTIVEAREA, writer); uint32_t xmin = static_cast<uint32_t>(entry.data.i32[0]); uint32_t ymin = static_cast<uint32_t>(entry.data.i32[1]); uint32_t width = static_cast<uint32_t>(entry.data.i32[2]); uint32_t height = static_cast<uint32_t>(entry.data.i32[3]); + // If we only have a buffer containing the pre-correction rectangle, ignore the offset + // relative to the pixel array. + if (imageWidth == width && imageHeight == height) { + xmin = 0; + ymin = 0; + } + uint32_t activeArea[] = {ymin, xmin, ymin + height, xmin + width}; BAIL_IF_INVALID_RET_NULL_SP(writer->addEntry(TAG_ACTIVEAREA, 4, activeArea, TIFF_IFD_0), env, TAG_ACTIVEAREA, writer); @@ -1659,8 +1650,7 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image lsmHeight = static_cast<uint32_t>(entry1.data.i32[1]); } - camera_metadata_entry entry2 = - results.find(ANDROID_STATISTICS_LENS_SHADING_MAP); + camera_metadata_entry entry2 = results.find(ANDROID_STATISTICS_LENS_SHADING_MAP); camera_metadata_entry entry = characteristics.find(ANDROID_SENSOR_INFO_PRE_CORRECTION_ACTIVE_ARRAY_SIZE); @@ -1685,6 +1675,45 @@ static sp<TiffWriter> DngCreator_setup(JNIEnv* env, jobject thiz, uint32_t image } } + + // Set up bad pixel correction list + camera_metadata_entry entry3 = characteristics.find(ANDROID_STATISTICS_HOT_PIXEL_MAP); + + if ((entry3.count % 2) != 0) { + ALOGE("%s: Hot pixel map contains odd number of values, cannot map to pairs!", + __FUNCTION__); + jniThrowRuntimeException(env, "failed to add hotpixel map."); + return nullptr; + } + + // Adjust the bad pixel coordinates to be relative to the origin of the active area DNG tag + std::vector<uint32_t> v; + for (size_t i = 0; i < entry3.count; i+=2) { + int32_t x = entry3.data.i32[i]; + int32_t y = entry3.data.i32[i + 1]; + x -= static_cast<int32_t>(xmin); + y -= static_cast<int32_t>(ymin); + if (x < 0 || y < 0 || static_cast<uint32_t>(x) >= width || + static_cast<uint32_t>(y) >= width) { + continue; + } + v.push_back(x); + v.push_back(y); + } + const uint32_t* badPixels = &v[0]; + uint32_t badPixelCount = v.size(); + + if (badPixelCount > 0) { + err = builder.addBadPixelListForMetadata(badPixels, badPixelCount, opcodeCfaLayout); + + if (err != OK) { + ALOGE("%s: Could not add hotpixel map.", __FUNCTION__); + jniThrowRuntimeException(env, "failed to add hotpixel map."); + return nullptr; + } + } + + size_t listSize = builder.getSize(); uint8_t opcodeListBuf[listSize]; err = builder.buildOpList(opcodeListBuf); diff --git a/core/jni/android_media_AudioErrors.h b/core/jni/android_media_AudioErrors.h index 49078300e647..c17a020f74fc 100644 --- a/core/jni/android_media_AudioErrors.h +++ b/core/jni/android_media_AudioErrors.h @@ -32,6 +32,7 @@ enum { AUDIO_JAVA_PERMISSION_DENIED = -4, AUDIO_JAVA_NO_INIT = -5, AUDIO_JAVA_DEAD_OBJECT = -6, + AUDIO_JAVA_WOULD_BLOCK = -7, }; static inline jint nativeToJavaStatus(status_t status) { @@ -46,6 +47,8 @@ static inline jint nativeToJavaStatus(status_t status) { return AUDIO_JAVA_PERMISSION_DENIED; case NO_INIT: return AUDIO_JAVA_NO_INIT; + case WOULD_BLOCK: + return AUDIO_JAVA_WOULD_BLOCK; case DEAD_OBJECT: return AUDIO_JAVA_DEAD_OBJECT; default: diff --git a/core/jni/android_view_SurfaceControl.cpp b/core/jni/android_view_SurfaceControl.cpp index 365c21e2df26..2e18cabcfe6f 100644 --- a/core/jni/android_view_SurfaceControl.cpp +++ b/core/jni/android_view_SurfaceControl.cpp @@ -64,6 +64,7 @@ static struct { jfieldID secure; jfieldID appVsyncOffsetNanos; jfieldID presentationDeadlineNanos; + jfieldID colorTransform; } gPhysicalDisplayInfoClassInfo; static struct { @@ -401,6 +402,8 @@ static jobjectArray nativeGetDisplayConfigs(JNIEnv* env, jclass clazz, info.appVsyncOffset); env->SetLongField(infoObj, gPhysicalDisplayInfoClassInfo.presentationDeadlineNanos, info.presentationDeadline); + env->SetIntField(infoObj, gPhysicalDisplayInfoClassInfo.colorTransform, + info.colorTransform); env->SetObjectArrayElement(configArray, static_cast<jsize>(c), infoObj); env->DeleteLocalRef(infoObj); } @@ -663,6 +666,8 @@ int register_android_view_SurfaceControl(JNIEnv* env) clazz, "appVsyncOffsetNanos", "J"); gPhysicalDisplayInfoClassInfo.presentationDeadlineNanos = GetFieldIDOrDie(env, clazz, "presentationDeadlineNanos", "J"); + gPhysicalDisplayInfoClassInfo.colorTransform = GetFieldIDOrDie(env, clazz, + "colorTransform", "I"); jclass rectClazz = FindClassOrDie(env, "android/graphics/Rect"); gRectClassInfo.bottom = GetFieldIDOrDie(env, rectClazz, "bottom", "I"); diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index ad1d21a692e9..bf34c3aac468 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -83,6 +83,14 @@ static void SigChldHandler(int /*signal_number*/) { pid_t pid; int status; + // It's necessary to save and restore the errno during this function. + // Since errno is stored per thread, changing it here modifies the errno + // on the thread on which this signal handler executes. If a signal occurs + // between a call and an errno check, it's possible to get the errno set + // here. + // See b/23572286 for extra information. + int saved_errno = errno; + while ((pid = waitpid(-1, &status, WNOHANG)) > 0) { // Log process-death status that we care about. In general it is // not safe to call LOG(...) from a signal handler because of @@ -118,6 +126,8 @@ static void SigChldHandler(int /*signal_number*/) { if (pid < 0 && errno != ECHILD) { ALOGW("Zygote SIGCHLD error in waitpid: %s", strerror(errno)); } + + errno = saved_errno; } // Configures the SIGCHLD handler for the zygote process. This is configured @@ -408,6 +418,27 @@ void SetThreadName(const char* thread_name) { } } +#ifdef ENABLE_SCHED_BOOST +static void SetForkLoad(bool boost) { + // set scheduler knob to boost forked processes + pid_t currentPid = getpid(); + // fits at most "/proc/XXXXXXX/sched_init_task_load\0" + char schedPath[35]; + snprintf(schedPath, sizeof(schedPath), "/proc/%u/sched_init_task_load", currentPid); + int schedBoostFile = open(schedPath, O_WRONLY); + if (schedBoostFile < 0) { + ALOGW("Unable to set zygote scheduler boost"); + return; + } + if (boost) { + write(schedBoostFile, "100\0", 4); + } else { + write(schedBoostFile, "0\0", 2); + } + close(schedBoostFile); +} +#endif + // Utility routine to fork zygote and specialize the child process. static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArray javaGids, jint debug_flags, jobjectArray javaRlimits, @@ -418,6 +449,10 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra jstring instructionSet, jstring dataDir) { SetSigChldHandler(); +#ifdef ENABLE_SCHED_BOOST + SetForkLoad(true); +#endif + pid_t pid = fork(); if (pid == 0) { @@ -558,6 +593,12 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra } } else if (pid > 0) { // the parent process + +#ifdef ENABLE_SCHED_BOOST + // unset scheduler knob + SetForkLoad(false); +#endif + } return pid; } @@ -570,10 +611,34 @@ static jint com_android_internal_os_Zygote_nativeForkAndSpecialize( jint debug_flags, jobjectArray rlimits, jint mount_external, jstring se_info, jstring se_name, jintArray fdsToClose, jstring instructionSet, jstring appDataDir) { - // Grant CAP_WAKE_ALARM to the Bluetooth process. jlong capabilities = 0; if (uid == AID_BLUETOOTH) { + // Grant CAP_WAKE_ALARM and CAP_BLOCK_SUSPEND to the Bluetooth process. capabilities |= (1LL << CAP_WAKE_ALARM); + capabilities |= (1LL << CAP_BLOCK_SUSPEND); + + // Add the Bluetooth process to the system group. + jsize length = env->GetArrayLength(reinterpret_cast<jarray>(gids)); + jintArray gids_with_system = env->NewIntArray(length + 1); + if (!gids_with_system) { + ALOGE("could not allocate java array for gids"); + RuntimeAbort(env); + } + + jint *gids_elements = env->GetIntArrayElements(gids, NULL); + jint *gids_with_system_elements = env->GetIntArrayElements(gids_with_system, NULL); + + if (!gids_elements || !gids_with_system_elements) { + ALOGE("could not allocate arrays for gids"); + RuntimeAbort(env); + } + + gids_with_system_elements[0] = AID_SYSTEM; + memcpy(&gids_with_system_elements[1], &gids_elements[0], length * sizeof(jint)); + + env->ReleaseIntArrayElements(gids, gids_elements, JNI_ABORT); + env->ReleaseIntArrayElements(gids_with_system, gids_with_system_elements, 0); + gids = gids_with_system; } return ForkAndSpecializeCommon(env, uid, gid, gids, debug_flags, diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 99e55bfb414e..0614d2c8c4df 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -65,6 +65,7 @@ <protected-broadcast android:name="android.intent.action.NEW_OUTGOING_CALL" /> <protected-broadcast android:name="android.intent.action.REBOOT" /> <protected-broadcast android:name="android.intent.action.DOCK_EVENT" /> + <protected-broadcast android:name="android.intent.action.THERMAL_EVENT" /> <protected-broadcast android:name="android.intent.action.MASTER_CLEAR_NOTIFICATION" /> <protected-broadcast android:name="android.intent.action.USER_ADDED" /> <protected-broadcast android:name="android.intent.action.USER_REMOVED" /> @@ -320,6 +321,8 @@ <protected-broadcast android:name="android.internal.policy.action.BURN_IN_PROTECTION" /> <protected-broadcast android:name="android.app.action.SYSTEM_UPDATE_POLICY_CHANGED" /> <protected-broadcast android:name="android.app.action.DEVICE_OWNER_CHANGED" /> + + <protected-broadcast android:name="android.net.action.SHOW_NETWORK_POLICY_NOTIFICATION" /> <!-- ====================================================================== --> <!-- RUNTIME PERMISSIONS --> <!-- ====================================================================== --> @@ -865,6 +868,11 @@ <permission android:name="android.permission.BIND_DIRECTORY_SEARCH" android:protectionLevel="signature|privileged" /> + <!-- @SystemApi @hide Allows an application to modify cell broadcasts through the content provider. + <p>Not for use by third-party applications. --> + <permission android:name="android.permission.MODIFY_CELL_BROADCASTS" + android:protectionLevel="signature|system" /> + <!-- =============================================================== --> <!-- Permissions for setting the device alarm --> <!-- =============================================================== --> @@ -1056,6 +1064,11 @@ <permission android:name="android.permission.CONNECTIVITY_INTERNAL" android:protectionLevel="signature|privileged" /> + <!-- Allows a system application to access hardware packet offload capabilities. + @hide --> + <permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD" + android:protectionLevel="signature|privileged" /> + <!-- @SystemApi @hide --> <permission android:name="android.permission.RECEIVE_DATA_ACTIVITY_CHANGE" @@ -1694,7 +1707,7 @@ android:protectionLevel="signature|privileged" /> <!-- Allows applications to change network connectivity state. - <p>Protection level: normal + <p>Protection level: signature --> <permission android:name="android.permission.CHANGE_NETWORK_STATE" android:description="@string/permdesc_changeNetworkState" @@ -2054,6 +2067,12 @@ <permission android:name="android.permission.SET_KEYBOARD_LAYOUT" android:protectionLevel="signature" /> + <!-- Allows an application to monitor changes in tablet mode. + <p>Not for use by third-party applications. + @hide --> + <permission android:name="android.permission.TABLET_MODE_LISTENER" + android:protectionLevel="signature" /> + <!-- Allows an application to request installing packages. Apps targeting APIs greater than 22 must hold this permission in order to use {@link android.content.Intent#ACTION_INSTALL_PACKAGE}. @@ -2149,6 +2168,13 @@ <permission android:name="android.permission.CONTROL_WIFI_DISPLAY" android:protectionLevel="signature" /> + <!-- Allows an application to control the color transforms applied to + displays system-wide. + <p>Not for use by third-party applications.</p> + @hide --> + <permission android:name="android.permission.CONFIGURE_DISPLAY_COLOR_TRANSFORM" + android:protectionLevel="signature" /> + <!-- @SystemApi Allows an application to control VPN. <p>Not for use by third-party applications.</p> @hide --> @@ -2505,6 +2531,10 @@ <permission android:name="android.permission.MANAGE_FINGERPRINT" android:protectionLevel="system|signature" /> + <!-- Allows an app to reset fingerprint attempt counter. Reserved for the system. @hide --> + <permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" + android:protectionLevel="signature" /> + <!-- Allows an application to control keyguard. Only allowed for system processes. @hide --> <permission android:name="android.permission.CONTROL_KEYGUARD" diff --git a/core/res/res/values-mcc204-mnc12/config.xml b/core/res/res/values-mcc204-mnc12/config.xml new file mode 100644 index 000000000000..80432d7f6184 --- /dev/null +++ b/core/res/res/values-mcc204-mnc12/config.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Don't use roaming icon for considered operators --> + <string-array translatable="false" name="config_operatorConsideredNonRoaming"> + <item>20408</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc219-mnc02/config.xml b/core/res/res/values-mcc219-mnc02/config.xml new file mode 100644 index 000000000000..2ac6ba6ddf83 --- /dev/null +++ b/core/res/res/values-mcc219-mnc02/config.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Don't use roaming icon for considered operators --> + <string-array translatable="false" name="config_operatorConsideredNonRoaming"> + <item>21901</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc240-mnc01/config.xml b/core/res/res/values-mcc240-mnc01/config.xml new file mode 100644 index 000000000000..7fb5c46309d0 --- /dev/null +++ b/core/res/res/values-mcc240-mnc01/config.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <!-- Do not set the system language as value of EF LI/EF PL --> + <bool name="config_use_sim_language_file">false</bool> + +</resources> diff --git a/core/res/res/values-mcc240-mnc05/config.xml b/core/res/res/values-mcc240-mnc05/config.xml new file mode 100644 index 000000000000..7fb5c46309d0 --- /dev/null +++ b/core/res/res/values-mcc240-mnc05/config.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2013, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<!-- These resources are around just to allow their values to be customized + for different hardware and product builds. --> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + + <!-- Do not set the system language as value of EF LI/EF PL --> + <bool name="config_use_sim_language_file">false</bool> + +</resources> diff --git a/core/res/res/values-mcc450-mnc06/config.xml b/core/res/res/values-mcc450-mnc06/config.xml index 63f9823914ed..819c2a5f1523 100644 --- a/core/res/res/values-mcc450-mnc06/config.xml +++ b/core/res/res/values-mcc450-mnc06/config.xml @@ -25,4 +25,7 @@ --> <integer name="config_mobile_mtu">1428</integer> + <!-- Do not set the system language as value of EF LI/EF PL --> + <bool name="config_use_sim_language_file">false</bool> + </resources> diff --git a/core/res/res/values-mcc450-mnc08/config.xml b/core/res/res/values-mcc450-mnc08/config.xml index 950c62bd1798..ca26ec1e810a 100644 --- a/core/res/res/values-mcc450-mnc08/config.xml +++ b/core/res/res/values-mcc450-mnc08/config.xml @@ -25,4 +25,7 @@ --> <integer name="config_mobile_mtu">1450</integer> + <!-- Do not set the system language as value of EF LI/EF PL --> + <bool name="config_use_sim_language_file">false</bool> + </resources> diff --git a/core/res/res/values-mcc730-mnc01/config.xml b/core/res/res/values-mcc730-mnc01/config.xml new file mode 100644 index 000000000000..22f402769e03 --- /dev/null +++ b/core/res/res/values-mcc730-mnc01/config.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Don't use roaming icon for considered operators --> + <string-array translatable="false" name="config_operatorConsideredNonRoaming"> + <item>73010</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc730-mnc07/config.xml b/core/res/res/values-mcc730-mnc07/config.xml new file mode 100644 index 000000000000..836ddf9ae143 --- /dev/null +++ b/core/res/res/values-mcc730-mnc07/config.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Don't use roaming icon for considered operators --> + <string-array translatable="false" name="config_operatorConsideredNonRoaming"> + <item>73002</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc730-mnc08/config.xml b/core/res/res/values-mcc730-mnc08/config.xml new file mode 100644 index 000000000000..836ddf9ae143 --- /dev/null +++ b/core/res/res/values-mcc730-mnc08/config.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Don't use roaming icon for considered operators --> + <string-array translatable="false" name="config_operatorConsideredNonRoaming"> + <item>73002</item> + </string-array> +</resources> diff --git a/core/res/res/values-mcc730-mnc10/config.xml b/core/res/res/values-mcc730-mnc10/config.xml new file mode 100644 index 000000000000..58b7d7813635 --- /dev/null +++ b/core/res/res/values-mcc730-mnc10/config.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** Copyright 2015, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You my obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <!-- Don't use roaming icon for considered operators --> + <string-array translatable="false" name="config_operatorConsideredNonRoaming"> + <item>73001</item> + </string-array> +</resources> diff --git a/core/res/res/values-watch/config.xml b/core/res/res/values-watch/config.xml index 90448023bbf8..919519e5832a 100644 --- a/core/res/res/values-watch/config.xml +++ b/core/res/res/values-watch/config.xml @@ -51,4 +51,10 @@ <!-- Scale factor threshold used by the screen magnifier to determine when to switch from panning to scaling the magnification viewport. --> <item name="config_screen_magnification_scaling_threshold" format="float" type="dimen">0.1</item> + + <!-- Do not show the message saying USB is connected in charging mode. --> + <bool name="config_usbChargingMessage">false</bool> + + <!-- Use a custom transition for RemoteViews. --> + <bool name="config_overrideRemoteViewsActivityTransition">true</bool> </resources> diff --git a/core/res/res/values-watch/strings.xml b/core/res/res/values-watch/strings.xml index 4ea2b52c5b4d..e5991fc111ea 100644 --- a/core/res/res/values-watch/strings.xml +++ b/core/res/res/values-watch/strings.xml @@ -23,4 +23,50 @@ <string name="android_upgrading_apk">App <xliff:g id="number" example="123">%1$d</xliff:g> of <xliff:g id="number" example="123">%2$d</xliff:g>.</string> + + <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. Override from base which says "Body Sensors". [CHAR_LIMIT=25] --> + <string name="permgrouplab_sensors">Sensors</string> + + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_contactswear">access your contacts</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_locationwear">access this watch\'s location</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_calendarwear">access your calendar</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_smswear">send and view SMS messages</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_storagewear">access photos, media, and files on your watch</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_microphonewear">record audio</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_camerawear">take pictures and record video</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_phonewear">make and manage phone calls</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permgrouplab_sensorswear">access sensor data about your vital signs</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_statusBarServicewear">be the status bar</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_bodySensorswear">access body sensors (like heart rate monitors)</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_accessFineLocationwear">access precise location (GPS and network-based)</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_accessCoarseLocationwear">access approximate location (network-based)</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_sim_communicationwear">send commands to the SIM</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_createNetworkSocketswear">have full network access</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_manageProfileAndDeviceOwnerswear">manage profile and device owners</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_changeWimaxStatewear">change WiMAX state</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_handoverStatuswear">receive Android Beam transfer status</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_route_media_outputwear">route media output</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_readInstallSessionswear">read install sessions</string> + <!-- Description of a permissions, listed so the user can choose whether they want to allow the application to do this. [CHAR_LIMIT=100] --> + <string name="permlab_requestInstallPackageswear">request install packages</string> </resources> diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 67abe8d2e1dc..2828d2175047 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -1806,10 +1806,15 @@ i <enum name="KEYCODE_NAVIGATE_NEXT" value="261" /> <enum name="KEYCODE_NAVIGATE_IN" value="262" /> <enum name="KEYCODE_NAVIGATE_OUT" value="263" /> + <enum name="KEYCODE_STEM_PRIMARY" value="264" /> + <enum name="KEYCODE_STEM_1" value="265" /> + <enum name="KEYCODE_STEM_2" value="266" /> + <enum name="KEYCODE_STEM_3" value="267" /> <enum name="KEYCODE_MEDIA_SKIP_FORWARD" value="272" /> <enum name="KEYCODE_MEDIA_SKIP_BACKWARD" value="273" /> <enum name="KEYCODE_MEDIA_STEP_FORWARD" value="274" /> <enum name="KEYCODE_MEDIA_STEP_BACKWARD" value="275" /> + <enum name="KEYCODE_SOFT_SLEEP" value="276" /> </attr> <!-- ***************************************************************** --> @@ -2139,6 +2144,13 @@ i (which is exiting the screen). The wallpaper remains static behind the animation. --> <attr name="wallpaperIntraCloseExitAnimation" format="reference" /> + + <!-- When opening a new activity from a RemoteViews, this is the + animation that is run on the next activity (which is entering the + screen). Requires config_overrideRemoteViewsActivityTransition to + be true. --> + <attr name="activityOpenRemoteViewsEnterAnimation" format="reference" /> + </declare-styleable> <!-- ============================= --> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index ae8cae87ee96..0859e5a03856 100755..100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -166,6 +166,21 @@ so that applications can still use their own mechanisms. --> <bool name="config_enableAutoPowerModes">false</bool> + <!-- The threshold angle for any motion detection in auto-power save modes. + In hundreths of a degree. --> + <integer name="config_autoPowerModeThresholdAngle">200</integer> + + <!-- The sensor id of an "any motion" sensor used in auto-power save modes. + 0 indicates this sensor is not available. --> + <integer name="config_autoPowerModeAnyMotionSensor">0</integer> + + <!-- If an any motion sensor is not available, prefer the wrist tilt detector over the + SMD. --> + <bool name="config_autoPowerModePreferWristTilt">false</bool> + + <!-- If a location should be pre-fetched when going into device idle. --> + <bool name="config_autoPowerModePrefetchLocation">true</bool> + <!-- The duration (in milliseconds) that the radio will scan for a signal when there's no network connection. If the scan doesn't timeout, use zero --> <integer name="config_radioScanningTimeout">0</integer> @@ -233,7 +248,7 @@ <integer name="config_networkTransitionTimeout">60000</integer> <!-- List of regexpressions describing the interface (if any) that represent tetherable - USB interfaces. If the device doesn't want to support tething over USB this should + USB interfaces. If the device doesn't want to support tethering over USB this should be empty. An example would be "usb.*" --> <string-array translatable="false" name="config_tether_usb_regexs"> </string-array> @@ -387,6 +402,13 @@ <!-- Boolean indicating autojoin will prefer 5GHz and choose 5GHz BSSIDs --> <bool translatable="true" name="config_wifi_enable_5GHz_preference">true</bool> + <!-- Boolean indicating whether or not to revert to default country code when cellular + radio is unable to find any MCC information to infer wifi country code from --> + <bool translatable="false" name="config_wifi_revert_country_code_on_cellular_loss">false</bool> + + <!-- Boolean indicating whether or not wifi firmware debugging is enabled --> + <bool translatable="false" name="config_wifi_enable_wifi_firmware_debugging">false</bool> + <!-- Integer specifying the basic autojoin parameters --> <integer translatable="false" name="config_wifi_framework_5GHz_preference_boost_threshold">-65</integer> <integer translatable="false" name="config_wifi_framework_5GHz_preference_boost_factor">5</integer> @@ -524,6 +546,9 @@ <!-- If this is true, the screen will come on when you unplug usb/power/whatever. --> <bool name="config_unplugTurnsOnScreen">false</bool> + <!-- If this is true, the message that USB is only being used for charging will be shown. --> + <bool name="config_usbChargingMessage">true</bool> + <!-- Set this true only if the device has separate attention and notification lights. --> <bool name="config_useAttentionLight">false</bool> @@ -619,6 +644,17 @@ <!-- rotation: 270 (rotate CW) --> <item>-25</item> <item>65</item> </integer-array> + <!-- Indicate the name of the window orientation sensor type if present. A + window orientation sensor produces values to be used in lieu of the + typical, accelerometer based sensor. It must only produce integral + values between 0 and 3, inclusive, with each one corresponding to a + given rotation: + 0: 0 degrees of rotation (natural) + 1: 90 degrees of rotation (rotate CCW) + 2: 180 degrees of rotation (reverse) + 3: 270 degrees of rotation (rotate CW) --> + <string name="config_orientationSensorType" translatable="false">@null</string> + <!-- Lid switch behavior --> <!-- The number of degrees to rotate the display when the keyboard is open. @@ -1725,6 +1761,28 @@ --> <bool name="config_enableWifiDisplay">false</bool> + <!-- The color transform values that correspond to each respective configuration mode for the + built-in display, or -1 if the mode is unsupported by the device. The possible + configuration modes are: + 1. Wide-gamut ("Vibrant") + 2. Adobe RGB ("Natural") + 3. sRGB ("Standard") + + For example, if a device had Wide-gamut as color transform mode 1, sRGB mode as color + transform mode 7, and did not support Adobe RGB at all this would look like: + + <integer-array name="config_colorTransforms"> + <item>1</item> + <item>-1</item> + <item>7</item> + </integer-array> + --> + <integer-array name="config_colorTransforms"> + <item>-1</item> + <item>-1</item> + <item>-1</item> + </integer-array> + <!-- When true use the linux /dev/input/event subsystem to detect the switch changes on the headphone/microphone jack. When false use the older uevent framework. --> <bool name="config_useDevInputEventForAudioJack">false</bool> @@ -2159,6 +2217,10 @@ <bool name="config_defaultWindowFeatureOptionsPanel">true</bool> <bool name="config_defaultWindowFeatureContextMenu">true</bool> + <!-- If true, the transition for a RemoteViews is read from a resource instead of using the + default scale-up transition. --> + <bool name="config_overrideRemoteViewsActivityTransition">false</bool> + <!-- This config is used to check if the carrier requires converting destination number before sending out a SMS. Formats for this configuration as below: @@ -2270,4 +2332,20 @@ <string-array name="config_cell_retries_per_error_code"> </string-array> + <!-- Set initial MaxRetry value for operators --> + <integer name="config_mdc_initial_max_retry">1</integer> + + <!-- The OEM specified sensor type for the gesture to launch the camear app. --> + <integer name="config_cameraLaunchGestureSensorType">-1</integer> + <!-- The OEM specified sensor string type for the gesture to launch camera app, this value + must match the value of config_cameraLaunchGestureSensorType in OEM's HAL --> + <string translatable="false" name="config_cameraLaunchGestureSensorStringType"></string> + + <!-- Allow the gesture to double tap the power button twice to start the camera while the device + is non-interactive. --> + <bool name="config_cameraDoubleTapPowerGestureEnabled">true</bool> + + <!-- Name of the component to handle network policy notifications. If present, + disables NetworkPolicyManagerService's presentation of data-usage notifications. --> + <string translatable="false" name="config_networkPolicyNotificationComponent"></string> </resources> diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index 09c1e6fa49b9..8635a4fac7bc 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -37,7 +37,7 @@ <!-- Height of the bottom navigation bar in portrait; often the same as @dimen/navigation_bar_height --> <dimen name="navigation_bar_height_landscape">48dp</dimen> <!-- Width of the navigation bar when it is placed vertically on the screen --> - <dimen name="navigation_bar_width">42dp</dimen> + <dimen name="navigation_bar_width">48dp</dimen> <!-- Height of notification icons in the status bar --> <dimen name="status_bar_icon_size">24dip</dimen> <!-- Size of the giant number (unread count) in the notifications --> diff --git a/core/res/res/values/styles_micro.xml b/core/res/res/values/styles_micro.xml index c6052fffd2e2..05835e7b41ab 100644 --- a/core/res/res/values/styles_micro.xml +++ b/core/res/res/values/styles_micro.xml @@ -18,6 +18,7 @@ <style name="Animation.Micro.Activity" parent="Animation.Material.Activity"> <item name="activityOpenEnterAnimation">@anim/slide_in_micro</item> + <item name="activityOpenRemoteViewsEnterAnimation">@anim/slide_in_micro</item> <item name="activityOpenExitAnimation">@null</item> <item name="activityCloseEnterAnimation">@null</item> <item name="activityCloseExitAnimation">@anim/slide_out_micro</item> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 262aa7640da3..6d8c38f4100a 100755..100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -253,6 +253,10 @@ <java-symbol type="bool" name="config_cellBroadcastAppLinks" /> <java-symbol type="bool" name="config_duplicate_port_omadm_wappush" /> <java-symbol type="bool" name="config_enableAutoPowerModes" /> + <java-symbol type="integer" name="config_autoPowerModeThresholdAngle" /> + <java-symbol type="integer" name="config_autoPowerModeAnyMotionSensor" /> + <java-symbol type="bool" name="config_autoPowerModePreferWristTilt" /> + <java-symbol type="bool" name="config_autoPowerModePrefetchLocation" /> <java-symbol type="bool" name="config_enable_emergency_call_while_sim_locked" /> <java-symbol type="bool" name="config_enable_puk_unlock_screen" /> <java-symbol type="bool" name="config_enableBurnInProtection" /> @@ -301,6 +305,8 @@ <java-symbol type="bool" name="config_wifi_only_link_same_credential_configurations" /> <java-symbol type="bool" name="config_wifi_enable_disconnection_debounce" /> <java-symbol type="bool" name="config_wifi_enable_5GHz_preference" /> + <java-symbol type="bool" name="config_wifi_revert_country_code_on_cellular_loss" /> + <java-symbol type="bool" name="config_wifi_enable_wifi_firmware_debugging" /> <java-symbol type="bool" name="config_supportMicNearUltrasound" /> <java-symbol type="bool" name="config_supportSpeakerNearUltrasound" /> <java-symbol type="integer" name="config_wifi_framework_5GHz_preference_boost_threshold" /> @@ -403,6 +409,7 @@ <java-symbol type="integer" name="config_volte_replacement_rat"/> <java-symbol type="integer" name="config_valid_wappush_index" /> <java-symbol type="integer" name="config_overrideHasPermanentMenuKey" /> + <java-symbol type="integer" name="config_mdc_initial_max_retry" /> <java-symbol type="bool" name="config_hasPermanentDpad" /> <java-symbol type="color" name="tab_indicator_text_v4" /> @@ -1128,6 +1135,7 @@ <java-symbol type="array" name="config_telephonyHardware" /> <java-symbol type="array" name="config_keySystemUuidMapping" /> <java-symbol type="array" name="config_gpsParameters" /> + <java-symbol type="array" name="config_colorTransforms" /> <java-symbol type="drawable" name="default_wallpaper" /> <java-symbol type="drawable" name="indicator_input_error" /> @@ -1547,6 +1555,7 @@ <java-symbol type="string" name="bugreport_title" /> <java-symbol type="string" name="bugreport_message" /> <java-symbol type="string" name="bugreport_status" /> + <java-symbol type="string" name="config_orientationSensorType" /> <java-symbol type="string" name="faceunlock_multiple_failures" /> <java-symbol type="string" name="global_action_power_off" /> <java-symbol type="string" name="global_actions_airplane_mode_off_status" /> @@ -1627,6 +1636,7 @@ <java-symbol type="bool" name="config_enableNetworkLocationOverlay" /> <java-symbol type="bool" name="config_sf_limitedAlpha" /> <java-symbol type="bool" name="config_unplugTurnsOnScreen" /> + <java-symbol type="bool" name="config_usbChargingMessage" /> <java-symbol type="bool" name="config_allowAutoBrightnessWhileDozing" /> <java-symbol type="bool" name="config_allowTheaterModeWakeFromUnplug" /> <java-symbol type="bool" name="config_allowTheaterModeWakeFromGesture" /> @@ -2193,6 +2203,7 @@ <java-symbol type="bool" name="config_sms_force_7bit_encoding" /> <java-symbol type="bool" name="config_defaultWindowFeatureOptionsPanel" /> <java-symbol type="bool" name="config_defaultWindowFeatureContextMenu" /> + <java-symbol type="bool" name="config_overrideRemoteViewsActivityTransition" /> <java-symbol type="layout" name="simple_account_item" /> <java-symbol type="array" name="config_sms_convert_destination_number_support" /> @@ -2318,6 +2329,11 @@ <java-symbol type="array" name="config_cell_retries_per_error_code" /> <java-symbol type="drawable" name="ic_more_items" /> - <java-symbol type="drawable" name="platlogo_m" /> + <!-- Gesture --> + <java-symbol type="integer" name="config_cameraLaunchGestureSensorType" /> + <java-symbol type="string" name="config_cameraLaunchGestureSensorStringType" /> + <java-symbol type="bool" name="config_cameraDoubleTapPowerGestureEnabled" /> + <java-symbol type="string" name="config_networkPolicyNotificationComponent" /> + <java-symbol type="drawable" name="platlogo_m" /> </resources> diff --git a/core/res/res/xml/power_profile.xml b/core/res/res/xml/power_profile.xml index 28d99d8784db..ddd0ca2a4bb2 100644 --- a/core/res/res/xml/power_profile.xml +++ b/core/res/res/xml/power_profile.xml @@ -47,17 +47,38 @@ <value>0.2</value> <!-- ~2mA --> <value>0.1</value> <!-- ~1mA --> </array> - <!-- Different CPU speeds as reported in - /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state --> - <array name="cpu.speeds"> + + <!-- A list of heterogeneous CPU clusters, where the value for each cluster represents the + number of CPU cores for that cluster. + + Ex: + <array name="cpu.clusters.cores"> + <value>4</value> // cluster 0 has cpu0, cpu1, cpu2, cpu3 + <value>2</value> // cluster 1 has cpu4, cpu5 + </array> --> + <array name="cpu.clusters.cores"> + <value>1</value> <!-- cluster 0 has cpu0 --> + </array> + + <!-- Different CPU speeds for cluster 0 as reported in + /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state. + + There must be one of these for each cluster, labeled: + cpu.speeds.cluster0, cpu.speeds.cluster1, etc... --> + <array name="cpu.speeds.cluster0"> <value>400000</value> <!-- 400 MHz CPU speed --> </array> - <!-- Current when CPU is idle --> - <item name="cpu.idle">0.1</item> - <!-- Current at each CPU speed, as per 'cpu.speeds' --> - <array name="cpu.active"> + + <!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'. + Like cpu.speeds.cluster0, there must be one of these present for + each heterogeneous CPU cluster. --> + <array name="cpu.active.cluster0"> <value>0.1</value> <!-- ~100mA --> </array> + + <!-- Current when CPU is idle --> + <item name="cpu.idle">0.1</item> + <!-- This is the battery capacity in mAh (measured at nominal voltage) --> <item name="battery.capacity">1000</item> diff --git a/core/tests/BTtraffic/Android.mk b/core/tests/BTtraffic/Android.mk new file mode 100644 index 000000000000..7d8352717a34 --- /dev/null +++ b/core/tests/BTtraffic/Android.mk @@ -0,0 +1,16 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-java-files-under, src) + +LOCAL_RESOURCE_DIR := \ + $(LOCAL_PATH)/res + +LOCAL_PACKAGE_NAME := bttraffic +LOCAL_CERTIFICATE := platform + +include $(BUILD_PACKAGE) + +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/core/tests/BTtraffic/AndroidManifest.xml b/core/tests/BTtraffic/AndroidManifest.xml new file mode 100644 index 000000000000..00d9707de2bf --- /dev/null +++ b/core/tests/BTtraffic/AndroidManifest.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.google.android.experimental.bttraffic" > + + <uses-permission android:name="android.permission.BLUETOOTH"/> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> + + <uses-sdk + android:minSdkVersion="18" + android:targetSdkVersion="18" + /> + <application + android:allowBackup="false" + android:label="@string/app_name" > + <service + android:name=".BTtraffic" + android:enabled="true" + android:exported="true" > + </service> + </application> + +</manifest> diff --git a/core/tests/BTtraffic/README b/core/tests/BTtraffic/README new file mode 100644 index 000000000000..430488f656f9 --- /dev/null +++ b/core/tests/BTtraffic/README @@ -0,0 +1,45 @@ +This is a tool to generate classic Bluetooth traffic with specified period and package size. +Together with the SvcMonitor, which will be called automatically in this android service, can be +used to measure the CPU usage from the Java layer Bluetooth code and the underlying system service +com.android.bluetooth. + +1. Server (Listener) - Client (Sender) model. Both run as an Android service. +2. No pairing needed. Communicate via unsecured RFcomm. Client establishes the connection by +providing the MAC addr of the server. +3. Bluetooth has to be turned on on both side. +4. Client can configure the traffic by specifying the transfer period and package size. +5. A separate monitor process will be automatically forked and will be reading from /proc file +system to calculate the cpu usage. The measurement is updated once per second. +6. The monitor process (com.google.android.experimental.svcmonitor/.ScvMonitor) can be run as an +independent service to measure cpu usage on any similarly configured tests (e.g. wifi, BLE). Refer +to SvcMonitor's README for usage and details. + +Usage: +To instal the test: +On both the server and client device, install the 2 apk: +$ adb install $OUT/system/app/bttraffic/bttraffic.apk +$ adb install $OUT/system/app/svcmonitor/svcmonitor.apk + +To start the service on the SERVER side: +$ adb shell am startservice -a start --ez ack true \ +com.google.android.experimental.bttraffic/.BTtraffic + +To start the service on the CLIENT side: +$ adb shell am startservice -a start \ +-e addr "F8:A9:D0:A8:74:8E" --ei size 1000 --ei period 15 \ +com.google.android.experimental.bttraffic/.BTtraffic + +To stop the test: +On either the server or client: +$ adb shell am startservice -a stop \ +com.google.android.experimental.bttraffic/.BTtraffic + +To look at the data: +$ adb logcat | grep bttraffic + +Options: +-e addr: MAC addr of the server, in uppercase letter. +--ei size: package size, unit: byte; default: 1024, MAX: 20MB +--ei period: system sleep time between sending each package, unit: ms, default: 5000 + ** if -1 is provided, client will only send the package once. +--ez ack: whether acknowledge is required (true/false) diff --git a/core/tests/BTtraffic/res/values/strings.xml b/core/tests/BTtraffic/res/values/strings.xml new file mode 100644 index 000000000000..e70276e03647 --- /dev/null +++ b/core/tests/BTtraffic/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">Bluetooth Test</string> +</resources> diff --git a/core/tests/BTtraffic/src/com/android/google/experimental/bttraffic/BTtraffic.java b/core/tests/BTtraffic/src/com/android/google/experimental/bttraffic/BTtraffic.java new file mode 100644 index 000000000000..286c0aa2915f --- /dev/null +++ b/core/tests/BTtraffic/src/com/android/google/experimental/bttraffic/BTtraffic.java @@ -0,0 +1,328 @@ +package com.google.android.experimental.bttraffic; + +import android.app.Service; +import android.bluetooth.BluetoothAdapter; +import android.bluetooth.BluetoothDevice; +import android.bluetooth.BluetoothServerSocket; +import android.bluetooth.BluetoothSocket; +import android.content.Intent; +import android.os.Bundle; +import android.os.IBinder; +import android.os.SystemClock; +import android.util.Log; + +import java.io.Closeable; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.lang.Exception; +import java.lang.Runtime; +import java.lang.RuntimeException; +import java.lang.Process; +import java.nio.ByteBuffer; +import java.util.Random; +import java.util.Set; +import java.util.UUID; + +public class BTtraffic extends Service { + public static final String TAG = "bttraffic"; + static final String SERVICE_NAME = "bttraffic"; + static final String SYS_SERVICE_NAME = "com.android.bluetooth"; + static final UUID SERVICE_UUID = UUID.fromString("5e8945b0-1234-5432-a5e2-0800200c9a67"); + volatile Thread mWorkerThread; + volatile boolean isShuttingDown = false; + volatile boolean isServer = false; + + public BTtraffic() {} + + static void safeClose(Closeable closeable) { + try { + closeable.close(); + } catch (IOException e) { + Log.d(TAG, "Unable to close resource.\n"); + } + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (intent == null) { + stopSelf(); + return 0; + } + if ("stop".equals(intent.getAction())) { + stopService(); + } else if ("start".equals(intent.getAction())) { + startWorker(intent); + } else { + Log.d(TAG, "unknown action: + " + intent.getAction()); + } + return 0; + } + + private void startWorker(Intent intent) { + if (mWorkerThread != null) { + Log.d(TAG, "worker thread already active"); + return; + } + isShuttingDown = false; + String remoteAddr = intent.getStringExtra("addr"); + Log.d(TAG, "startWorker: addr=" + remoteAddr); + Runnable worker = + remoteAddr == null + ? new ListenerRunnable(this, intent) + : new SenderRunnable(this, remoteAddr, intent); + isServer = remoteAddr == null ? true: false; + mWorkerThread = new Thread(worker, "BTtrafficWorker"); + try { + startMonitor(); + Log.d(TAG, "Monitor service started"); + mWorkerThread.start(); + Log.d(TAG, "Worker thread started"); + } catch (Exception e) { + Log.d(TAG, "Failed to start service", e); + } + } + + private void startMonitor() + throws Exception { + if (isServer) { + Log.d(TAG, "Start monitor on server"); + String[] startmonitorCmd = { + "/system/bin/am", + "startservice", + "-a", "start", + "-e", "java", SERVICE_NAME, + "-e", "hal", SYS_SERVICE_NAME, + "com.google.android.experimental.svcmonitor/.SvcMonitor" + }; + Process ps = new ProcessBuilder() + .command(startmonitorCmd) + .redirectErrorStream(true) + .start(); + } else { + Log.d(TAG, "No need to start SvcMonitor on client"); + } + } + + private void stopMonitor() + throws Exception { + if (isServer) { + Log.d(TAG, "StopMonitor on server"); + String[] stopmonitorCmd = { + "/system/bin/am", + "startservice", + "-a", "stop", + "com.google.android.experimental.svcmonitor/.SvcMonitor" + }; + Process ps = new ProcessBuilder() + .command(stopmonitorCmd) + .redirectErrorStream(true) + .start(); + } else { + Log.d(TAG, "No need to stop Svcmonitor on client"); + } + } + + public void stopService() { + if (mWorkerThread == null) { + Log.d(TAG, "no active thread"); + return; + } + + isShuttingDown = true; + + try { + stopMonitor(); + } catch (Exception e) { + Log.d(TAG, "Unable to stop SvcMonitor!", e); + } + + if (Thread.currentThread() != mWorkerThread) { + mWorkerThread.interrupt(); + Log.d(TAG, "Interrupting thread"); + try { + mWorkerThread.join(); + } catch (InterruptedException e) { + Log.d(TAG, "Unable to join thread!"); + } + } + + mWorkerThread = null; + stopSelf(); + Log.d(TAG, "Service stopped"); + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + @Override + public IBinder onBind(Intent intent) { + throw new UnsupportedOperationException("Not yet implemented"); + } + + public static class ListenerRunnable implements Runnable { + private final BTtraffic bttraffic; + private final boolean sendAck; + private Intent intent; + private final int maxbuffersize = 20 * 1024 * 1024; + + public ListenerRunnable(BTtraffic bttraffic, Intent intent) { + this.bttraffic = bttraffic; + this.sendAck = intent.getBooleanExtra("ack", true); + this.intent = intent; + } + + @Override + public void run() { + BluetoothServerSocket serverSocket; + + try { + Log.d(TAG, "getting server socket"); + serverSocket = BluetoothAdapter.getDefaultAdapter() + .listenUsingInsecureRfcommWithServiceRecord( + SERVICE_NAME, SERVICE_UUID); + } catch (IOException e) { + Log.d(TAG, "error creating server socket, stopping thread"); + bttraffic.stopService(); + return; + } + + Log.d(TAG, "got server socket, starting accept loop"); + BluetoothSocket socket = null; + try { + Log.d(TAG, "accepting"); + socket = serverSocket.accept(); + + if (!Thread.interrupted()) { + Log.d(TAG, "accepted, listening"); + doListening(socket.getInputStream(), socket.getOutputStream()); + Log.d(TAG, "listen finished"); + } + } catch (IOException e) { + Log.d(TAG, "error while accepting or listening", e); + } finally { + Log.d(TAG, "Linster interruped"); + Log.d(TAG, "closing socket and stopping service"); + safeClose(serverSocket); + safeClose(socket); + if (!bttraffic.isShuttingDown) + bttraffic.stopService(); + } + + } + + private void doListening(InputStream inputStream, OutputStream outputStream) + throws IOException { + ByteBuffer byteBuffer = ByteBuffer.allocate(maxbuffersize); + + while (!Thread.interrupted()) { + readBytesIntoBuffer(inputStream, byteBuffer, 4); + byteBuffer.flip(); + int length = byteBuffer.getInt(); + if (Thread.interrupted()) + break; + readBytesIntoBuffer(inputStream, byteBuffer, length); + + if (sendAck) + outputStream.write(0x55); + } + } + + void readBytesIntoBuffer(InputStream inputStream, ByteBuffer byteBuffer, int numToRead) + throws IOException { + byteBuffer.clear(); + while (true) { + int position = byteBuffer.position(); + int remaining = numToRead - position; + if (remaining == 0) { + break; + } + int count = inputStream.read(byteBuffer.array(), position, remaining); + if (count < 0) { + throw new IOException("read the EOF"); + } + byteBuffer.position(position + count); + } + } + } + + public static class SenderRunnable implements Runnable { + private final BTtraffic bttraffic; + private final String remoteAddr; + private final int pkgsize, period; + private final int defaultpkgsize = 1024; + private final int defaultperiod = 5000; + private static ByteBuffer lengthBuffer = ByteBuffer.allocate(4); + + public SenderRunnable(BTtraffic bttraffic, String remoteAddr, Intent intent) { + this.bttraffic = bttraffic; + this.remoteAddr = remoteAddr; + this.pkgsize = intent.getIntExtra("size", defaultpkgsize); + this.period = intent.getIntExtra("period", defaultperiod); + } + + @Override + public void run() { + BluetoothDevice device = null; + try { + device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(remoteAddr); + } catch (IllegalArgumentException e) { + Log.d(TAG, "Invalid BT MAC address!\n"); + } + if (device == null) { + Log.d(TAG, "can't find matching device, stopping thread and service"); + bttraffic.stopService(); + return; + } + + BluetoothSocket socket = null; + try { + Log.d(TAG, "connecting to device with MAC addr: " + remoteAddr); + socket = device.createInsecureRfcommSocketToServiceRecord(SERVICE_UUID); + socket.connect(); + Log.d(TAG, "connected, starting to send"); + doSending(socket.getOutputStream()); + Log.d(TAG, "send stopped, stopping service"); + } catch (Exception e) { + Log.d(TAG, "error while sending", e); + } finally { + Log.d(TAG, "finishing, closing thread and service"); + safeClose(socket); + if (!bttraffic.isShuttingDown) + bttraffic.stopService(); + } + } + + private void doSending(OutputStream outputStream) throws IOException { + Log.w(TAG, "doSending"); + try { + Random random = new Random(System.currentTimeMillis()); + + byte[] bytes = new byte[pkgsize]; + random.nextBytes(bytes); + while (!Thread.interrupted()) { + writeBytes(outputStream, bytes.length); + outputStream.write(bytes, 0, bytes.length); + if (period < 0) + break; + if (period == 0) + continue; + + SystemClock.sleep(period); + } + Log.d(TAG, "Sender interrupted"); + } catch (IOException e) { + Log.d(TAG, "doSending got error", e); + } + } + + private static void writeBytes(OutputStream outputStream, int value) throws IOException { + lengthBuffer.putInt(value); + lengthBuffer.flip(); + outputStream.write(lengthBuffer.array(), lengthBuffer.position(), lengthBuffer.limit()); + } + } + +} diff --git a/core/tests/SvcMonitor/Android.mk b/core/tests/SvcMonitor/Android.mk new file mode 100644 index 000000000000..2b8045506f02 --- /dev/null +++ b/core/tests/SvcMonitor/Android.mk @@ -0,0 +1,16 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := optional + +LOCAL_SRC_FILES := $(call all-java-files-under, src) + +LOCAL_RESOURCE_DIR := \ + $(LOCAL_PATH)/res + +LOCAL_PACKAGE_NAME := svcmonitor +LOCAL_CERTIFICATE := platform + +include $(BUILD_PACKAGE) + +include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/core/tests/SvcMonitor/AndroidManifest.xml b/core/tests/SvcMonitor/AndroidManifest.xml new file mode 100644 index 000000000000..de5a9bdaed41 --- /dev/null +++ b/core/tests/SvcMonitor/AndroidManifest.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="com.google.android.experimental.svcmonitor" > + + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> + + <uses-sdk + android:minSdkVersion="18" + android:targetSdkVersion="18" + /> + <application + android:allowBackup="false" + android:label="@string/app_name" > + <service + android:name=".SvcMonitor" + android:enabled="true" + android:exported="true" > + </service> + </application> + +</manifest> diff --git a/core/tests/SvcMonitor/README b/core/tests/SvcMonitor/README new file mode 100644 index 000000000000..13a4380589b4 --- /dev/null +++ b/core/tests/SvcMonitor/README @@ -0,0 +1,27 @@ +This Android service measures CPU usage of a program and an underlying system service it relies on. +An example of this would be an android app XYZ communicates to some other device via Bluetooth. The +SvcMonitor service can monitor the CPU usage of XYZ and com.android.bluetooth. + +Usage: + +To start the service: +$ adb shell am startservice -a start \ +-e java XYZ -e hal com.android.bluetooth \ +com.google.android.experimental.svcmonitor/.SvcMonitor + +To stop the service: +$ adb shell am startservice -a stop \ +com.google.android.experimental.svcmonitor/.SvcMonitor + +To stop the service config: +$ adb shell am startservice -a change \ +-e java NewName -e hal NewService \ +com.google.android.experimental.svcmonitor/.SvcMonitor + +To monitor the data: +$ adb logcat | grep XYZ + +Options: +-e java NameOfProgram: any running process’s name. +-e hal NameOfSysService: name of the system service the previous process relies on. +--ei period: period between each measurement (frequency). Unit: ms, Default:1000, Min: 100 diff --git a/core/tests/SvcMonitor/res/values/strings.xml b/core/tests/SvcMonitor/res/values/strings.xml new file mode 100644 index 000000000000..e70276e03647 --- /dev/null +++ b/core/tests/SvcMonitor/res/values/strings.xml @@ -0,0 +1,3 @@ +<resources> + <string name="app_name">Bluetooth Test</string> +</resources> diff --git a/core/tests/SvcMonitor/src/com/android/google/experimental/svcmoniter/SvcMonitor.java b/core/tests/SvcMonitor/src/com/android/google/experimental/svcmoniter/SvcMonitor.java new file mode 100644 index 000000000000..a451445530cd --- /dev/null +++ b/core/tests/SvcMonitor/src/com/android/google/experimental/svcmoniter/SvcMonitor.java @@ -0,0 +1,209 @@ +package com.google.android.experimental.svcmonitor; + +import android.app.Service; +import android.content.Intent; +import android.os.IBinder; +import android.os.SystemClock; +import android.util.Log; + +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.lang.Runnable; +import java.lang.Thread; +import java.util.Set; + +public class SvcMonitor extends Service { + public static final String TAG = "svcmonitor"; + String javaProc, halProc; + volatile Thread tMonitor; + int period; + + public SvcMonitor() {}; + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (intent == null) { + stopSelf(); + return 0; + } + Log.d(TAG, "Starting SvcMonitor"); + if ("stop".equals(intent.getAction())) { + stopService(); + } else if ("start".equals(intent.getAction())) { + startMonitor(intent); + } else if ("change".equals(intent.getAction())) { + changeConfig(intent); + } else { + Log.d(TAG, "unknown action: + " + intent.getAction()); + } + return 0; + } + + private void changeConfig(Intent intent) { + if (tMonitor == null) { + Log.d(TAG, "Service not active. Start service first"); + return; + } + stopThread(); + startMonitor(intent); + } + + private void startMonitor(Intent intent) { + if (tMonitor != null) { + Log.d(TAG, "thread already active"); + return; + } + javaProc = intent.getStringExtra("java"); + halProc = intent.getStringExtra("hal"); + period = intent.getIntExtra("period", 1000); + if (javaProc == null || halProc == null || period < 100) { + Log.d(TAG, "Failed starting monitor, invalid arguments."); + stopSelf(); + return; + } + Runnable monitor = new MonitorRunnable(this); + tMonitor = new Thread(monitor); + tMonitor.start(); + } + + private void stopService() { + stopThread(); + stopSelf(); + Log.d(TAG, "SvcMonitor stopped"); + } + + private void stopThread() { + if (tMonitor == null) { + Log.d(TAG, "no active thread"); + return; + } + Log.d(TAG, "interrupting monitor thread"); + tMonitor.interrupt(); + try { + tMonitor.join(); + } catch (InterruptedException e) { + Log.d(TAG, "Unable to finish monitor thread"); + } + tMonitor = null; + } + + @Override + public void onDestroy() { + super.onDestroy(); + } + + @Override + public IBinder onBind(Intent intent) { + throw new UnsupportedOperationException("Not yet implemented"); + } + + public static class MonitorRunnable implements Runnable { + long java_time_old, hal_time_old, cpu_time_old = -1; + String javaPID, halPID; + SvcMonitor svcmonitor; + static String javaProcTAG; + int period; + + public MonitorRunnable(SvcMonitor svcmonitor) { + this.svcmonitor = svcmonitor; + this.period = svcmonitor.period; + javaPID = getPIDof(svcmonitor.javaProc); + halPID = getPIDof(svcmonitor.halProc); + java_time_old = getPsTime(javaPID); + hal_time_old = getPsTime(halPID); + cpu_time_old = getPsTime(""); + javaProcTAG = String.valueOf(svcmonitor.javaProc.toCharArray()); + } + + @Override + public void run() { + if (halPID.isEmpty() || javaPID.isEmpty()) { + Log.d(javaProcTAG, "No such process: " + + (halPID.isEmpty() ? svcmonitor.halProc : svcmonitor.javaProc)); + return; + } + while (!Thread.interrupted()) { + calculateUsage(); + SystemClock.sleep(period); + } + Log.d(TAG, "Stopping monitor thread"); + } + + private void calculateUsage() { + long java_time = getPsTime(javaPID); + long hal_time = getPsTime(halPID); + long cpu_time = getPsTime(""); + + if (cpu_time_old >= 0) { + float java_diff = (float) (java_time - java_time_old); + float hal_diff = (float) (hal_time - hal_time_old); + float cpu_diff = (float) (cpu_time - cpu_time_old); + Log.w(javaProcTAG, "\n----------------\n"); + Log.w(javaProcTAG, "JAVA level CPU: " + + (java_diff * 100.0 / cpu_diff) + "%\n"); + Log.w(javaProcTAG, " HAL level CPU: " + + (hal_diff * 100.0 / cpu_diff) + "%\n"); + Log.w(javaProcTAG, " SYS level CPU: " + + ((java_diff + hal_diff) * 100.0 / cpu_diff) + "%\n"); + } else { + Log.w(TAG, "Waiting for status\n"); + } + + java_time_old = java_time; + hal_time_old = hal_time; + cpu_time_old = cpu_time; + } + + private String getPIDof(String psName) { + String pid = ""; + + try { + String[] cmd = {"/system/bin/sh", "-c", "ps | grep " + psName}; + Process ps = Runtime.getRuntime().exec(cmd); + BufferedReader in = new BufferedReader( + new InputStreamReader(ps.getInputStream())); + String temp = in.readLine(); + if (temp == null || temp.isEmpty()) + throw new IOException("No such process: " + psName); + pid = temp.split(" +")[1]; + in.close(); + } catch (IOException e) { + Log.d(javaProcTAG, "Error finding PID of process: " + psName + "\n", e); + } + return pid; + } + + private long getPsTime(String pid) { + String psStat = getPsStat("/" + pid); + String[] statBreakDown = psStat.split(" +"); + long psTime; + + if (pid.isEmpty()) { + psTime = Long.parseLong(statBreakDown[1]) + + Long.parseLong(statBreakDown[2]) + + Long.parseLong(statBreakDown[3]) + + Long.parseLong(statBreakDown[4]); + } else { + psTime = Long.parseLong(statBreakDown[13]) + + Long.parseLong(statBreakDown[14]); + } + + return psTime; + } + + private String getPsStat(String psname) { + String stat = ""; + try { + FileInputStream fs = new FileInputStream("/proc" + psname + "/stat"); + BufferedReader br = new BufferedReader(new InputStreamReader(fs)); + stat = br.readLine(); + fs.close(); + } catch (IOException e) { + Log.d(TAG, "Error retreiving stat. \n"); + } + return stat; + } + } +} diff --git a/core/tests/bluetoothtests/AndroidManifest.xml b/core/tests/bluetoothtests/AndroidManifest.xml index e43ba12bcaa0..7f9d8749358c 100644 --- a/core/tests/bluetoothtests/AndroidManifest.xml +++ b/core/tests/bluetoothtests/AndroidManifest.xml @@ -21,6 +21,7 @@ <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> + <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> diff --git a/docs/html-intl/intl/es/index.jd b/docs/html-intl/intl/es/index.jd index e23c99f88748..4065439b06f3 100644 --- a/docs/html-intl/intl/es/index.jd +++ b/docs/html-intl/intl/es/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">Prepárese para la próxima versión de Android. Pruebe sus aplicaciones en Nexus 5, 6, 9 y Player. </p> @@ -31,7 +28,7 @@ Android. Pruebe sus aplicaciones en Nexus 5, 6, 9 y Player. </p> ¡Empiece hoy mismo!</a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </a> </div> </div> diff --git a/docs/html-intl/intl/es/preview/download.jd b/docs/html-intl/intl/es/preview/download.jd index d71d8fdd0b7e..d77242ce30e8 100644 --- a/docs/html-intl/intl/es/preview/download.jd +++ b/docs/html-intl/intl/es/preview/download.jd @@ -164,14 +164,16 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el <div id="qv"> <h2>Contenido del documento</h2> <ol> - <li><a href="#sdk">SDK de la versión preliminar</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">Documentación para desarrolladores</a></li> <li><a href="#images">Imágenes del sistema de hardware</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> + </ol> </div> </div> @@ -184,7 +186,7 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el </p> -<h2 id="sdk">SDK de la versión preliminar</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> El SDK de la versión preliminar se encuentra disponible para descargarlo a través del <a href="{@docRoot}tools/help/sdk-manager.html">Administrador de SDK de Android</a>. Para obtener más información sobre cómo descargar y configurar el SDK de la versión preliminar, consulte la sección <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Configurar el SDK de la versión preliminar</a>. @@ -204,11 +206,11 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -241,34 +243,34 @@ Este es el Contrato de licencia de la versión preliminar del SDK de Android (el <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/es/preview/download_mp2.jd b/docs/html-intl/intl/es/preview/download_mp2.jd new file mode 100644 index 000000000000..d71d8fdd0b7e --- /dev/null +++ b/docs/html-intl/intl/es/preview/download_mp2.jd @@ -0,0 +1,360 @@ +page.title=Descargas +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">Antes de descargar e instalar los componentes del SDK de la versión preliminar de Android, debe aceptar los términos y las condiciones que se describen a continuación. +</p> + + <h2 class="norule">Términos y condiciones</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +Este es el Contrato de licencia de la versión preliminar del SDK de Android (el “Contrato de licencia”). 1. + + Introducción 1.1 Se le otorga la licencia de la versión preliminar del SDK de Android (denominada “Versión preliminar” en este Contrato de licencia y que incluye específicamente los archivos de sistema de Android, las API agrupadas y los archivos de biblioteca de la Versión preliminar, si se encuentran disponibles), sujeto a los términos del Contrato de licencia. + + El Contrato de licencia establece una relación legal vinculante entre usted y Google en relación con el uso que usted realice de la Versión preliminar. 1.2 “Android” hace referencia al conjunto de soluciones Android para dispositivos, según se encuentre disponible en el Proyecto de código abierto de Android (Android Open Source Project), que se encuentra en la siguiente URL: http://source.android.com/, y según se actualiza periódicamente. 1.3 “Google” hace referencia a Google Inc., una corporación de Delaware, con sede principal en 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos. 2. + + + + + + Aceptación del Contrato de licencia 2.1 Para poder utilizar la Versión preliminar, primero debe aceptar el Contrato de licencia. + + Si no acepta el Contrato de licencia, no podrá utilizar la Versión preliminar. 2.2 Al hacer clic para aceptar o utilizar la Versión preliminar, por medio del presente, usted acepta los términos del Contrato de licencia. 2.3 Usted no puede utilizar la Versión preliminar ni aceptar el Contrato de licencia si tiene prohibido recibir la Versión preliminar en virtud de las leyes de los Estados Unidos o de otros países, lo que incluye el país donde es residente o desde el que utilizará la Versión preliminar. 2.4 Si usted utilizará la Versión preliminar de forma interna, dentro de su compañía u organización, usted acepta quedar sujeto al Contrato de licencia en representación de su empleador u otra entidad, y expresa y garantiza que tiene plena autoridad legal para vincular a su empleador o a dicha entidad al Contrato de licencia. + + + + + + Si no posee la autoridad exigida, no podrá aceptar el Contrato de licencia ni usar la Versión preliminar en representación de su empleador u otra entidad. 3. + + Licencia de la Versión preliminar de Google 3.1 Sujeto a los términos del Contrato de licencia, Google le otorga una licencia libre de regalías, no asignable, no exclusiva, no transferible a terceros, limitada y revocable para utilizar la Versión preliminar, de forma personal o interna dentro de su compañía u organización, únicamente para desarrollar aplicaciones para ejecutar en la plataforma de Android. 3.2 Usted acepta que Google u otros terceros poseen todos los derechos legales, títulos e intereses en relación con la Versión preliminar, incluidos los Derechos de propiedad intelectual que existan en la Versión preliminar. + + + + Los “Derechos de propiedad intelectual” hacen referencia a todos y cada uno de los derechos en virtud de las leyes de patentes, derechos de autor, secreto comercial y marca comercial, y todos los demás derechos de propiedad. Google se reserva todos los derechos que no se le otorguen expresamente. 3.3 No podrá utilizar la Versión preliminar para ningún otro propósito que no esté expresamente permitido en el Contrato de licencia. + + Excepto en la medida que lo exijan las licencias correspondientes de terceros, no podrá: (a) copiar (excepto con fines de copia de seguridad), modificar, adaptar, redistribuir, descompilar, utilizar técnicas de ingeniería inversa, desarmar ni crear trabajos derivados de la Versión preliminar ni de ninguna de sus partes; ni (b) cargar ninguna parte de la Versión preliminar en un teléfono móvil ni en ningún otro dispositivo de hardware (a excepción de una computadora personal), ni podrá combinar ninguna parte de la Versión preliminar con otro software, ni distribuir algún software o dispositivo que incorpore alguna parte de la Versión preliminar. 3.4 Usted acepta que no tomará medidas que pudieran provocar la fragmentación de Android, incluidas, entre otras, la distribución y la participación en la creación o la promoción de un kit de desarrollo de software derivado de la Versión preliminar. 3.5 El uso, la reproducción y la distribución de los componentes de la Versión preliminar con licencia de software de código abierto están regidos exclusivamente por los términos de la licencia de ese software de código abierto y no de este Contrato de licencia. + + + + Usted acepta mantener la licencia en buenas condiciones con respecto a dichas licencias de software de código abierto en virtud de todos los derechos otorgados y acepta abstenerse de realizar alguna acción que pueda poner fin, suspender o violar dichos derechos. 3.6 Usted acepta que la forma y la naturaleza de la Versión preliminar que proporciona Google pueden cambiar sin brindarle aviso previo y que las versiones futuras de la Versión preliminar pueden ser incompatibles con las aplicaciones desarrolladas en versiones anteriores de la Versión preliminar. + + Usted acepta que Google puede (de forma permanente o temporal) dejar de proporcionarles la Versión preliminar (o cualquiera de las características incluidas en ella) a usted o a los usuarios, generalmente, a criterio exclusivo de Google, sin brindarle aviso previo. 3.7 Ninguna declaración de este Contrato de licencia le otorga el derecho de utilizar alguno de los nombres comerciales, las marcas comerciales, las marcas de servicio, los logotipos, los nombres de dominio ni otras características distintivas de marca de Google. 3.8 Usted acepta que no eliminará, ocultará ni alterará ninguno de los avisos de derechos de propiedad (lo que incluye los avisos de marca comercial y derechos de autor) que pudieran estar anexados o incluidos en la Versión preliminar. 4. + + + + + + Uso que usted realiza de la Versión preliminar 4.1 Google acepta que ninguna declaración del Contrato de licencia le concede a Google derecho, título o interés alguno de su parte (o de parte de sus licenciantes), en virtud del Contrato de licencia, con respecto a las aplicaciones de software que usted desarrolle mediante el uso de la Versión preliminar, lo que incluye los derechos de propiedad intelectual que conlleven esas aplicaciones. 4.2 Usted acepta utilizar la Versión preliminar y escribir aplicaciones únicamente conforme a lo que permite (a) este Contrato de licencia y (b) las leyes, regulaciones, o prácticas y pautas generalmente aceptadas pertinentes en las jurisdicciones relevantes (lo que incluye las leyes sobre la exportación de datos o software hacia los Estados Unidos u otros países relevantes y desde ellos). 4.3 Usted acepta que si utiliza la Versión preliminar para desarrollar aplicaciones, protegerá la privacidad y los derechos legales de los usuarios. + + + + + + Si los usuarios le proporcionan sus nombres de usuario, contraseñas u otra información de inicio de sesión o información personal, debe comunicarles a los usuarios que la información se encontrará disponible para su aplicación, y debe proporcionarles a dichos usuarios un aviso de privacidad con protección y validez legal. Si su aplicación almacena información personal o confidencial proporcionada por los usuarios, lo debe hacer de forma segura. Si los usuarios le proporcionan información sobre la cuenta de Google, su aplicación solo puede usar esa información para acceder a la cuenta de Google del usuario siempre que este le haya otorgado permiso para hacerlo y con los fines para los que se lo haya otorgado. 4.4 Usted acepta que no participará en ninguna actividad con la Versión preliminar (lo que incluye el desarrollo o la distribución de una aplicación) que interfiera, interrumpa, dañe o acceda sin autorización a servidores, redes u otras propiedades o servicios de Google o de algún tercero. 4.5 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de los datos, el contenido o los recursos que usted cree, transmita o muestre a través de Android o las aplicaciones para Android, y de las consecuencias de sus acciones (lo que incluye la pérdida o el daño que Google pudiera sufrir) al hacerlo. 4.6 Usted acepta que es el único responsable (y que Google no asume responsabilidades hacia usted ni terceros) de cualquier incumplimiento de sus obligaciones en virtud de este Contrato de licencia, los contratos aplicables de terceros o los términos del servicio, o cualquier ley o regulación pertinentes, y de las consecuencias (lo que incluye las pérdidas o los daños que pudieran sufrir Google o algún tercero) de dichos incumplimientos. 4.7 La Versión preliminar se encuentra en desarrollo, y sus pruebas y comentarios son una parte importante del proceso de desarrollo. + + + + + + + + Al utilizar la Versión preliminar, usted reconoce que la implementación de algunas características aún se encuentra en desarrollo y que no debe confiar en que la Versión preliminar contará con todas las funcionalidades de una versión estable. Usted acepta no distribuir públicamente ni enviar ninguna aplicación que utilice esta Versión preliminar, ya que esta Versión preliminar ya no se admitirá tras el lanzamiento del SDK oficial de Android. 5. + + Sus credenciales de desarrollador 5.1 Usted acepta que es responsable de mantener la confidencialidad de toda credencial de desarrollador que Google pudiera otorgarle o que usted pudiera escoger, y que será el único responsable de todas las aplicaciones que se desarrollen con sus credenciales de desarrollador. 6. + + + + Privacidad e información 6.1 A fin de poder innovar y mejorar de forma continua la Versión preliminar, Google podría recopilar ciertas estadísticas de uso del software, lo que incluye, entre otras características, un identificador único, la dirección IP asociada, el número de versión del software e información sobre las herramientas o los servicios de la Versión preliminar que se estén utilizando y la manera en que se estén utilizando. + + Antes de que se recopile esta información, la Versión preliminar se lo notificará y le solicitará su permiso. Si no otorga su permiso, no se recopilará la información. 6.2 Los datos recopilados se analizan en el agregado para mejorar la Versión preliminar y se conservan de acuerdo con la política de privacidad de Google que se encuentra en el sitio http://www.google.com/policies/privacy/. 7. + + + + Aplicaciones de terceros 7.1 Si utiliza la Versión preliminar para ejecutar aplicaciones desarrolladas por un tercero o que accedan a datos, contenido o recursos proporcionados por un tercero, usted acepta que Google no es responsable de esas aplicaciones, datos, contenido ni recursos. + + Usted comprende que todos los datos, contenidos o recursos a los que podría acceder a través de esas aplicaciones de terceros son exclusiva responsabilidad de la persona que los origina y que Google no es responsable de las pérdidas ni los daños que usted pudiera experimentar como consecuencia del uso o acceso de cualquiera de esas aplicaciones, datos, contenido o recursos de terceros. 7.2 Usted debe saber que los datos, el contenido y los recursos que se le presentan a través de esa aplicación de un tercero pueden estar protegidos por derechos de propiedad intelectual que les pertenecen a sus proveedores (o a otras personas o compañías en representación de estos). + + No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos, contenidos o recursos (en su totalidad o en parte), a menos que los propietarios pertinentes le hayan otorgado permiso específicamente para hacerlo. 7.3 Usted acepta que el uso que haga de las aplicaciones, los datos, el contenido o los recursos de ese tercero puede estar sujeto a términos independientes entre usted y el tercero correspondiente. 8. + + + + Uso de las API de Google 8.1 API de Google 8.1.1 Si utiliza alguna API para recuperar datos de Google, usted acepta que los datos pueden estar protegidos por derechos de propiedad intelectual que le pertenecen a Google o a las partes que proporcionan esos datos (o a otras personas o empresas en representación de estos). + + + + El uso que realice de cualquiera de esas API puede estar sujeto a términos de servicio adicionales. No puede modificar, alquilar, arrendar, prestar, vender, distribuir ni crear obras derivadas basadas en esos datos (en su totalidad o en parte), a menos que los términos de servicio correspondientes lo permitan. 8.1.2 Si utiliza alguna API para recuperar datos de un usuario de Google, usted acepta y acuerda que solo podrá recuperar datos con el consentimiento explícito del usuario y solo con los fines limitados para los que el usuario le haya otorgado permiso para hacerlo. 9. + + + + Finalización del Contrato de licencia 9.1 Este Contrato de licencia tendrá vigencia hasta que lo revoquen usted o Google, como se indica a continuación. 9.2 Si desea rescindir el Contrato de licencia, puede hacerlo al interrumpir el uso que realiza de la Versión preliminar y de las credenciales de desarrollador pertinentes. 9.3 Google puede, en cualquier momento, rescindir el Contrato de licencia, con causa o sin ella, después de notificárselo a usted. 9.4 El Contrato de licencia finalizará automáticamente, sin previo aviso ni acción alguna, tras la primera de las siguientes situaciones: (A) cuando Google deje de proporcionar la Versión preliminar o ciertas partes de esta a los usuarios en el país donde usted reside o desde el que utiliza el servicio; y (B) cuando Google emita una versión final del SDK de Android. 9.5 Si el Contrato de licencia se rescinde, se revocará la licencia que usted recibió en virtud de dicho contrato; usted deberá suspender inmediatamente todo uso de la Versión preliminar y las disposiciones de los párrafos 10, 11, 12 y 14 seguirán vigentes indefinidamente. 10. + + + + + + + + + + + + + + EXENCIONES DE RESPONSABILIDAD 10.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE EL USO QUE REALICE DE LA VERSIÓN PRELIMINAR ES BAJO SU PROPIO RIESGO Y QUE LA VERSIÓN PRELIMINAR SE PROPORCIONA “EN LAS CONDICIONES EN LAS QUE SE ENCUENTRA” Y “SUJETA A DISPONIBILIDAD” SIN GARANTÍAS DE NINGÚN TIPO POR PARTE DE GOOGLE. 10.2 EL USO QUE USTED REALICE DE LA VERSIÓN PRELIMINAR Y DE TODO MATERIAL DESCARGADO U OBTENIDO DE ALGUNA OTRA MANERA MEDIANTE EL USO DE LA VERSIÓN PRELIMINAR ES A SU ENTERO RIESGO Y DISCRECIÓN, Y USTED ES EL ÚNICO RESPONSABLE DE CUALQUIER DAÑO QUE PUDIERA SUFRIR SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO, O DE LA PÉRDIDA DE DATOS COMO CONSECUENCIA DE DICHO USO. + + + + SIN PERJUICIO DE LO MENCIONADO ANTERIORMENTE, USTED COMPRENDE QUE LA VERSIÓN PRELIMINAR NO ES UNA VERSIÓN ESTABLE, Y PUEDE CONTENER ERRORES, DEFECTOS Y VULNERABILIDADES DE SEGURIDAD QUE PUEDEN PROVOCAR DAÑOS SIGNIFICATIVOS, LO QUE INCLUYE LA PÉRDIDA COMPLETA E IRRECUPERABLE DEL USO DE SU SISTEMA INFORMÁTICO U OTRO DISPOSITIVO. 10.3 GOOGLE TAMBIÉN RECHAZA TODAS LAS GARANTÍAS Y CONDICIONES DE CUALQUIER TIPO, EXPRESAS O IMPLÍCITAS, INCLUIDAS, ENTRE OTRAS, LAS GARANTÍAS Y CONDICIONES DE COMERCIABILIDAD, IDONEIDAD PARA UN FIN DETERMINADO Y NO VIOLACIÓN. 11. + + + + LIMITACIÓN DE RESPONSABILIDADES 11.1 USTED COMPRENDE Y ACEPTA EXPRESAMENTE QUE GOOGLE, SUS SUBSIDIARIAS Y FILIALES, Y SUS LICENCIANTES NO SERÁN RESPONSABLES ANTE USTED, EN VIRTUD DE NINGUNA TEORÍA DE RESPONSABILIDAD, POR NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, RESULTANTE NI PUNITIVO EN EL QUE PODRÍA HABER INCURRIDO, LO QUE INCLUYE LA PÉRDIDA DE DATOS, YA SEA QUE SE LE HAYA NOTIFICADO O NO A GOOGLE O A SUS REPRESENTANTES, O SOBRE CUYA POSIBILIDAD ESTOS DEBERÍAN HABER SABIDO. 12. + + + + Indemnización 12.1 Hasta el grado máximo que permita la ley, usted acepta defender, indemnizar y eximir de responsabilidades a Google, sus filiales y sus respectivos directores, funcionarios, empleados y agentes, de todo tipo de reclamo, acción legal y proceso judicial, así como de las pérdidas, responsabilidades, daños, costos y gastos (incluidos los honorarios razonables de abogados) que surjan o se acumulen (a) del uso que usted realiza de la Versión preliminar, (b) de cualquier aplicación que desarrolle en la Versión preliminar que infrinja algún derecho de propiedad intelectual de cualquier persona, o que difame a cualquier persona o viole sus derechos de publicidad o privacidad, y (c) del incumplimiento por su parte del Contrato de licencia. 13. + + + + Cambios en el Contrato de licencia 13.1 Google puede realizar cambios en el Contrato de licencia a medida que distribuye nuevas versiones de la Versión preliminar. + + Cuando se realicen esos cambios, Google emitirá una nueva versión del Contrato de licencia, que estará disponible en el sitio web donde se ponga a la venta la Versión preliminar. 14. + + Términos legales generales 14.1 El Contrato de licencia constituye el contrato legal integral entre usted y Google, y rige el uso que usted realice de la Versión preliminar (a excepción de los servicios que Google pueda proporcionarle en virtud de un contrato por escrito independiente), y reemplaza totalmente cualquier contrato anterior entre usted y Google en relación con la Versión preliminar. 14.2 Usted acepta que, si Google no ejerce ni impone un derecho o recurso legal especificados en el Contrato de licencia (o sobre el que Google tenga beneficios conforme a cualquier ley aplicable), esto no se considerará una renuncia formal a los derechos por parte de Google y Google aún seguirá recibiendo los beneficios de esos derechos o recursos legales. 14.3 Si algún tribunal judicial con jurisdicción para decidir sobre este asunto determina que alguna de las disposiciones de este Contrato de licencia no es válida, se eliminará esa disposición del Contrato de licencia sin que eso afecte la validez del resto del contrato. + + + + + + Las disposiciones restantes del Contrato de licencia continuarán siendo válidas y aplicables. 14.4 Usted reconoce y acepta que cada miembro del grupo de compañías de las que Google es la compañía central serán terceros beneficiarios del Contrato de licencia, y que esas otras empresas tendrán el derecho de imponer directamente cualquier disposición y ampararse en las disposiciones de este Contrato de licencia que les confieran un beneficio (o que confieran derechos a su favor). + + Además de esto, ninguna otra persona o compañía serán terceros beneficiarios del Contrato de licencia. 14.5 RESTRICCIONES DE EXPORTACIÓN. + + LA VERSIÓN PRELIMINAR ESTÁ SUJETA A LAS LEYES Y REGULACIONES DE EXPORTACIÓN DE LOS ESTADOS UNIDOS. DEBE CUMPLIR CON TODAS LAS LEYES Y REGULACIONES DE EXPORTACIÓN NACIONALES E INTERNACIONALES QUE SE APLIQUEN A LA VERSIÓN PRELIMINAR. ESTAS LEYES INCLUYEN RESTRICCIONES EN RELACIÓN CON LOS DESTINOS, USUARIOS FINALES Y USO FINAL. 14.6 Usted no puede asignar ni transferir el Contrato de licencia sin la aprobación previa por escrito de Google y todo intento de asignación sin dicha aprobación no tendrá validez. + + No podrá delegar sus responsabilidades u obligaciones otorgados en virtud del Contrato de licencia sin la aprobación previa por escrito de Google. 14.7 El Contrato de licencia y su relación con Google conforme al Contrato de licencia se regirán por las leyes del estado de California, independientemente de los principios de conflictos entre leyes. + + Usted y Google aceptan presentarse ante la jurisdicción exclusiva de los tribunales del condado de Santa Clara, California, para resolver cualquier asunto legal que pudiera surgir del Contrato de licencia. Sin perjuicio de esto, usted acepta que Google aún podrá aplicar reparaciones conforme a mandato judicial (o a un tipo equivalente de desagravio legal) en cualquier jurisdicción. + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">He leído y acepto los términos y las condiciones anteriores.</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Contenido del documento</h2> + <ol> + <li><a href="#sdk">SDK de la versión preliminar</a></li> + <li><a href="#docs">Documentación para desarrolladores</a></li> + <li><a href="#images">Imágenes del sistema de hardware</a></li> + </ol> + + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + El SDK de la versión preliminar de Android M incluye herramientas de desarrollo, archivos de sistema de Android y archivos de biblioteca que lo ayudarán a probar su aplicación y las nuevas API que se incluirán en la próxima versión de la plataforma. + En este documento, se describe la manera de obtener los componentes que se pueden descargar de la versión preliminar para probar su aplicación. + +</p> + + +<h2 id="sdk">SDK de la versión preliminar</h2> + +<p> + El SDK de la versión preliminar se encuentra disponible para descargarlo a través del <a href="{@docRoot}tools/help/sdk-manager.html">Administrador de SDK de Android</a>. Para obtener más información sobre cómo descargar y configurar el SDK de la versión preliminar, consulte la sección <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Configurar el SDK de la versión preliminar</a>. + +</p> + + +<h2 id="docs">Documentación para desarrolladores</h2> + +<p> + El paquete de descarga de documentación para desarrolladores brinda información detallada de referencia sobre las API y un informe de diferencias de las API para la versión preliminar. +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + + +<h2 id="images">Imágenes del sistema de hardware</h2> + +<p> + Estas imágenes del sistema le permiten instalar una versión preliminar de la plataforma en un dispositivo físico para realizar pruebas. + Al configurar un dispositivo con una de estas imágenes, puede instalar y probar su aplicación para ver cómo funciona en la próxima versión de la plataforma. + El proceso de instalación de una imagen del sistema en un dispositivo <em>elimina todos los datos del dispositivo</em>, por lo que debe hacer una copia de seguridad de los datos antes de instalar una imagen del sistema. + + +</p> + +<p class="warning"> + <b>Advertencia:</b> Las siguientes imágenes del sistema de Android son versiones preliminares y están sujetas a cambios. El uso que haga de estas imágenes del sistema se rige por el Contrato de licencia de la versión preliminar del SDK de Android. + Las imágenes del sistema de la versión preliminar de Android no son versiones estables y pueden contener errores y defectos que pueden generar daños en sus sistemas informáticos, dispositivos y datos. + + Las imágenes del sistema de la versión preliminar de Android no se someten a las mismas pruebas que el OS de fábrica y podrían hacer que el teléfono, y las aplicaciones y los servicios instalados dejen de funcionar. + + +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">Instalar una imagen en un dispositivo</h3> + +<p> + Si desea utilizar una imagen del dispositivo para realizar pruebas, debe instalarla en un dispositivo compatible. Siga las instrucciones que se ofrecen a continuación para instalar una imagen del sistema: + +</p> + +<ol> + <li>Descargue y descomprima uno de los paquetes de imágenes del sistema que se enumeran aquí.</li> + <li>Realice una copia de seguridad de los datos del dispositivo que desee conservar.</li> + <li>Siga las instrucciones que se describen en el sitio <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> + para actualizar la imagen en su dispositivo. +</li> +</ol> + +<p class="note"> + <strong>Nota:</strong> Cuando haya actualizado un dispositivo de desarrollo con la imagen del sistema de la versión preliminar, se actualizará automáticamente con la próxima versión preliminar a través de actualizaciones OTA. + +</p> + +<h3 id="revertDevice">Restablecer las especificaciones de fábrica en un dispositivo</h3> + +<p> + Si desea desinstalar la versión preliminar y restablecer las especificaciones de fábrica en un dispositivo, visite el sitio <a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> y descargue la imagen con la que desea actualizar su dispositivo. + + Siga las instrucciones que se describen en esa página para actualizar la imagen en su dispositivo. + +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/es/preview/index.jd b/docs/html-intl/intl/es/preview/index.jd index aae8e4c5277a..547b5b0e0803 100644 --- a/docs/html-intl/intl/es/preview/index.jd +++ b/docs/html-intl/intl/es/preview/index.jd @@ -30,7 +30,7 @@ footer.hide=1 <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> diff --git a/docs/html-intl/intl/ja/index.jd b/docs/html-intl/intl/ja/index.jd index 3084b24fe866..a11136d55c2f 100644 --- a/docs/html-intl/intl/ja/index.jd +++ b/docs/html-intl/intl/ja/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">次期バージョンの Android に向けて準備しましょう。 Nexus 5、6、9、Nexus Player でアプリをテストします。 </p> @@ -32,7 +29,7 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> diff --git a/docs/html-intl/intl/ja/preview/download.jd b/docs/html-intl/intl/ja/preview/download.jd index 67b1bc4126cf..7f6f4990df8e 100644 --- a/docs/html-intl/intl/ja/preview/download.jd +++ b/docs/html-intl/intl/ja/preview/download.jd @@ -164,14 +164,15 @@ page.image=images/cards/card-download_16-9_2x.png <div id="qv"> <h2>本書の内容</h2> <ol> - <li><a href="#sdk">Preview SDK</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">デベロッパー ドキュメント</a></li> <li><a href="#images">ハードウェアのシステム イメージ</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> </ol> </div> </div> @@ -184,7 +185,7 @@ page.image=images/cards/card-download_16-9_2x.png </p> -<h2 id="sdk">Preview SDK</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> Preview SDK <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK マネージャー</a>経由でダウンロードできます。Preview SDK のダウンロードと設定の詳細については、<a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Set Up the Preview SDK</a> をご覧ください。 @@ -204,11 +205,11 @@ page.image=images/cards/card-download_16-9_2x.png <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -240,34 +241,34 @@ Android Preview システム イメージは安定したリリースではなく <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/ja/preview/download_mp2.jd b/docs/html-intl/intl/ja/preview/download_mp2.jd new file mode 100644 index 000000000000..67b1bc4126cf --- /dev/null +++ b/docs/html-intl/intl/ja/preview/download_mp2.jd @@ -0,0 +1,359 @@ +page.title=ダウンロード +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">Android Preview SDK のコンポーネントをダウンロード、インストールする前に、次の利用規約に同意する必要があります。 +</p> + + <h2 class="norule">利用規約</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +以下は、Android SDK Preview の使用許諾契約です(以下「本契約」)。 + +1.はじめに + +1.1 Android SDK Preview(以下、本契約で「Preview」という。具体的には利用可能な場合には Android システム ファイル、パッケージ型 API、Preview ライブラリ ファイルを含む)は、本契約の規定に従ってライセンス許可されます。本契約では、デベロッパーの Preview の使用に関して、デベロッパーと Google の間で法的拘束力のある契約を結びます。 + +1.2 「Android」とは、Android オープン ソース プロジェクト(http://source.android.com/ にて随時更新)にて利用可能な、端末向けの Android ソフトウェア スタックを意味します。 + +1.3 「Google」とは、1600 Amphitheatre Parkway, Mountain View, CA 94043, United States に主たる事業所を有するデラウェア州法人である Google Inc. を意味します。 + +2.本契約の同意 + +2.1 Preview を使用するには、まず本契約に同意する必要があります。本契約に同意しない場合は Preview を使用できません。 + +2.2 同意するかまたは Preview を使用するためにクリックすると、本契約に同意したことになります。 + +2.3 米国またはその他の国(デベロッパーが居住している国かまたはデベロッパーが Preview を使用する国を含む)の法律により Preview の使用を禁止されている人である場合、Preview を使用することも、使用許諾契約に同意することもできません。 + +2.4 雇用主またはその他の事業体を代表または代理して本契約に拘束されることに同意し Preview を企業または組織の内部で使用する場合、担当者の雇用主またはその他の事業体を本契約に法的に拘束する完全な法的権限を有していることを表明および保証するものとします。担当者が必要な権限を有していない場合は、担当者の雇用主またはその他の事業体を代表または代理して、本契約に同意することも、Preview を使用することもできません。 + +3.Google Preview ライセンス + +3.1 本契約の規定に従い、Google は Android プラットフォーム上で実行するアプリケーションの開発に Preview を個人的にもしくは企業または組織の内部で使用するための、ロイヤリティ フリーな、譲渡不可で、非排他的な、サブライセンス不可の、限定された、取り消し可能なライセンスを付与するものとします。 + +3.2 Preview に関するすべての法的権利、所有権、利益(Preview に含まれる知的財産権を含む)は Google またはサードパーティが所有するものとします。「知的財産権」とは、特許法、著作権法、営業秘密法、商標法、不当競争防止法に基づいて発生するすべての権利、およびその他のすべての所有権を意味します。デベロッパーに明示的に付与されていない権利は、すべて Google が所有します。 + +3.3 本契約で明示的に許可されている目的以外においては、Preview を使用できません。当該のサードパーティのライセンスで必要とされる場合を除き、デベロッパーは、(a) Preview または Preview の一部をコピー(バックアップ目的を除く)、修正、改造、再配布、逆コンパイル、リバース エンジニアリング、逆アセンブルまたは派生物の作成、または(b)モバイル ハンドセットまたは個人用 PC 以外のハードウェア端末への Preview の読み込み、Preview と他のソフトウェアとの結合、または Preview の一部を組み込んだソフトウェアや端末の配布はできません。 + +3.4 デベロッパーは、Android の断片化につながるような行為をしないことに同意します。これには、Preview から派生したソフトウェア開発キットの配布、作成への参加、宣伝を含みます(ただし必ずしもこれらには限定されません)。 + +3.5 オープンソース ソフトウェア ライセンス下でライセンス付与された Preview のコンポーネントの使用、複製、配布は、本契約ではなく、そのオープンソース ソフトウェアのライセンスに準拠するものとします。デベロッパーは、許諾されるすべての権利下で、そのようなオープンソース ソフトウェア ライセンスに対して、優良ライセンシーのままでいることに同意し、そのような権利を終了、停止、または違反する可能性のあるいかなる行為も差し控えることに同意するものとします。 + +3.6 デベロッパーは、Google が提供する Preview の形式および性質は事前の通知なしに変更される場合があり、今後リリースされる Preview のバージョンでは、以前のバージョンの Preview で開発されたアプリケーションとの互換性がない可能性があることに同意します。デベロッパーは、Google が事前の通知なく、Google の単独の裁量でデベロッパーまたはユーザーへの Preview(または Preview 内の一部の機能)の提供を(恒久的または一時的に)停止する場合があることに同意します。 + +3.7 本契約のいかなる部分も、Google のいかなる商標名、商標、サービスマーク、ロゴ、ドメイン名、またはその他のブランド識別表示を使用する権利もデベロッパーに付与するものではありません。 + +3.8 デベロッパーは、Preview に添付または収録されているすべての知的財産権に関する通知(著作権および商標の通知を含む)の削除、隠ぺい、改ざんを行わないことに同意します。 + +4.デベロッパーによる Preview の使用 + +4.1 Google は、本契約に基づき Preview を使用してデベロッパーが開発したソフトウェア アプリケーションに関して、デベロッパー(またはデベロッパーのライセンサー)からいかなる権利、所有権、または利益(当該アプリケーションに含まれる知的財産権を含む)も取得するものではないことに同意します。 + +4.2 デベロッパーは、Preview を(a)本契約、および(b)該当する司法管轄区における適用される法律、規則、または一般に認められた慣行またはガイドライン(米国またはその他の該当国におけるデータまたはソフトウェアの輸出入に関する法律を含む)で認められている目的にのみ使用することに同意します。 + +4.3 Preview を使用してアプリケーションを開発する場合、デベロッパーはユーザーのプライバシーおよび法的権利を保護することに同意します。ユーザーからデベロッパーにユーザー名、パスワード、またはその他のログイン情報または個人情報が提供される場合、デベロッパーは、情報がデベロッパーのアプリケーションに提供されることをユーザーに認識させ、当該ユーザーについてプライバシーに関する法的に十分な通知および保護を行わなければなりません。デベロッパーのアプリケーションに個人情報または秘密情報が保存される場合、この保存は保護された方法で行われなければなりません。ユーザーからデベロッパーのアプリケーションに Google アカウントの情報が提供された場合、デベロッパーのアプリケーションでは、ユーザーが許可したタイミングで、かつユーザーが許可した限定された目的にのみ、当該情報を使用してユーザーの Google アカウントにアクセスすることが認められるものとします。 + +4.4 デベロッパーは、Preview に関して、第三者(Google、およびあらゆる携帯電話会社を含むが、これらに限定されない)のサーバー、ネットワーク、またはその他の財産またはサービスへの妨害、中断、損害、または許可されていない態様でのアクセスとなる行為(そのような行為に該当する対象製品の開発または販売 / 配布を含む)に関与しないことに同意します。 + +4.5 デベロッパーは、デベロッパーが Android および Android のアプリケーションを介して作成、送信、表示するデータ、コンテンツ、リソース、および自身の行為の結果(Google に発生する可能性のあるあらゆる損失および損害を含む)について、自身が単独で責任を負うこと(および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと)に同意します。 + +4.6 デベロッパーは、本契約、適用される第三者の契約もしくは利用規約、または適用される法律もしくは規則に基づく自身の義務に違反したこと、および当該違反の結果(Google または第三者に発生したあらゆる損失および損害を含む)について、自身が単独で責任を負うこと(および Google がこれについてデベロッパーまたはいかなる第三者に対しても一切責任を負わないこと)に同意します。 + +4.7 Preview は開発中であり、デベロッパーによるテスティングやフィードバックは開発プロセスの重要な一部となります。デベロッパーは、Preview の使用により、一部の機能の実装が開発中であると認識し、Preview が安定したリリースの完全な機能性を持つことに依存すべきでないことを認識するものとします。本 Preview は、公式の Android SDK のリリース後はサポート対象でなくなるため、デベロッパーは、Preview を使用するいかなるアプリケーションも公然と配布または引き渡さないことに同意するものとします。 + +5.デベロッパーの資格情報 + +5.1 デベロッパーは、Google が発行した、またはデベロッパー自身で選択した、自身のデベロッパー用資格情報の秘密を保持する責任を負うこと、および自身のデベロッパー用資格情報のもとで開発されたすべてのアプリケーションについて単独で責任を負うことに同意します。 + +6.プライバシーおよび情報 + +6.1 Google は、Preview の継続的な技術革新と改良のために、ソフトウェアから特定の使用状況統計情報(一意識別子、関連する IP アドレス、ソフトウェアのバージョン番号、Preview のどのツール/サービスがどのように使用されているかに関する情報を含むが、これらに限定されない)を収集できます。この情報が収集される前に、Preview に通知が表示され、デベロッパーの同意が求められます。デベロッパーが同意しない場合は、情報は収集されません。 + +6.2 収集されるデータは、Preview の改良のために集約された形で精査され、Google のプライバシー ポリシー(http://www.google.com/policies/privacy/)に従って管理されます。 + +7.第三者のアプリケーション + +7.1 デベロッパーが、Preview を使用して第三者が開発したアプリケーションを実行する、あるいは第三者から提供されたデータ、コンテンツ、リソースにアクセスする場合、デベロッパーは、Google がそれらのアプリケーション、データ、コンテンツ、リソースについて責任を負わないことに同意します。デベロッパーは、そのような第三者のアプリケーションを介してアクセスするすべてのデータ、コンテンツ、リソースについては、それらを生成した者が単独で責任を負うものであり、Google はそれらの第三者のアプリケーション、データ、コンテンツ、またはリソースの使用もしくはアクセスによって生じたあらゆる損失および損害について一切責任を負わないことを理解します。 + +7.2 デベロッパーは、そのような第三者のアプリケーションを介して表示されるデータ、コンテンツ、リソースは、提供者(あるいは代理の第三者または事業体)が所有する知的財産権で保護されている場合があることを認識するものとします。デベロッパーは、当該所有者からの明確な許可がない限り、それらのデータ、コンテンツ、リソース(全体または一部)の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。 + +7.3 デベロッパーは、そのような第三者のアプリケーション、データ、コンテンツまたはリソースの使用が、デベロッパーと当該第三者間の別の規約に従うものであることを認識するものとします。 + +8.Google API の使用 + +8.1 Google API + +8.1.1 API を使用して Google からデータを取得する場合、デベロッパーは、そのデータは、Google またはデータを提供する事業体(あるいは代理の第三者または事業体)が所有する知的財産権で保護されている場合があることを認識するものとします。そのような API の使用は追加の利用規約に従うものとします。デベロッパーは、当該の利用規約による許可がない限り、そのデータ(全体または一部)の変更、貸与、賃貸、担保、配布または派生物の作成を行うことはできません。 + +8.1.2 デベロッパーは、API を使用して Google からユーザーのデータを取得する場合、ユーザーが明示的に同意した場合のみ、およびユーザーが許可したタイミングとその目的にのみ、データを取得できることを理解し、同意します。 + +9.本契約の終了 + +9.1 本契約は、下記の規定に従ってデベロッパーまたは Google のいずれかによって解約されるまで、継続して適用されるものとします。 + +9.2 デベロッパーが本契約の解約を希望する場合は、Preview および関連するデベロッパー資格情報の使用を停止することで、契約を終了するものとします。 + +9.3 Google は、理由の有無にかかわらず、書面で通知することでいつでもデベロッパーとの本契約を解約することができます。 + +9.4 本契約は事前の通知またはその他の措置なく、次のうち早い方に自動的に終了します。 +(A)Google が、デベロッパーが居住している国またはデベロッパーがサービスを使用する国での Preview または Preview の一部の配布を停止したとき。 +(B)Google が Android SDK の最終バージョンをリリースしたとき。 + +9.5 本契約が終了すると、本契約で付与されていたライセンスは終了し、デベロッパーは速やかに Preview のすべての使用を停止するものとし、第 10 条、第 11 条、第 12 条、第 14 条の規定は無期限に効力を有するものとします。 + +10.免責事項 + +10.1 デベロッパーは、デベロッパーによる Preview の使用はデベロッパー自身の責任において行うものであること、および Preview は「現状有姿」かつ「提供可能な限りにおいて」、Google からのいかなる種類の保証もなく提供されるものであることを明示的に理解し、これに同意します。 + +10.2 デベロッパーによる Preview および Preview の使用を通じてダウンロードまたはその他の方法で取得されたマテリアルの使用は、デベロッパー自身の裁量および責任において行うものであり、当該使用の結果として生じるデベロッパーのコンピュータ システムもしくはその他の端末への損害またはデータの喪失についての責任はデベロッパーが単独で負います。前述を制限することなく、Preview は安定したリリースではなく、コンピュータやその他の端末の利用の完全な回復不可能な損失を含む、重大な損害を引き起こす可能性のあるエラー、欠陥、およびセキュリティ上の脆弱性が含まれている可能性があることを理解します。 + +10.3 Google はまた、商品性、特定目的への適合性、および権利侵害がないことの黙示的な保証および条件を含む(ただしこれらに限定されない)、明示的か黙示的かを問わずあらゆる種類のすべての保証および条件を明示的に否定します。 + +11.責任の制限 + +11.1 デベロッパーは、Google、その子会社および関連会社、ならびにそのライセンサーが、デベロッパーに発生した直接損害、間接損害、偶発的損害、特別損害、結果的損害、または懲罰的損害(データの喪失を含む)について、Google またはその代表者が当該損失が発生する可能性について告知されていたかどうか、または知っていたはずであるかどうかにかかわらず、いかなる責任法理のもとでもデベロッパーに対して責任を負わないことを明示的に理解し、これに同意します。 + +12.補償 + +12.1 法律で認められる最大限の範囲内において、デベロッパーは、(a)デベロッパーが Preview を使用したこと、および(b)デベロッパーが Preview で開発したアプリケーションが他者のいかなる知的財産権を侵害していること、または他者の名誉を毀損している、もしくは他者のパブリシティ権もしくはプライバシー権を侵害していること、および(c)デベロッパーが本契約に違反したことから発生したあらゆる申し立て、普通法上の訴訟、衡平法上の訴訟、または法的手続き、ならびにあらゆる損失、責任、損害、費用、および経費(合理的な弁護士報酬を含む)について、Google、その関連会社、ならびに当該各社の取締役、役員、従業員、代理人を防御し、補償し、免責することに同意します。 + +13.契約の変更 + +13.1 Google は、Preview の新しいバージョンを配布することにより、いつでも本契約を変更することができます。変更が生じた場合、Google は、Preview の提供ウェブサイト上に使用許諾契約の改訂版を公開します。 + +14.法的一般条項 + +14.1 本契約は、デベロッパーと Google の間の法的な合意のすべてを表し、デベロッパーによる Preview の使用(別の契約下で Google が提供するサービスを除く)に適用され、Preview に関するデベロッパーと Google の間のあらゆる事前の合意に完全に取って代わるものです。 + +14.2 デベロッパーは、Google が本契約に定める(または適用される法律のもとで Google が享受できる)法的な権利または救済措置を行使または執行しなかった場合でも、Google の権利が正式に放棄されたとはみなされないこと、および Google が以後も引き続き当該権利および救済措置を行使または執行できることに同意します。 + +14.3 本件について判断を下す管轄権を有する司法裁判所によって、本契約のいずれかの条項が無効と判断された場合、当該条項は、本契約の残りの部分に影響を与えることなく本契約から削除されるものとします。本契約の残りの条項は、以後も引き続き有効かつ執行可能であるものとします。 + +14.4 デベロッパーは、Google が親会社となっている各グループ企業が、本契約の第三受益者となること、および当該企業が、当該企業に利益(または受益権)を付与する本契約の条項を直接執行する、また当該条項に依拠する権利を有することを了承し、これに同意します。上記以外のいかなる人または法人も、本契約の第三受益者とはならないものとします。 + +14.5 輸出規制。Preview は、米国輸出管理法令の対象です。デベロッパーは、Preview に適用されるすべての国内および国際の輸出管理法令に従わなければなりません。これらの法律には、仕向け地、ユーザー、および最終用途に関する制限が含まれます。 + +14.6 デベロッパーは、Google から事前に書面で承認を得ずに、本契約を譲渡または移転することはできません。また、そのような承認を得ずに計画された譲渡はすべて無効になります。デベロッパーは、Google から事前に書面で承認を得ずに、本契約に基づく自身の責任または義務を他者に委任してはなりません。 + +14.7 本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連するすべての申し立ては、米国カリフォルニア州の抵触法を除いて、カリフォルニア州法に準拠するものとします。デベロッパーおよび Google は、本契約あるいは本契約に基づくデベロッパーと Google の関係から発生または関連する法的事項の解決について、米国カリフォルニア州サンタクララ郡に所在の連邦裁判所または州立裁判所が専属管轄権を有することに合意します。上記にかかわらず、デベロッパーは、Google が任意の司法管轄区において差し止め命令による救済(または同等の緊急法的救済)を求める申し立てを行うことが認められることに同意します。 + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">上記の利用規約を読み、同意します。</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>本書の内容</h2> + <ol> + <li><a href="#sdk">Preview SDK</a></li> + <li><a href="#docs">デベロッパー ドキュメント</a></li> + <li><a href="#images">ハードウェアのシステム イメージ</a></li> + </ol> + + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + Android M Preview SDK には、アプリとプラットフォームの次期リリースで提供される新しい API とのテストに役立つ開発ツール、Android システム ファイル、ライブラリ ファイルが含まれています。 +このドキュメントでは、アプリのテスト用にダウンロードできる Preview のコンポーネントを入手する方法について説明します。 + +</p> + + +<h2 id="sdk">Preview SDK</h2> + +<p> + Preview SDK <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK マネージャー</a>経由でダウンロードできます。Preview SDK のダウンロードと設定の詳細については、<a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Set Up the Preview SDK</a> をご覧ください。 + +</p> + + +<h2 id="docs">デベロッパー ドキュメント</h2> + +<p> + デベロッパー ドキュメントのダウンロード パッケージでは、詳細な Preview の API リファレンス情報や API の比較レポートが提供されます。 +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + +<h2 id="images">ハードウェアのシステム イメージ</h2> + +<p> + これらのシステム イメージでは、テスト用に物理端末にプラットフォームのプレビュー バージョンをインストールできます。 +端末にこれらのイメージを 1 つ以上設定すると、アプリをインストールして、プラットフォームの次期バージョンでアプリがどのように動作するかをテストできます。 +端末にシステム イメージをインストールするプロセスでは、<em>端末からすべてのデータが削除</em>されるため、システム イメージのインストール前にデータをバックアップする必要があります。 + + +</p> + +<p class="warning"> + <b>警告:</b> 次の Android システム イメージはプレビュー版であり、今後変更される可能性があります。デベロッパーによるシステム イメージの使用は、Android SDK Preview 使用許諾契約に準拠するものとします。 +Android Preview システム イメージは安定したリリースではなく、お使いのコンピュータ システム、端末、データに影響を与える可能性のあるエラーや欠陥が含まれている場合があります。 + +プレビュー版の Android システム イメージは工場出荷版の OS と同等のテストを受けておらず、お使いの電話やインストールされているサービス、アンインストールの動作停止を引き起こす場合があります。 + + +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">端末にイメージをインストールする</h3> + +<p> + テスト用に端末イメージを使用するには、互換性のある端末にインストールする必要があります。次の手順に従って、システム イメージをインストールします。 + +</p> + +<ol> + <li>この一覧の中からいずれかのシステム イメージ パッケージをダウンロードして、解凍します。</li> + <li>保持するデータを端末からバックアップします。</li> + <li> +<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> + の手順に従って端末にイメージをフラッシュします。</li> +</ol> + +<p class="note"> + <strong>注:</strong> 開発用端末に Preview のシステム イメージをフラッシュすると、OTA アップデートを通じて次のプレビュー リリースに自動的にアップグレードされます。 + +</p> + +<h3 id="revertDevice">端末を工場出荷時の仕様に戻す</h3> + +<p> + Preview をアンインストールして、工場出荷時の仕様に戻すには、 +<a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> にアクセス +して、端末にフラッシュするイメージをダウンロードします。同じページの手順に従って端末にイメージをフラッシュします。 + +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/ja/preview/index.jd b/docs/html-intl/intl/ja/preview/index.jd index e44a42a9d1c2..2e84aa3bbabc 100644 --- a/docs/html-intl/intl/ja/preview/index.jd +++ b/docs/html-intl/intl/ja/preview/index.jd @@ -30,7 +30,7 @@ footer.hide=1 <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> <div class="dac-section dac-small"> diff --git a/docs/html-intl/intl/ko/index.jd b/docs/html-intl/intl/ko/index.jd index 34c14ec3780a..d95d6985a0aa 100644 --- a/docs/html-intl/intl/ko/index.jd +++ b/docs/html-intl/intl/ko/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">Android의 다음 버전을 만나볼 준비가 되셨습니까? 여러분의 앱을 Nexus 5, 6, 9 및 Player에서 테스트해보십시오. </p> @@ -32,7 +29,7 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> </div> diff --git a/docs/html-intl/intl/ko/preview/download.jd b/docs/html-intl/intl/ko/preview/download.jd index ff9dd7eab8d7..d92453ab4f5f 100644 --- a/docs/html-intl/intl/ko/preview/download.jd +++ b/docs/html-intl/intl/ko/preview/download.jd @@ -164,14 +164,15 @@ page.image=images/cards/card-download_16-9_2x.png <div id="qv"> <h2>이 문서의 내용</h2> <ol> - <li><a href="#sdk">미리 보기 SDK</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">개발자 관련 문서</a></li> <li><a href="#images">하드웨어 시스템 이미지</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> </ol> </div> </div> @@ -184,7 +185,7 @@ page.image=images/cards/card-download_16-9_2x.png </p> -<h2 id="sdk">미리 보기 SDK</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> 미리 보기 SDK는 <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>를 통해 다운로드할 수 있습니다. 미리 보기 SDK를 다운로드하고 구성하는 데 관한 자세한 정보는 <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">미리 보기 SDK 설정하기</a>를 참조하십시오. @@ -204,11 +205,11 @@ page.image=images/cards/card-download_16-9_2x.png <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -241,34 +242,34 @@ page.image=images/cards/card-download_16-9_2x.png <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/ko/preview/download_mp2.jd b/docs/html-intl/intl/ko/preview/download_mp2.jd new file mode 100644 index 000000000000..ff9dd7eab8d7 --- /dev/null +++ b/docs/html-intl/intl/ko/preview/download_mp2.jd @@ -0,0 +1,360 @@ +page.title=다운로드 +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">Android 미리 보기 SDK의 구성 요소를 다운로드하고 설치하기 전에 우선 다음과 같은 사용 약관에 동의해야 합니다. +</p> + + <h2 class="norule">사용 약관</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +이것은 Android SDK 미리 보기 라이선스 계약서입니다(이하 "라이선스 계약"). + +1. 개요 + +1.1 Android SDK 미리 보기(본 라이선스 계약에서는 "미리 보기"라고 칭하며, 구체적으로 Android 시스템 파일, 패키지 API 및 미리 보기 라이브러리 파일이 이용 가능한 경우 및 이용 가능하게 전환된 경우 이를 포함한 것을 가리킴)는 본 라이선스 계약 조건에 따라 계약자에게 사용을 허여합니다. 본 라이선스 계약은 미리 보기 사용과 관련하여 계약자와 Google 간에 법적 구속력이 있는 계약을 체결합니다. + +1.2 "Android"는 기기를 위한 Android 소프트웨어 스택을 의미합니다. 이는 http://source.android.com/ URL에 위치하며 수시로 업데이트되는 Android 오픈 소스 프로젝트에서 제공됩니다. + +1.3 "Google"은 미국 1600 Amphitheatre Parkway, Mountain View, CA 94043에 본사를 두고 있는 델라웨어주 법인인 Google Inc.를 의미합니다. + +2. 라이선스 계약에 동의 + +2.1 이 미리 보기를 사용하려면, 먼저 라이선스 계약에 동의해야 합니다. 이 라이선스 계약에 동의하지 않고 미리 보기를 사용해서는 안 됩니다. + +2.2 수락을 클릭하고/거나 미리 보기를 사용하면 본 라이선스 계약 조건에 동의하는 것으로 간주됩니다. + +2.3 미국법 또는 현재 거주 중이거나 미리 보기를 사용하는 국가를 포함하여 다른 국가의 법에 따라 미리 보기를 받는 것이 금지된 경우, 미리 보기를 사용할 수 없으며 본 라이선스 계약을 수락할 수 없습니다. + +2.4 회사 또는 단체 내에서 내부적으로 미리 보기를 사용하며 고용주 또는 기타 단체를 대신하여 본 라이선스 계약 준수에 동의하는 경우, 계약자의 고용주나 그 단체에 본 라이선스 계약에 대한 구속력을 부여할 수 있는 모든 법적 권한을 계약자가 갖고 있음을 진술하고 보증합니다. 구속력을 부여할 수 있는 법적 권한이 없을 경우, 고용주 또는 기타 단체를 대신하여 본 라이선스 계약에 동의하거나 미리 보기를 사용할 수 없습니다. + +3. Google이 허하는 미리 보기 라이선스 + +3.1 본 라이선스 계약의 조건에 따라 Google은 계약자에게 로열티 없고 양도 불가능하며 비독점적이고 2차 인가를 불허하며, 한정되고 무효화할 수 있는 미리 보기 사용 권한을 허용하여 회사 또는 조직 내에서 개인적 또는 내부적으로 사용할 수 있도록 합니다. 이는 Android 플랫폼에서 실행되는 애플리케이션을 개발할 목적으로만 사용해야 합니다. + +3.2 계약자는 SDK에 존재하는 지적 재산권을 포함한 SDK에 대한 모든 법적인 권리, 소유권 및 이익이 Google 또는 제3자에게 있음에 동의합니다 "지적 재산권"은 모든 특허법, 저작권법, 영업비밀법, 상표법상 존재하는 모든 권리 및 기타 모든 재산권을 의미합니다. Google은 계약자에게 명시적으로 부여하지 않은 모든 권리를 보유합니다. + +3.3 본 라이선스 계약에 명시적으로 허용된 용도 외에는 미리 보기를 사용할 수 없습니다. 해당 제3자 라이선스 요건이 허용하는 범위를 제외하고 계약자는 미리 보기의 일부분을 (a) 복사(백업 목적 제외), 수정, 개작, 재배포, 역컴파일, 리버스 엔지니어링, 분해하거나 이를 통해 파생물을 생성하거나 (b) 개인 컴퓨터를 제외한 모바일 단말기 또는 기타 모든 하드웨어 기기에 미리 보기의 일부를 로드하거나, 미리 보기의 일부를 다른 소프트웨어와 결합하거나 미리 보기의 일부가 통합된 일체의 소프트웨어나 기기를 배포해서는 안 됩니다. + +3.4 계약자는 미리 보기에서 파생된 소프트웨어 개발 키트의 배포, 이러한 키트 생성에 참여 또는 홍보를 포함하되 이에 국한되지 않고, Android의 단편화를 야기하는 어떠한 행동도 취하지 않을 것임에 동의합니다. + +3.5 오픈 소스 소프트웨어 라이선스에 의거한 미리 보기 구성요소의 사용, 재생산, 배포에는 본 라이선스 계약이 아닌, 해당 오픈 소스 소프트웨어 라이선스의 조건이 적용됩니다. 계약자는 허용된 모든 권한 하에서 그러한 오픈 소스 소프트웨어 라이선스에 관해 충실한 피허가자로서의 자세를 견지할 것이며 그러한 권한을 종료, 일시 중단 또는 침해하는 행위를 삼갈 것을 동의합니다. + +3.6 계약자는 Google이 제공하는 SDK의 형태 및 특성이 사전 통지 없이 변경될 수 있음에 동의하며, 이전 버전의 미리 보기에서 개발된 애플리케이션이 이후 버전의 SDK와 호환되지 않을 수 있음에 동의합니다. 계약자는 계약자 또는 사용자에게 사전 통지 없이 SDK(또는 SDK에 포함된 기능) 제공을(영구적 또는 일시적으로) 중단할 수 있는 권한이 Google에게 있음에 동의합니다. + +3.7 본 라이선스 계약은 계약자에게 Google의 상표명, 상표, 서비스 표시, 로고, 도메인 이름, 기타 독특한 브랜드 특징에 대한 사용 권한을 부여하지 않습니다. + +3.8 계약자는 SDK에 부착되어 있거나 포함되어 있는 모든 소유권 고지 사항(저작권 및 상표 고지 사항 포함)을 제거, 변경 또는 불분명하게 만들지 않을 것에 동의합니다. + +4. 계약자의 미리 보기 사용 + +4.1 Google은 본 라이선스 계약의 어떤 조항도 계약자(또는 계약자의 사용 허가자)가 미리 보기를 사용하여 개발한 소프트웨어 애플리케이션에 대한 권리, 소유권 또는 이익, 그리고 해당 애플리케이션에 존재하는 모든 지적 재산권을 부여하지 않는다는 점에 동의합니다. + +4.2 계약자는 (a) 본 라이선스 계약 그리고 (b) 모든 준거법, 규정 또는 관련 관할권 내에서 일반적으로 수용되는 관행 또는 지침(미국 또는 기타 관련 국가로/에서의 데이터 또는 소프트웨어 수출과 관련된 모든 법률 포함)에서 허용하는 용도에 한하여 미리 보기를 사용하고 애플리케이션을 작성하는 것에 동의합니다. + +4.3 계약자는 일반 대중 사용자를 대상으로 미리 보기를 사용하여 애플리케이션을 개발하는 경우, 해당 사용자의 프라이버시 및 법적 권리를 보호하는 것에 동의합니다. 사용자가 계약자에게 사용자 이름, 비밀번호 또는 기타 로그인 정보나 개인 정보를 제공하는 경우, 계약자는 제공된 정보가 자신의 애플리케이션에 제공된다는 사실을 사용자에게 알려야 하며, 반드시 법적으로 적절한 개인정보 보호정책 고지 및 보호를 해당 사용자에게 제공해야 합니다. 애플리케이션에서 사용자가 제공한 개인정보나 민감한 정보를 저장하는 경우, 이를 안전하게 처리해야 합니다. 사용자들이 애플리케이션에 Google 계정 정보를 제공하는 경우, 애플리케이션은 해당 사용자의 Google 계정에 액세스하는 목적으로만, 그리고 각 사용자가 허용한 범위 내의 한정된 목적으로만 이러한 정보를 사용해야 합니다. + +4.4 계약자는 Google 또는 기타 모든 타사의 서버, 네트워크 또는 기타 모든 재산 또는 서비스를 허가 없이 방해, 교란, 손상 또는 액세스하는 애플리케이션의 개발 또는 배포를 포함한 하등의 행위에 미리 보기를 이용하지 않을 것임을 동의합니다. + +4.5 계약자는 자신이 Android 및/또는 Android용 애플리케이션을 통해 생성, 전송 또는 표시하는 모든 데이터, 콘텐츠 또는 리소스 그리고 그로 인한 결과(Google이 입을 수 있는 모든 피해나 손실 포함)에 대해 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다. + +4.6 계약자는 본 라이선스 계약, 모든 해당 제3자 계약 또는 서비스 약관, 또는 모든 준거법 또는 규정에 의거한 계약자 의무 위반, 그리고 그로 인한 결과(Google 또는 제3자가 입을 수 있는 모든 피해나 손실 포함)에 전적으로 책임이 있다는 것(그리고 Google은 계약자 또는 모든 제3자에 대한 책임이 없다는 것)에 동의합니다. + +4.7 이 미리 보기는 현재 개발 단계에 있으며, 계약자의 테스트와 피드백은 그러한 개발 과정에 중요한 부분을 차지합니다. 미리 보기를 사용함으로써 계약자는 일부 기능의 구현은 아직 개발 중인 상태이며 미리 보기가 안정된 릴리스처럼 완벽하게 기능할 것이라 믿고 사용해서는 안 된다는 점을 인지하는 것으로 간주합니다. 계약자는 이 미리 보기를 사용한 애플리케이션을 공개적으로 배포 또는 배송하지 않기로 동의합니다. 이 미리 보기는 공식 Android SDK가 출시된 이후에는 더 이상 지원되지 않기 때문입니다. + +5. 계약자의 개발자 자격 증명 + +5.1 계약자는 Google이 발급했거나 자신이 선택한 모든 개발자 자격 증명에 대한 기밀성을 유지할 책임이 있으며 계약자의 개발자 자격 증명 하에 개발된 모든 애플리케이션에 대한 전적인 책임이 있음에 동의합니다. + +6. 개인정보 보호정책 및 정보 + +6.1 미리 보기를 지속적으로 혁신하고 개선하기 위해, Google은 고유 식별자, 관련 IP 주소, 소프트웨어 버전 번호, 미리 보기에서 사용 중인 도구 및/또는 서비스와 도구의 사용법에 대한 정보를 포함하되 이에 국한되지 않고 소프트웨어에서 특정 사용량 통계 정보를 수집할 수 있습니다. 그러한 정보를 수집하기 전에 미리 보기는 계약자에게 이를 통지하고 동의를 구할 것입니다. 계약자가 동의하지 않을 경우 정보를 수집하지 않습니다. + +6.2 수집된 데이터는 모두 취합된 형태로 미리 보기 개선을 위해 검토되며, Google의 개인정보 보호정책에 따라 유지 관리됩니다. 이 정보는 http://www.google.com/policies/privacy/를 참조하십시오. + +7. 제3자 애플리케이션 + +7.1 제3자가 개발한 애플리케이션을 실행하거나 제3자가 제공한 데이터, 콘텐츠 또는 리소스에 액세스하기 위해 미리 보기를 사용하는 경우, 계약자는 Google이 그러한 애플리케이션, 데이터, 콘텐츠 또는 리소스에 대한 책임이 없음에 동의합니다. 계약자는 그러한 제3자 애플리케이션을 통해 자신이 액세스한 모든 데이터, 콘텐츠 또는 리소스에 대한 책임은 그것을 만든 사람에게 있음에 동의합니다. 또한 계약자가 그러한 모든 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스를 사용하거나 액세스함으로써 비롯된 모든 피해나 손실에 대한 책임이 Google에게 없음에 동의합니다. + +7.2 그러한 제3자 애플리케이션을 통해 계약자에게 제공된 데이터, 콘텐츠 그리고 리소스는 그것을 제공한 제공자(또는 제공자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 유의해야 합니다. 그러한 데이터, 콘텐츠 또는 리소스(전부 또는 일부)를 수정, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다. 단, 관련 소유자로부터 그러한 작업을 수행해도 좋다는 허락을 받은 경우에는 예외입니다. + +7.3 계약자는 그러한 제3자 애플리케이션, 데이터, 콘텐츠 또는 리소스의 사용은 계약자와 관련 제3자 간에 체결하는 별도의 계약 조건의 적용을 받는다는 것을 인정합니다. + +8. Google API 사용 + +8.1 Google Data API + +8.1.1 Google에서 데이터를 검색하기 위해 API를 사용하는 경우, 그러한 데이터가 Google 또는 데이터를 제공하는 당사자(또는 당사자를 대신하는 기타 개인 또는 기업)가 소유한 지적 재산권에 의해 보호될 수 있음을 인정합니다. 그러한 API를 사용하는 경우, 추가적인 서비스 약관의 적용을 받을 수 있습니다. 관련 서비스 약관에 허용되지 않은 한, 그러한 데이터(전부 또는 일부)를 변경, 임대, 리스, 대여, 판매, 배포하거나 이를 기반으로 파생물을 생성해서는 안 됩니다. + +8.1.2 Google에서 사용자 데이터를 검색하기 위해 API를 사용하는 경우, 계약자는 사용자로부터 명시적인 동의를 얻은 경우에 한하여, 그리고 해당 사용자가 허용한 범위 내의 한정된 목적으로만 데이터를 검색해야 합니다. + +9. 라이선스 계약 종료 + +9.1 본 라이선스 계약은 계약자 또는 Google에 의해 아래와 같은 조건 하에 종료될 때까지 계속 적용됩니다. + +9.2 계약자가 라이선스 계약을 종료하고자 하는 경우, 미리 보기 및 관련 개발자 자격 증명 일체의 사용을 중단하는 것으로 그러한 의사를 피력할 수 있습니다. + +9.3 Google은 언제든 이유 여하를 불문하고 계약자에게 통고하여 라이선스 계약을 종료할 수 있습니다. + +9.4 본 라이선스 계약은 통보 또는 여타의 행위 없이도 자동으로 종료됩니다. 이에 해당되려면 다음과 같은 조건이 수반되어야 합니다. +(A) Google이 계약자가 거주하는 국가 또는 계약자가 서비스를 사용하는 지역에서 미리 보기 또는 미리 보기의 특정 부분 제공을 중지하는 경우 및 +(B) Google이 Android SDK의 최종 릴리스 버전을 발행하는 경우. + +9.5 본 라이선스 계약이 종료되면 라이선스 계약으로 계약자에게 허용한 라이선스가 취소되며, 이에 따라 계약자는 미리 보기 사용을 즉시 모두 중단해야 하고 제 10, 11, 12 및 14절의 조항이 기한 없이 유지됩니다. + +10. 면책 조항 + +10.1 계약자는 미리 보기 이용에 대한 위험 부담이 전적으로 본인에게 있으며, Google이 일체의 보증 없이 미리 보기를 "있는 그대로" 그리고 "이용 가능한" 상태로 제공한다는 것을 분명히 이해하고 동의합니다. + +10.2 미리 보기 이용 및 이용 과정에서 다운로드하거나 얻게 되는 모든 자료를 사용하는 것은 본인의 재량에 따르며 이에 대한 위험 부담이 전적으로 본인에게 있으며, 그러한 사용으로 인해 발생하는 컴퓨터 시스템 또는 다른 기기의 손상 또는 데이터 손실에 대한 책임은 전적으로 본인에게 있습니다. 전술한 조항을 제한하지 않는 범위 내에서 계약자는 미리 보기가 안정된 릴리스가 아니며 오류, 결함 및 보안 취약성이 포함되어 있을 수 있어 그 결과로 중대한 손상을 유발할 수 있다는 점을 이해하는 것으로 간주합니다. 여기에는 계약자의 컴퓨터 시스템 또는 기타 기기의 완전하고 돌이킬 수 없는 손실도 포함됩니다. + +10.3 더 나아가, Google은 상품성, 특정 목적에 대한 적합성 및 비침해의 묵시적 보증 등을 포함하되 이에 국한되지 않고 명시적이든 묵시적이든 모든 종류의 보증 및 조건을 명시적으로 부인합니다. + +11. 책임 한계 + +11.1 계약자는 계약자에게 발생할 수 있는 직접, 간접, 부수적, 특별, 결과적 또는 징벌적 손해에 대해 그 어떤 책임 이론에 근거해서도 Google, 해당 자회사, 계열사 및 사용 허가자가 어떠한 책임도 지지 아니함을 분명히 이해하고 동의합니다. 이러한 손해에는 Google 또는 해당 대리자가 이러한 손실 발생 가능성에 대해 통지를 받았거나 이러한 사항을 인식했는지에 상관없이 모든 데이터 손실이 포함됩니다. + +12. 면책 + +12.1 법률에 의해 허용되는 최대한의 범위 안에서 계약자는 (a) 미리 보기 사용, (b) 계약자가 미리 보기에서 개발한 일체의 애플리케이션에서 초래된 모든 사람의 저작권, 상표, 영업비밀, 트레이드 드레스, 특허 또는 기타 지적 재산권의 침해, 또는 어떤 사람의 명예를 훼손하거나 초상권 또는 개인정보 보호정책을 침해함 또는 (C)계약자 본인이 본 라이선스 계약을 위반함으로써 발생하거나 생기는 모든 청구, 조치, 소송 또는 절차, 그리고 모든 손실, 책임, 손해, 경비(합리적인 변호사 비용 포함)로부터 Google을 옹호하고, 면책시키고, Google이 손해를 입지 않도록 하는 데 동의합니다. + +13. 라이선스 계약 변경 + +13.1 미리 보기의 새로운 버전을 배포할 때, Google은 본 라이선스 계약의 내용을 변경할 수 있습니다. 그러한 변경이 이뤄진 경우, Google은 미리 보기가 제공되는 웹사이트에 새로운 라이선스 계약 버전을 게재할 것입니다. + +14. 일반 법적 조건 + +14.1 본 라이선스 계약은 계약자와 Google 간의 모든 법적 계약을 구성하며, 계약자의 미리 보기 사용을 규제하고(별도의 서면 계약을 통해 Google이 계약자에게 제공하는 모든 서비스는 제외), 미리 보기와 관련하여 이전에 계약자와 Google이 맺은 모든 계약을 완전히 대체합니다. + +14.2 계약자는 Google이 라이선스 계약에 포함된(또는 관련 법률에 의해 Google이 향유하는) 법적 권리 또는 구제수단을 행사하거나 집행하지 않더라도, Google이 권리를 공식적으로 포기한 것으로 간주하지 않으며, Google이 계속해서 그러한 권리 또는 구제수단을 이용할 수 있음에 동의합니다. + +14.3 본 라이선스 계약의 조항이 무효라고 이 사안에 관한 판결을 할 수 있는 관할권을 가진 법원이 판결할 경우, 그 조항은 라이선스 계약의 나머지 조항에 영향을 미치지 않는 형태로 라이선스 계약에서 제거됩니다. 본 라이선스 계약의 나머지 조항은 여전히 유효하며 집행 가능합니다. + +14.4 계약자는 Google이 모회사가 되는 회사 그룹에 속한 각 회사가 본 라이선스 계약의 제3수익자이며, 그러한 다른 회사들이 그들에게 이익(또는 유리한 권리)을 부여하는 본 라이선스 계약의 모든 조항을 직접 행사하고 적용할 수 있는 권리를 가진다는 데 동의합니다. 그 외에는 다른 어떤 개인이나 회사도 본 라이선스 계약의 제3수익자가 될 수 없습니다. + +14.5 수출 규제. 미리 보기는 미국의 수출법과 규정의 적용을 받습니다. 계약자는 미리 보기에 적용되는 모든 국내 및 국제 수출법과 규정을 준수해야 합니다. 그러한 법에는 수출 대상국, 최종 사용자 및 최종 용도에 대한 제한이 포함됩니다. + +14.6 계약자 또는 Google은 상대 당사자의 사전 서면 승인 없이 본 라이선스 계약에서 부여된 권리를 제3자에게 양도하거나 이전할 수 없으며, 그러한 승인 없이 이루어진 양도 시도는 모두 무효입니다. 계약자는 Google의 사전 승인 없이 본 라이선스 계약 상의 책임 또는 의무를 위임할 수 없습니다. + +14.7 본 라이선스 계약, 그리고 본 라이선스 계약 상의 계약자와 Google의 관계는 법률 조항 간의 충돌과는 무관하게 캘리포니아주법에 의한 규제를 받습니다. 계약자와 Google은 본 라이선스 계약으로부터 발생하는 모든 법적 문제 해결을 캘리포니아주 산타 클라라(Santa Clara) 카운티 내에 소재한 전속 관할 법원에 의뢰하는 것에 동의합니다. 위 규정에도 불구하고, 계약자는 Google이 여전히 모든 관할권에서 강제 구제책(또는 동등한 유형의 긴급 법적 구제)을 신청할 수 있음에 동의합니다. + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">본인은 상기 사용 약관을 읽었으며 이에 동의합니다.</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>이 문서의 내용</h2> + <ol> + <li><a href="#sdk">미리 보기 SDK</a></li> + <li><a href="#docs">개발자 관련 문서</a></li> + <li><a href="#images">하드웨어 시스템 이미지</a></li> + </ol> + + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + Android M 미리 보기 SDK에는 개발 도구, Android 시스템 파일 및 라이브러리 파일이 포함되어 있어 앱을 테스트하고 플랫폼의 다음 릴리스에 도입되는 새 API를 테스트하는 데 유용합니다. + 이 문서에서는 미리 보기의 다운로드할 수 있는 구성 요소를 가져와 앱을 테스트하는 방법에 대해 설명합니다. + +</p> + + +<h2 id="sdk">미리 보기 SDK</h2> + +<p> + 미리 보기 SDK는 <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>를 통해 다운로드할 수 있습니다. 미리 보기 SDK를 다운로드하고 구성하는 데 관한 자세한 정보는 <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">미리 보기 SDK 설정하기</a>를 참조하십시오. + +</p> + + +<h2 id="docs">개발자 관련 문서</h2> + +<p> + 개발자 관련 문서 다운로드 패키지에서는 자세한 API 참조 정보와 미리 보기에 대한 API 차이점 보고서를 제공합니다. +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + + +<h2 id="images">하드웨어 시스템 이미지</h2> + +<p> + 이러한 시스템 이미지를 사용하면 물리적인 기기에서 플랫폼의 미리 보기 버전을 설치하여 테스트할 수 있게 해줍니다. + 이러한 이미지 중 한 가지로 기기를 구성하면, 앱을 설치하고 테스트하여 앱이 플랫폼의 다음 버전에서 어떤 성능을 보일지 확인할 수 있습니다. + 기기에 시스템 이미지를 설치하는 과정은<em>기기에서 모든 데이터를 제거하므로</em>, 시스템 이미지를 설치하기에 앞서 데이터를 백업하는 것이 좋습니다. + + +</p> + +<p class="warning"> + <b>경고:</b> 다음 Android 시스템 이미지는 미리 보기이며 사정에 따라 변동될 수 있습니다. 이러한 시스템 이미지를 사용할 때에는 Android SDK 미리 보기 라이선스 계약을 따라야 합니다. + Android 미리 보기 시스템 이미지는 안정된 릴리스가 아니며, 오류나 결함이 들어있을 수 있고 이 때문에 컴퓨터 시스템, 기기 및 데이터에 손상을 초래할 수 있습니다. + + 미리 보기 Android 시스템 이미지는 공장 OS와 같은 테스트를 거치며 전화기 및 설치된 서비스와 애플리케이션의 작동이 중단되는 결과를 낳을 수 있습니다. + + +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">기기에 이미지 설치</h3> + +<p> + 기기 이미지를 테스트용으로 사용하려면, 이를 호환되는 기기에 설치해야만 합니다. 시스템 이미지를 설치하려면 아래의 지침을 따르십시오. + +</p> + +<ol> + <li>여기 목록에 나열된 시스템 이미지 중 하나를 다운로드하여 압축을 해제합니다.</li> + <li>기기에서 보존하고자 하는 데이터를 모두 백업합니다.</li> + <li>이미지를 기기에 플래시하려면 <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>에 있는 지침을 따릅니다. + +</li> +</ol> + +<p class="note"> + <strong>참고:</strong> 일단 개발 기기에 미리 보기 시스템 이미지를 플래시하고 나면 이것은 OTA(over-the-air) 업데이트를 통해 다음 미리 보기 릴리스에 맞춰 자동으로 업그레이드됩니다. + +</p> + +<h3 id="revertDevice">기기를 공장 사양으로 되돌리기</h3> + +<p> + 미리 보기의 설치를 제거하고 기기를 공장 사양으로 되돌리고자 하는 경우, <a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a>를 방문하여 기기에 플래시하고자 하는 이미지를 다운로드하십시오. + + 해당 페이지에 있는 지침을 따라 기기에 이미지를 플래시하면 됩니다. + +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/ko/preview/index.jd b/docs/html-intl/intl/ko/preview/index.jd index 9d0e040e379c..badb9f6095aa 100644 --- a/docs/html-intl/intl/ko/preview/index.jd +++ b/docs/html-intl/intl/ko/preview/index.jd @@ -29,7 +29,7 @@ footer.hide=1 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> <div class="dac-section dac-small"> diff --git a/docs/html-intl/intl/pt-br/index.jd b/docs/html-intl/intl/pt-br/index.jd index 24dd2fefa369..4d0a39e6ed15 100644 --- a/docs/html-intl/intl/pt-br/index.jd +++ b/docs/html-intl/intl/pt-br/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">Prepare-se para a próxima versão do Android. Teste os aplicativos no Nexus 5, 6, 9 e Player. </p> @@ -31,7 +28,7 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 Comece!</a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> </div> diff --git a/docs/html-intl/intl/pt-br/preview/download.jd b/docs/html-intl/intl/pt-br/preview/download.jd index 12ef19446111..80685f9d008b 100644 --- a/docs/html-intl/intl/pt-br/preview/download.jd +++ b/docs/html-intl/intl/pt-br/preview/download.jd @@ -164,14 +164,15 @@ Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença <div id="qv"> <h2>Neste documento</h2> <ol> - <li><a href="#sdk">Preview SDK</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">Documentação do desenvolvedor</a></li> <li><a href="#images">Imagens do sistema de hardware</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> </ol> </div> </div> @@ -184,7 +185,7 @@ Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença </p> -<h2 id="sdk">Preview SDK</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> O Preview SDK está disponível para download no <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>. Para obter mais informações @@ -204,11 +205,11 @@ Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -241,34 +242,34 @@ para fins de teste. Ao configurar um dispositivo com uma dessas imagens, é poss <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/pt-br/preview/download_mp2.jd b/docs/html-intl/intl/pt-br/preview/download_mp2.jd new file mode 100644 index 000000000000..12ef19446111 --- /dev/null +++ b/docs/html-intl/intl/pt-br/preview/download_mp2.jd @@ -0,0 +1,360 @@ +page.title=Downloads +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">Antes de fazer o download ou instalar componentes do Android Preview + SDK, você deve concordar com os seguintes termos e condições.</p> + + <h2 class="norule">Termos e condições</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +Este é o contrato de licença do Android SDK Preview (o “Contrato de Licença”). + +1. Introdução + +1.1 O Android SDK Preview (que este Contrato de licença chama de "Preview", incluindo especificamente os arquivos de sistema do Android, APIs integradas e arquivos da biblioteca Preview, se e quando estiverem disponíveis) é licenciado por meio da concordância com os termos deste contrato. O Contrato de licença forma um vínculo contratual legal entre o contratante e a Google em relação ao uso do Preview. + +1.2 "Android" se refere à pilha de software do Android para dispositivos, conforme disponibilizado no Projeto de código aberto do Android, localizado no URL a seguir: http://source.android.com/, atualizado periodicamente. + +1.3 "Google" refere-se à Google Inc, uma corporação de Delaware, com sede em 1600 Amphitheatre Parkway, Mountain View, CA 94043, Estados Unidos. + +2. Aceitação do Contrato de Licença + +2.1 A fim de usar o Preview, é necessário concordar com este Contrato de licença. O uso do Preview é proibido àqueles que não concordam com este Contrato de licença. + +2.2 Ao clicar em aceitar e/ou usar o Preview, você concorda com os termos do Contrato de licença + +2.3 É proibido o uso do Preview e a aceitação deste contrato pelo indivíduo que tenha impedimento legal sobre o recebimento do Preview sob as leis dos Estados Unidos ou de outros países, incluindo o país de residência ou no qual usa o Preview. + +2.4 Se for usar o Preview internamente na empresa ou organização, você deverá concordar com o vínculo com este contrato em nome do empregador ou de outra entidade e declarar e garantir que tem total autoridade legal para tanto. Se você não tem a autoridade necessária, não deve concordar com este contrato nem usar o Preview em nome do empregador ou de outra entidade. + +3. Licença do Preview da Google + +3.1 Sujeito aos termos do Contrato de licença, a Google confere uma licença limitada, revogável, livre de taxas, intransmissível, não sub-licenciável e não exclusiva para o uso apenas do Preview, pessoal ou internamente dentro da sua empresa ou organização, para fins de desenvolvimento de aplicativos executados na plataforma do Android. + +3.2 Você concorda que a Google ou terceiros detêm todos os direitos legais, títulos e interesses relativos ao Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam no Preview. "Direitos de propriedade intelectual" se referem a todo e qualquer direito sob as leis de patentes, de direitos autorais, de segredo comercial, de marca registrada e todos os outros direitos de propriedade. A Google reserva todos os direitos não conferidos expressamente a você. + +3.3 O uso do Preview não é autorizado para qualquer finalidade não expressamente permitida por este Contrato de licença. Salvo na extensão exigida por licenças aplicáveis de terceiros, é proibido: (a) copiar (exceto para fins de cópia de segurança), modificar, adaptar, redistribuir, descompilar, fazer engenharia reversa, desmontar ou criar trabalhos derivados do Preview ou qualquer parte dele; ou (b) carregar qualquer parte do Preview em um aparelho celular ou outro dispositivo de hardware, exceto em computador pessoal, combinar qualquer parte do Preview com outros softwares ou distribuir qualquer software ou dispositivo que contenha uma parte do Preview. + +3.4 Você concorda que não tomará quaisquer medidas que possam causar ou resultar em fragmentação do Android, incluindo, sem limitar-se, a distribuição e a participação na criação ou na promoção, sob quaisquer formas, de um conjunto de desenvolvimento de software derivado do Preview. + +3.5 O uso, a reprodução e a distribuição de componentes do Preview licenciado sob licença de software de código aberto são regidos exclusivamente pelos termos daquela licença de software de código aberto, e não por este Contrato de licença. Você concorda em manter uma licença em bom estado para as licenças de software de código aberto sob todos os direitos concedidos e deter quaisquer ações que possam limitar, suspender ou romper tais direitos. + +3.6 Você concorda que a forma e a natureza do SDK que a Google fornece podem mudar sem aviso prévio e que as versões futuras do SDK podem ser incompatíveis com aplicativos desenvolvidos em versões anteriores do SDK. Você concorda que a Google pode cessar (permanente ou temporariamente) o fornecimento do Preview (ou quaisquer recursos dentro dele) a você ou a usuários em geral sob critério exclusivo da Google, sem aviso prévio. + +3.7 Nada neste Contrato de licença confere o direito de uso de quaisquer nomes comerciais, marcas comerciais, marcas de serviço, logomarcas, nomes de domínios e outros recursos de marcas especiais da Google. + +3.8 Você concorda que não removerá, ocultará nem alterará quaisquer observações de direitos de propriedade (incluindo observações de direitos autorais e de marcas registradas) que possam estar afixadas ou contidas no Preview. + +4. Uso do Preview por você + +4.1 A Google compreende que nada no Contrato de licença dá a ela direito, título nem interesse no usuário (ou em seus licenciadores), sob o presente Contrato de licença, no que tange ao desenvolvimento de aplicativos de software através do uso do Preview, incluindo quaisquer direitos de propriedade intelectual que subsistam nos referidos aplicativos. + +4.2 Você concorda em usar o Preview e desenvolver aplicativos somente para as finalidades permitidas por (a) este Contrato de licença e (b) quaisquer leis, normas, diretrizes geralmente aceitas ou orientações aplicáveis nas jurisdições relevantes (incluindo quaisquer leis acerca da exportação e da importação de dados ou softwares nos Estados Unidos ou em outros países relevantes). + +4.3 Você concorda que, se usar o Preview para o desenvolvimento de aplicativos, deverá proteger a privacidade e os direitos legais destes usuários. Se nomes de usuário, senhas ou outras informações de acesso ou informações pessoais forem fornecidos ao aplicativo, deve-se informá-los de que tais dados estarão disponíveis para o aplicativo, além de fornecer observações de privacidade e proteção legalmente adequadas a esses usuários. Se o aplicativo armazenar informações pessoais ou confidenciais fornecidas pelos usuários, deve fazê-lo com segurança. Se o usuário fornecer informações da conta do Google, o aplicativo poderá usar essas informações exclusivamente para acessar a conta da Google do usuário quando houver autorização para fazê-lo e para os fins limitados pela autorização. + +4.4 Você concorda que não se envolverá em qualquer atividade com o Preview, incluindo o desenvolvimento e a distribuição de um aplicativo que interfira, perturbe, danifique ou acesse, de modo não autorizado, servidores, redes ou outras propriedades ou serviços da Google ou qualquer outro terceiro. + +4.5 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) quaisquer dados, conteúdo ou recursos que criar, transmitir ou exibir por meio do Android e/ou de aplicativos do Android e pelas consequências que suas ações (incluindo perda ou dano que a Google possa sofrer) podem gerar. + +4.6 Você concorda que é exclusivamente responsável por (e que a Google não tem qualquer responsabilidade com você ou terceiro) qualquer violação das obrigações exigidas neste Contrato de licença, qualquer contrato ou termos de serviço aplicáveis a terceiros, qualquer lei ou norma aplicável e pelas consequências (incluindo a perda ou dano que a Google ou qualquer terceiro possa sofrer) de quaisquer violações. + +4.7 O Preview está em desenvolvimento e o seu teste e feedback são uma parte importante deste processo. Ao usar o Preview, você está ciente de que a implementação de alguns recursos ainda estão em desenvolvimento e que não se deve confiar que o Preview tem a funcionalidade completa de uma versão estável. Você concorda em não distribuir nem enviar publicamente quaisquer aplicativos usando este Preview, pois ele não será mais suportado após o lançamento oficial do Android SDK. + +5. Suas credenciais de desenvolvedor + +5.1 Você é responsável pela manutenção da confidencialidade de quaisquer credenciais de desenvolvedor que possam ser emitidas pela Google ou escolhidas por você e será o único responsável por todos os aplicativos que forem desenvolvidos sob suas credenciais de desenvolvedor. + +6. Privacidade e informações + +6.1 A fim de inovar e aprimorar continuamente o Preview, a Google pode coletar certas estatísticas de uso do software, incluindo, sem limitar-se, um identificador exclusivo, endereço IP associado, número de versão do software e informações sobre quais ferramentas e/ou serviços no Preview estão sendo usados e como estão sendo usados. Antes de coletar quaisquer dessas informações, o Preview o notificará e buscará seu consentimento. Se você recusar, as informações não serão coletadas. + +6.2 Os dados coletados são examinados coletivamente para aprimorar o Preview e são mantidos em conformidade com a Política de privacidade da Google acessível em http://www.google.com/policies/privacy/. + +7. Aplicativos de terceiros + +7.1 Ao usar o Preview para executar aplicativos desenvolvidos por terceiros ou que acessam dados, conteúdo ou recursos fornecidos por terceiros, você concorda que a Google não é responsável por tais aplicativos, dados, conteúdo ou recursos. Você compreende que quaisquer dados, conteúdo ou recursos passíveis de aceitação por meio de tais aplicativos de terceiros imputam responsabilidade exclusiva ao indivíduo que os originou. A Google não é responsável por qualquer perda ou dano que possa ocorrer como resultado do uso ou acesso de quaisquer aplicativos, dados, conteúdo ou recursos de terceiros. + +7.2 Você deve estar ciente de que os dados, conteúdo e recursos apresentados a você por aplicativos de terceiros podem ser protegidos pelos direitos de propriedade intelectual de posse dos fornecedores (ou de outras pessoas ou empresas em seus nomes). Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados com base nestes dados, conteúdo ou recursos (na totalidade ou em parte), salvo se houver permissão explícita especificada pelos respectivos detentores de direitos. + +7.3 Você reconhece que o uso de tais aplicativos, dados, conteúdo ou recursos de terceiros pode estar sujeito a termos adicionais entre você e o terceiro em questão. + +8. Uso de APIs da Google + +8.1 APIs da Google + +8.1.1 Ao usar qualquer API para recuperar dados da Google, você reconhece que eles podem ser protegidos por direitos de propriedade intelectual de posse da Google ou dos terceiros que fornecem os dados (ou de pessoas ou empresas em nomes deles). O uso de tal API pode estar sujeito a termos de serviço adicionais. Não é permitido modificar, alugar, arrendar, emprestar, vender, distribuir nem criar trabalhos derivados baseados nesses dados (na totalidade ou em parte), salvo se permitido pelos termos de serviço pertinentes. + +8.1.2 Se você usar qualquer API para recuperar dados de um usuário a partir da Google, reconhece e concorda que deve recuperar dados somente com consentimento explícito do usuário e somente quando, e para os fins limitados aos quais, o usuário conceder permissão para fazê-lo. + +9. Rescisão do Contrato de licença + +9.1 O Contrato de licença continuará a se aplicar até que ocorra uma rescisão sua ou da Google, como definido abaixo. + +9.2 Caso queira rescindir o Contrato de licença, você pode fazer isto cessando o uso do Preview e de qualquer credencial de desenvolvedor relevante. + +9.3 A Google pode, a qualquer momento, rescindir o Contrato de licença, com ou sem causa, com uma notificação. + +9.4 O Contrato de licença será encerrado automaticamente sem aviso ou outras ações na ocorrência de: +(A) a Google interromper o fornecimento do Preview ou de determinadas partes do Preview aos usuários no país em que você reside ou de onde o serviço é usado; e +(B) a Google emitir uma versão de lançamento final do Android SDK. + +9.5 Quando o Contrato de licença é rescindido, a licença concedida a você no Contrato de licença é finalizada, todo o uso do Preview será interrompido e as provisões dos parágrafos 10, 11, 12 e 14 deverão permanecer indefinidamente. + +10. EXCLUSÕES + +10.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE O RISCO DO USO DO PREVIEW É EXCLUSIVAMENTE SEU E QUE O PREVIEW É FORNECIDO NA FORMA EM QUE SE ENCONTRA E COMO DISPONIBILIZADO, SEM GARANTIA DE QUALQUER TIPO DA GOOGLE. + +10.2 O USO DO PREVIEW E DE QUALQUER MATERIAL BAIXADO OU OBTIDO DE OUTRO MODO PELO USO DO PREVIEW ESTÁ A SEU CRITÉRIO E RISCO E VOCÊ É O ÚNICO RESPONSÁVEL POR QUALQUER DANO AO SEU SISTEMA OPERACIONAL OU OUTRO DISPOSITIVO OU PELA PERDA DE DADOS QUE RESULTEM DE TAL USO. SEM LIMITAR OS PRECEDENTES, VOCÊ ENTENDE QUE O PREVIEW NÃO É UMA VERSÃO ESTÁVEL E QUE PODE CONTER ERROS, DEFEITOS E VULNERABILIDADES DE SEGURANÇA QUE PODEM RESULTAR EM DANOS SIGNIFICANTES, INCLUINDO A PERDA IRRECUPERÁVEL OU COMPLETA DO USO DO SISTEMA DO COMPUTADOR OU DE OUTROS DISPOSITIVOS. + +10.3 A GOOGLE EXCLUI EXPRESSAMENTE TODAS AS GARANTIAS E CONDIÇOES DE QUALQUER TIPO, EXPRESSAS OU IMPLÍCITAS, INCLUINDO, MAS NÃO LIMITADO A, GARANTIAS E CONDIÇÕES DE COMERCIALIZAÇÃO IMPLÍCITAS, ADEQUAÇÃO A UMA FINALIDADE PARTICULAR E A NÃO VIOLAÇÃO. + +11. LIMITAÇÃO DE RESPONSABILIDADE + +11.1 VOCÊ COMPREENDE E CONCORDA EXPRESSAMENTE QUE A GOOGLE, SUAS SUBSIDIÁRIAS, AFILIADAS E SEUS LICENCIADORES NÃO SERÃO RESPONSABILIZADOS POR VOCÊ SOB QUALQUER TEORIA DE RESPONSABILIDADE POR QUAISQUER DANOS, SEJAM ELES DIRETOS, INDIRETOS, INCIDENTAIS, ESPECIAIS, CONSEQUENCIAIS OU DE EXEMPLO QUE POSSAM INCORRER, INCLUINDO QUALQUER PERDA DE DADOS, INDEPENDENTE DE AVISO À GOOGLE OU A SEUS REPRESENTANTES OU DA NECESSIDADE DE AVISO SOBRE A POSSIBILIDADE DA INCORRÊNCIA DE TAIS PERDAS. + +12. Indenização + +12.1 Ao limite máximo permitido por lei, você concorda em defender, indenizar e isentar a Google, suas afiliadas e respectivos conselheiros, diretores, empregados e agentes com relação a todas e quaisquer reivindicações, ações, processos ou procedimentos, bem como todas e quaisquer perdas, responsabilidades, danos, custos e despesas (incluindo honorários advocatícios) decorrentes ou provenientes de: (a) seu uso do Preview, (b) qualquer aplicativo desenvolvido no Preview que infrinja direitos de propriedade intelectual de qualquer pessoa, difame qualquer pessoa ou viole seus direitos de publicidade ou privacidade e (c) qualquer não cumprimento deste Contrato de licença. + +13. Mudanças no Contrato de licença + +13.1 A Google pode realizar mudanças no Contrato de licença à medida que distribui novas versões do Preview. Quando essas mudanças forem realizadas, a Google fará uma nova versão do Contrato de licença disponível no site em que o Preview estiver disponível. + +14. Termos legais gerais + +14.1 Esse Contrato de licença constitui o contrato legal integral entre você e a Google e rege o uso do Preview (excluindo quaisquer serviços que a Google possa fornecer a você sob um contrato escrito em separado), e substitui inteiramente quaisquer contratos anteriores entre você e a Google em relação ao Preview. + +14.2 Você concorda que, se a Google não exercer nem impetrar qualquer direito ou recurso legal que esteja contido no Contrato de licença (ou que a Google detenha direitos nos termos de qualquer lei aplicável), não se considerará esse fato como uma renúncia formal aos direitos da Google e esses direitos ou recursos continuarão disponíveis à Google. + +14.3 Se qualquer tribunal de justiça que tiver a competência para decidir sobre esse tema determinar que qualquer cláusula do Contrato de licença é inválida, tal cláusula será removida do contrato sem afetar as cláusulas restantes ou sua vigência. As cláusulas restantes do Contrato de licença continuarão válidas e obrigatórias. + +14.4 Você reconhece e concorda que cada membro do grupo de empresas das quais a Google é a empresa controladora deve ser beneficiário terceiro do Contrato de licença e que essas outras empresas terão o poder de aplicar diretamente, e apoiar-se em, qualquer cláusula do Contrato de licença que confira um direito (ou direitos em favor) deles. Além disso, nenhuma outra pessoa nem empresa deve ser beneficiário terceiro do Contrato de licença. + +14.5 RESTRIÇÕES DE EXPORTAÇÃO. O PREVIEW ESTÁ SUJEITO ÀS LEIS E NORMAS DE EXPORTAÇÃO DOS ESTADOS UNIDOS. VOCÊ DEVE CUMPRIR TODAS AS LEIS E NORMAS DOMÉSTICAS E INTERNACIONAIS QUE SE APLICAREM AO PREVIEW. ESSAS LEIS INCLUEM RESTRIÇÕES SOBRE DESTINOS, USUÁRIOS FINAIS E USO FINAL. + +14.6 O Contrato de licença não pode ser atribuído nem transferido por você sem a aprovação prévia por escrito da Google. Qualquer tentativa de atribuição sem a aprovação será inválida. Você não deve delegar as próprias responsabilidades ou obrigações nos termos do Contrato de licença sem aprovação prévia por escrito da Google. + +14.7 O Contrato de licença e sua relação com a Google nos termos do contrato serão regidos pelas leis do estado da Califórnia sem considerar conflitos de disposições legais. Você e a Google concordam em se submeter à competência exclusiva dos tribunais localizados na comarca de Santa Clara, Califórnia, para dirimir quaisquer questões legais decorrentes do Contrato de licença. Não obstante a isso, você concorda que a Google continua habilitada a impetrar medidas cautelares (ou mecanismo legal urgente equivalente) em qualquer jurisdição. + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">Li e concordo com todos os termos e condições expressos acima</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Neste documento</h2> + <ol> + <li><a href="#sdk">Preview SDK</a></li> + <li><a href="#docs">Documentação do desenvolvedor</a></li> + <li><a href="#images">Imagens do sistema de hardware</a></li> + </ol> + + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + O Android M Preview SDK inclui ferramentas de desenvolvimento, arquivos de sistema do Android e arquivos da biblioteca + para ajudar você a testar o aplicativo e novas APIs da próxima versão da plataforma. Este documento + descreve como adquirir os componentes disponíveis para download da prévia para o teste do aplicativo. +</p> + + +<h2 id="sdk">Preview SDK</h2> + +<p> + O Preview SDK está disponível para download no <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>. Para obter mais informações + sobre o download e a configuração do Preview SDK, consulte <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Configuração do Preview SDK</a>. +</p> + + +<h2 id="docs">Documentação do desenvolvedor</h2> + +<p> + O pacote de download da documentação do desenvolvedor fornece informações de referência de API detalhadas e um relatório de diferença de API para a prévia. +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + + +<h2 id="images">Imagens do sistema de hardware</h2> + +<p> + Essas imagens do sistema permitem que você instale uma versão de prévia da plataforma em um dispositivo físico +para fins de teste. Ao configurar um dispositivo com uma dessas imagens, é possível instalar e testar o aplicativo + para verificar o seu desempenho na próxima versão da plataforma. O processo de instalação de uma imagem do sistema + em um dispositivo <em>remove todos os dados do dispositivo</em>. Portanto, deve-se realizar um backup dos dados + antes de instalar uma imagem do sistema. +</p> + +<p class="warning"> + <b>Aviso:</b> as seguintes imagens do sistema Android são prévias e estão sujeitas a alterações. O uso + dessas imagens do sistema são governadas pelo Contrato de licença do Android SDK Preview. As imagens do sistema do Android Preview + não são versões estáveis e podem conter erros e defeitos que podem resultar + em danos aos sistemas do computador, aos dispositivos e aos dados. As imagens do sistema Android Preview + não estão sujeitas ao mesmo teste do sistema operacional de fábrica e podem fazer com que o telefone e aplicativos e os serviços + instalados parem de funcionar. +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">Instalar uma imagem no dispositivo</h3> + +<p> + Para usar uma imagem de dispositivo para testes, deve-se instalá-lo em um dispositivo compatível. Siga + as instruções abaixo para instalar uma imagem de sistema. +</p> + +<ol> + <li>Faça o download e descompacte um dos pacotes de imagem do sistema listados aqui.</li> + <li>Faça um backup dos dados do dispositivo que deseja preservar.</li> + <li>Siga as instruções em + <a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> + para programar em flash a imagem no dispositivo.</li> +</ol> + +<p class="note"> + <strong>Observação:</strong> ao programar em flash a imagem do sistema de prévia no dispositivo de desenvolvimento, + ele é atualizado automaticamente com o próximo lançamento da prévia por meio de atualizações over-the-air (OTA). +</p> + +<h3 id="revertDevice">Reverter um dispositivo para as especificações de fábrica</h3> + +<p> + Caso queira desinstalar a prévia e reverter o dispositivo para as especificações de fábrica, acesse + <a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> e + faça o download da imagem que deseja programar em flash no dispositivo. Siga as instruções nesta página + para programar em flash a imagem no dispositivo. +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/pt-br/preview/index.jd b/docs/html-intl/intl/pt-br/preview/index.jd index 172b21103be7..69367181e508 100644 --- a/docs/html-intl/intl/pt-br/preview/index.jd +++ b/docs/html-intl/intl/pt-br/preview/index.jd @@ -29,7 +29,7 @@ footer.hide=1 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> <div class="dac-section dac-small"> diff --git a/docs/html-intl/intl/ru/index.jd b/docs/html-intl/intl/ru/index.jd index 3fe65eaf4efc..3da0b9e23360 100644 --- a/docs/html-intl/intl/ru/index.jd +++ b/docs/html-intl/intl/ru/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">Подготовьтесь к выходу следующей версии платформы Android. Протестируйте ваши приложения на устройствах Nexus 5, 6, 9 и Player. </p> @@ -33,7 +30,7 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> </div> diff --git a/docs/html-intl/intl/ru/preview/download.jd b/docs/html-intl/intl/ru/preview/download.jd index 13872d1d6e13..9afc62bb4ce4 100644 --- a/docs/html-intl/intl/ru/preview/download.jd +++ b/docs/html-intl/intl/ru/preview/download.jd @@ -164,13 +164,14 @@ page.image=images/cards/card-download_16-9_2x.png <div id="qv"> <h2>Содержание документа</h2> <ol> - <li><a href="#sdk">SDK Preview</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">Документация для разработчиков</a></li> <li><a href="#images">Системные образы оборудования</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> </ol> </div> </div> @@ -183,7 +184,7 @@ page.image=images/cards/card-download_16-9_2x.png </p> -<h2 id="sdk">SDK Preview</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> Загрузить SDK Preview можно с помощью <a href="{@docRoot}tools/help/sdk-manager.html">менеджера SDK Android</a>. Дополнительные сведения @@ -203,11 +204,11 @@ page.image=images/cards/card-download_16-9_2x.png <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -240,34 +241,34 @@ page.image=images/cards/card-download_16-9_2x.png <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/ru/preview/download_mp2.jd b/docs/html-intl/intl/ru/preview/download_mp2.jd new file mode 100644 index 000000000000..13872d1d6e13 --- /dev/null +++ b/docs/html-intl/intl/ru/preview/download_mp2.jd @@ -0,0 +1,359 @@ +page.title=Загрузки +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">Прежде чем приступить к загрузке и установке компонентов пакета SDK Android Preview, +примите следующие положения и условия.</p> + + <h2 class="norule">Положения и условия</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +Это лицензионное соглашение для пакета SDK Android Preview (далее «Лицензионное соглашение»). + +1. Введение + +1.1. Лицензия на пакет SDK Android Preview (далее по тексту настоящего Лицензионного соглашения – «Preview», который включает системные файлы Android, пакеты API-интерфейсов и файлы библиотеки Preview, если такие доступны) передается в соответствии с положениями настоящего Лицензионного соглашения. Настоящее Лицензионное соглашение является юридически обязывающим договором между компанией Google и любым лицом, использующим Preview. + +1.2. В настоящем Лицензионном соглашении термин «Android» означает набор программного обеспечения Android для устройств, предлагаемый к использованию в рамках проекта Android Open Source Project, который доступен на веб-сайте http://source.android.com/ (сведения, размещенные на этом сайте, могут периодически обновляться). + +1.3. Под термином «Google» понимается корпорация Google Inc., главный офис которой находится по адресу 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States (США). + +2. Принятие лицензионного соглашения + +2.1. Использование Preview возможно только после принятия условий настоящего Лицензионного соглашения. Запрещается использовать Preview, если вы не согласны с указанными в настоящем документе условиями и положениями. + +2.2. Нажатие кнопки принятия условий и/или использование Preview означает, что вы согласны с положениями настоящего Лицензионного соглашения. + +2.3. Вы не вправе использовать Preview и принимать условия данного Лицензионного соглашения, если по законам США или иных стран, включая страну вашего проживания или использования Preview, запрещается передавать Preview в ваш адрес. + +2.4. Если вы используете Preview в рамках своей компании или организации, вы соглашаетесь взять на себя обязательства по соблюдению настоящего Лицензионного соглашения от имени своего работодателя или другого юридического лица, и вы тем самым подтверждаете и гарантируете, что обладаете полными юридическими полномочиями связать вашего работодателя или иное подобное юридическое лицо обязательствами по настоящему Лицензионному соглашению. Если вы не обладаете необходимыми полномочиями, вы не вправе принимать указанные в настоящем документе условия и положения или использовать Preview от имени вашего работодателя или другого юридического лица. + +3. Лицензия на Preview от Google + +3.1. В соответствии с условиями настоящего Лицензионного соглашения Google предоставляет вам ограниченную, бесплатную и неэксклюзивную лицензию без права передачи и подлежащую отмене, на использование Preview, лично или в рамках своей компании или организации, исключительно в целях разработки приложений для платформы Android. + +3.2. Вы соглашаетесь с тем, что Google или третьим сторонам принадлежат все юридические и имущественные права, а также правовой интерес в отношении Preview, в том числе любые права на объекты интеллектуальной собственности, которые имеются в Preview. Термин «Права на интеллектуальную собственность» означает все возможные права в рамках патентного права, авторского права, закона о коммерческой тайне, закона о товарных знаках, а также иные возможные имущественные права. Google оставляет за собой все права, не предоставленные вам в явном виде. + +3.3. Вам запрещается использовать Preview в любых целях, которые однозначно не определены в настоящем Лицензионном соглашении. За исключением случаев, предусмотренных применимыми сторонними лицензиями, вам запрещается: (a) копировать (кроме случаев резервного копирования), изменять, адаптировать, повторно распространять, декомпилировать, осуществлять инженерный анализ, деассемблировать или создавать производные элементы Preview или иной его части; а также (b) загружать любую часть Preview в мобильные телефоны или иные устройства, помимо персонального компьютера, объединять любые части Preview с другим программным обеспечением, распространять любое программное обеспечение или устройства, содержащие части Preview. + +3.4. Вы соглашаетесь с тем, что не будете предпринимать никаких действий, которые прямо или косвенно могут привести к фрагментированию платформы Android, включая помимо прочего распространение набора средств разработки программного обеспечения, полученного из Preview, участие в создании таких средств и содействие их продвижению в любой форме. + +3.5. Использование, воспроизведение и распространение компонентов Preview, на которые распространяется лицензия на программное обеспечение с открытым исходным кодом, регулируются исключительно положениями и условиями такой лицензии на программное обеспечение с открытым исходным кодом, а не настоящим Лицензионным соглашением. Вы соглашаетесь обеспечивать хорошую репутацию получателя лицензии в отношении таких лицензии на программное обеспечение с открытым исходным кодом в рамках всех предоставленных ему прав, а также не допускать каких-либо действий, которые могут привести к аннулированию, приостановлению или нарушению таких прав + +3.6. Вы соглашаетесь с тем, что форма и содержание Preview , предоставляемого Google, могут быть изменены без предварительного уведомления, а также с тем, что будущие версии Preview могут оказаться несовместимыми с приложениями, разработанными в предыдущих версиях Preview. Вы соглашаетесь с тем, что Google вправе по собственному усмотрению и без предварительного уведомления прекратить (временно или навсегда) предоставление Preview (или любых функций в составе Preview) вам или пользователям. + +3.7. Ни одна из частей настоящего Лицензионного соглашения не предусматривает предоставления вам права использовать любые торговые наименования, товарные знаки, знаки обслуживания, логотипы, имена доменов или иные отличительные фирменные знаки, принадлежащие Google. + +3.8. Вы соглашаетесь с тем, что обязуетесь не удалять, не скрывать или не изменять любые уведомления об имущественных правах (включая уведомления об авторских правах и товарных знаках), которые могут сопровождать Preview или содержаться в нем. + +4. Использование Preview + +4.1. Компания Google выражает согласие с тем, что ни по какому положению настоящего Лицензионного соглашения не получает от вас (или ваших лицензиаров) каких-либо юридических и имущественных прав, а также правового интереса в отношении любых программных приложений, разработанных вами с помощью Preview, включая любые права на объекты интеллектуальной собственности, которые имеются в таких приложениях. + +4.2. Вы соглашаетесь использовать Preview и создавать приложения исключительно в целях, предусмотренных (a) настоящим Лицензионным соглашением и (b) любым применимым законом, нормативным актом или общепринятыми правилами или рекомендациями в соответствующей юрисдикции (включая любые законы, касающиеся экспорта данных или программного обеспечения из США или иных соответствующих стран, а также импорта в них). + +4.3. Вы соглашаетесь с тем, что при использовании Preview для разработки приложений вы обязуетесь обеспечивать конфиденциальность и защищать юридические права пользователей. В случае, если пользователи предоставляют вам свои имена, пароли или иные данные для входа либо свои персональные данные, вы обязуетесь уведомить пользователей о том, что такая информация будет присутствовать в вашем приложении, и вы также обязуетесь предоставить пользователям юридически соответствующие уведомление о конфиденциальности и средства правовой защиты. Если в вашем приложении хранится личная или конфиденциальная информация, предоставленная пользователями, вы обязуетесь обеспечить ее надлежащую защиту. Если пользователь предоставляет вам сведения о своей учетной записи Google, то ваше приложение может использовать такую информацию для доступа к учетной записи Google пользователя только при условии, что пользователь предоставил вам разрешение на это, и только в тех целях, которые обозначил пользователь. + +4.4. Вы соглашаетесь с тем, что обязуетесь не использовать Preview для любого рода деятельности, в том числе для разработки или распространения приложений, в целях нарушения работы и повреждения серверов, сетей или иной собственности или служб Google или любой третьей стороны. + +4.5. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любые данные, содержимое или ресурсы, которые вы создаете, передаете или демонстрируете посредством Android и/или приложений для Android, а также за любые последствия ваших действий, связанных с этим (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google). + +4.6. Вы соглашаетесь с тем, что несете единоличную ответственность (и признаете, что компания Google не несет ответственности ни перед вами, ни перед любой третьей стороной) за любое несоблюдение обязательств по настоящему Лицензионному соглашению, обязательств по любому применимому договору с третьей стороной или предусмотренных Условиями и положениями, за нарушение любых применимых законов или нормативных актов, а также за любые последствия ваших действий, связанных с таким нарушением (в том числе за любые убытки и любой ущерб, которые могут быть причинены Google). + +4.7 Preview находится на стадии разработки, поэтому ваши отзывы и результаты тестирования являются важной частью процесса разработки. Используя Preview, вы признаете, что реализация некоторых функций по-прежнему находится на этапе разработки и вам не следует рассчитывать на полную функциональность стабильной версии. Вы соглашаетесь не распространять или предоставлять любые приложения, использующие Preview, поскольку поддержка Preview будет прекращена после выпуска официальной версии пакета SDK Android. + +5. Ваши учетные данные разработчика + +5.1. Вы соглашаетесь с тем, что несете ответственность за обеспечение конфиденциальности любых учетных данных разработчика, которые компания Google может вам предоставить или которые вы можете самостоятельно выбрать, а также с тем, что вы несете единоличную ответственность за все приложения, разработанные с использованием ваших учетных данных разработчика. + +6. Конфиденциальность и личная информация + +6.1. В целях постоянного совершенствования и улучшения Preview компания Google вправе собирать определенные статистические данные об использовании программного обеспечения, включая уникальный идентификатор, связанный IP-адрес, номер версии программного обеспечения, а также сведения об используемых в Preview инструментах и/или службах и способах их применения. Перед тем как любые из таких данных будут отправлены в Google, в Preview отобразится соответствующее уведомление с просьбой дать свое согласие. В случае вашего отказа предоставить такие сведения соответствующие данные собираться не будут. + +6.2. Собранные данные изучаются в обобщенном виде с целью улучшения Preview и хранятся в соответствии с Политикой конфиденциальности Google, которая опубликована на веб-сайте по адресу http://www.google.com/policies/privacy/. + +7. Сторонние приложения + +7.1. Если вы используете Preview для запуска приложений, разработанных третьими сторонами или получающих доступ к данным, содержимому или ресурсам, предоставляемым третьей стороной, вы соглашаетесь с тем, что Google не несет ответственности за такие приложения, данные, содержимое или ресурсы. Вы осознаете, что единоличную ответственность за все данные, содержимое или ресурсы, доступ к которым вы можете получить посредством таких приложений третьих сторон, несет лицо, предоставившее их, а также то, что Google не несет ответственности за любые убытки или любой ущерб, которые могут возникнуть в результате использования вами любых таких сторонних приложений, данных, содержимого или ресурсов и в результате обращения к ним. + +7.2. Вы должны быть осведомлены о том, что данные, содержимое и ресурсы, предоставляемые вам посредством таких сторонних приложений, могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие предоставляющим их лицам (или иным лицам либо компаниям от их имени). Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные, содержимое или ресурсы (полностью или частично), а также создавать на их основе производные элементы, если у вас нет на это разрешения от соответствующих владельцев. + +7.3. Вы осознаете, что использование вами таких сторонних приложений, данных или ресурсов может регулироваться отдельными условиями, заключенными между вами и соответствующей третьей стороной. + +8. Использование API-интерфейсов Google + +8.1. API-интерфейсы для получения данных Google. + +8.1.1. В случае использования вами любых API для получения данных из Google вы осознаете, что такие данные могут быть защищены правами на объекты интеллектуальной собственности, принадлежащие Google или предоставляющим их сторонам (или иным лицам либо компаниям от их имени). Использование вами подобных API может регулироваться дополнительными Условиями использования. Вам запрещается изменять, сдавать в аренду, передавать, продавать, распространять такие данные (полностью или частично), а также создавать на их основе производные элементы, если это не разрешено соответствующими Условиями использования. + +8.1.2. Если вы используете какие-либо API-интерфейсы для получения данных пользователя из Google, вы осознаете и соглашаетесь с тем, что вы обязуетесь получать такие данные исключительно с прямого согласия пользователя и только в тех целях, которые обозначил пользователь. + +9. Прекращение действия Лицензионного соглашения + +9.1 Настоящее Лицензионное соглашение остается в силе до тех пор, пока его действие не будет прекращено вами или Google, как указано ниже. + +9.2. Если вы желаете прекратить действие настоящего Лицензионного соглашения, вы вправе сделать это, прекратив использование Preview и любых соответствующих учетных данных разработчика. + +9.3. Google вправе в любое время прекратить действие настоящего Лицензионного соглашения, отправив предварительное уведомление или без него. + +9.4 Действие настоящего Лицензионного соглашения автоматически прекращается без предварительного уведомления или выполнения иных действий сразу после любого из следующих событий: +(A) компания Google прекращает предоставление Preview или определенных частей Preview пользователям на территории страны, в которой вы проживаете или используете услуги компании; +(B) компания Google выпускает окончательную версию SDK Android. + +9.5 В случае прекращения действия настоящего Лицензионного соглашения прекращается действие лицензии, предоставленной в рамках Лицензионного соглашения, и вам следует незамедлительно прекратить любое использование Preview, тогда как положения, изложенные в разделах 10, 11, 12 и 14 продолжают действовать бессрочно. + +10. ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ + +10.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО ВЫ ИСПОЛЬЗУЕТЕ PREVIEW ИСКЛЮЧИТЕЛЬНО НА СВОЙ СТРАХ И РИСК И ЧТО PREVIEW ПРЕДОСТАВЛЯЕТСЯ ВАМ НА УСЛОВИЯХ «КАК ЕСТЬ» И «КАК ДОСТУПНО» БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ СО СТОРОНЫ КОМПАНИИ GOOGLE. + +10.2 ИСПОЛЬЗОВАНИЕ ВАМИ PREVIEW И ЗАГРУЗКА ЛЮБЫХ МАТЕРИАЛОВ И ИХ ПОЛУЧЕНИЕ ИНЫМ СПОСОБОМ С ПОМОЩЬЮ PREVIEW ВЫПОЛНЯЕТСЯ ПО ВАШЕМУ СОБСТВЕННОМУ УСМОТРЕНИЮ НА СВОЙ СТРАХ И РИСК. ВСЯ ОТВЕТСТВЕННОСТЬ ЗА ЛЮБОЙ УЩЕРБ, ПРИЧИНЕННЫЙ ВАШЕЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ ИЛИ ДРУГОМУ ОБОРУДОВАНИЮ, А ТАКЖЕ ЗА ПОТЕРЮ ДАННЫХ, ВЫЗВАННУЮ ПОДОБНЫМ ИСПОЛЬЗОВАНИЕМ, ВОЗЛАГАЕТСЯ НА ВАС. НЕ ОГРАНИЧИВАЯ ВЫШЕСКАЗАННОЕ, ВЫ ПОНИМАЕТЕ, ЧТО PREVIEW НЕ ЯВЛЯЕТСЯ СТАБИЛЬНЫМ ВЫПУСКОМ И МОЖЕТ СОДЕРЖАТЬ ОШИБКИ, ДЕФЕКТЫ И УЯЗВИМОСТИ В СИСТЕМЕ БЕЗОПАСНОСТИ, КОТОРЫЕ МОГУТ ПРИВЕСТИ К СЕРЬЕЗНЫМ ПОВРЕЖДЕНИЯМ, ВКЛЮЧАЯ ПОЛНУЮ И БЕЗВОЗВРАТНУЮ ПОТЕРЮ РАБОТОСПОСОБНОСТИ ВАШЕГО КОМПЬЮТЕРА ИЛИ ИНОГО УСТРОЙСТВА. + +10.3. КОМПАНИЯ GOOGLE БЕЗОГОВОРОЧНО ОТКАЗЫВАЕТСЯ ОТ ЯВНЫХ И НЕЯВНЫХ ГАРАНТИЙ И УСЛОВИЙ ЛЮБОГО РОДА, ВКЛЮЧАЯ ПОМИМО ПРОЧЕГО НЕЯВНЫЕ ГАРАНТИИ И УСЛОВИЯ ТОВАРНОГО СОСТОЯНИЯ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ СОБСТВЕННОСТИ. + +11. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ + +11.1. ВЫ ЧЕТКО ОСОЗНАЕТЕ И БЕЗОГОВОРОЧНО СОГЛАШАЕТЕСЬ С ТЕМ, ЧТО КОМПАНИЯ GOOGLE, ЕЕ ДОЧЕРНИЕ И АФФИЛИРОВАННЫЕ КОМПАНИИ И ЛИЦЕНЗИАРЫ НЕ НЕСУТ ПЕРЕД ВАМИ ОТВЕТСТВЕННОСТИ, НЕЗАВИСИМО ОТ ЕЕ ПРИЧИНЫ И ВИДА, ЗА КАКИЕ-ЛИБО ПРЯМЫЕ, КОСВЕННЫЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ, ОПОСРЕДОВАННЫЕ И ШТРАФНЫЕ УБЫТКИ, ПОНЕСЕННЫЕ ВАМИ, ВКЛЮЧАЯ ПОТЕРЮ ДАННЫХ, ВНЕ ЗАВИСИМОСТИ ОТ ТОГО, БЫЛА ЛИ КОМПАНИЯ GOOGLE ИЛИ ЕЕ ПРЕДСТАВИТЕЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКОГО УЩЕРБА. + +12 Освобождение от ответственности + +12.1. В максимально допустимой законом степени вы соглашаетесь защищать, освобождать от ответственности и возможных претензий компанию Google, ее аффилированные компании и их соответствующих руководителей, служащих, сотрудников и агентов от всех возможных правовых требований, действий, судебных исков или разбирательств, а также от всех возможных убытков, обязательств, ущерба, издержек и расходов (включая обоснованные вознаграждения для адвокатов), возникающих в связи (a) с использованием вами Preview, (b) любыми приложениями, разрабатываемыми вами с помощью Preview и нарушающими любые права на объекты интеллектуальной собственности любого лица, а также порочащие любое лицо либо нарушающие права таких лиц на публичность и конфиденциальность, а также (c) в связи с любым несоблюдением вами положений настоящего Лицензионного соглашения. + +13. Изменения в Лицензионном соглашении + +13.1. Компания Google вправе вносить изменения в настоящее Лицензионное соглашение по мере выхода новых версий Preview. При внесении изменений Google создает новую версию Лицензионного соглашения и размещает ее на веб-сайте, на котором размещен Preview. + +14. Общие правовые условия + +14.1. Настоящее Лицензионное соглашение составляет полный текст юридического соглашения между вами и компанией Google, регулирует использование вами Preview (за исключением услуг, которые Google предоставляет на основании отдельного письменного соглашения) и полностью заменяет собой все предыдущие соглашения между вами и компанией Google в отношении Preview. + +14.2. Вы соглашаетесь с тем, что отсутствие каких-либо действий или судебных исков со стороны Google, направленных на соблюдение каких-либо правовых норм или исполнение средств правовой защиты, установленных настоящим Лицензионным соглашением (или которыми Google обладает в соответствии с каким-либо действующим законом), не означает отказ компании Google от своих прав и не препятствует компании Google использовать эти права или средства защиты. + +14.3. Если какой-либо судебный орган, уполномоченный рассматривать этот вопрос, признает недействительность какого-либо положения данного Лицензионного соглашения, то соответствующее положение будет исключено из Лицензионного соглашения с сохранением действия всех остальных его положений. Остальные положения Лицензионного соглашения по-прежнему будут действовать, и их соблюдение может обеспечиваться в судебном порядке. + +14.4. Вы признаете и соглашаетесь с тем, что все участники группы компаний, среди которых Google является материнской компанией, являются сторонними бенефициарами Лицензионного соглашения и что эти компании имеют право пользоваться привилегиями (или правами), предоставляемыми по настоящему Лицензионному соглашению, и напрямую требовать их соблюдения в судебном порядке. Все остальные физические и юридические лица не являются сторонними бенефициарами Лицензионного соглашения. + +14.5. ОГРАНИЧЕНИЯ НА ЭКСПОРТ. ИСПОЛЬЗОВАНИЕ PREVIEW РЕГУЛИРУЕТСЯ ЗАКОНАМИ И НОРМАТИВНЫМИ АКТАМИ США, КАСАЮЩИМИСЯ ЭКСПОРТА. ВЫ ОБЯЗУЕТЕСЬ СОБЛЮДАТЬ ВСЕ НАЦИОНАЛЬНЫЕ И МЕЖДУНАРОДНЫЕ ЗАКОНЫ ОБ ЭКСПОРТЕ, ПРИМЕНИМЫЕ К PREVIEW. ДАННЫЕ ЗАКОНЫ НАЛАГАЮТ ОГРАНИЧЕНИЯ НА РЕГИОНЫ, КРУГ ЛИЦ И СПОСОБ КОНЕЧНОГО ИСПОЛЬЗОВАНИЯ. + +14.6. Вы не вправе переуступать либо передавать права, предоставляемые по настоящему Лицензионному соглашению, без предварительного письменного согласия Google; любые попытки переуступки без такого согласия считаются недействительными. Вы обязуетесь не делегировать свои полномочия или обязательства по настоящему Лицензионному соглашению без предварительного письменного согласия Google. + +14.7. Лицензионное соглашение, а также взаимоотношения между вами и компанией Google в рамках настоящего Лицензионного соглашения регулируются законодательством штата Калифорния за исключением его норм коллизионного права. Вы и компания Google признаете, что урегулирование любых правовых вопросов, связанных с данным Лицензионным соглашением, относится исключительно к юрисдикции судов округа Санта-Клара, штат Калифорния. Несмотря на это, вы соглашаетесь с тем, что компания Google по-прежнему имеет право обращаться за наложением судебного запрета (или за получением аналогичного вида неотложной судебной защиты) в суды любой юрисдикции. + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">Я прочитал(а) и принимаю изложенные выше положения и условия</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>Содержание документа</h2> + <ol> + <li><a href="#sdk">SDK Preview</a></li> + <li><a href="#docs">Документация для разработчиков</a></li> + <li><a href="#images">Системные образы оборудования</a></li> + </ol> + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + В состав SDK Android M Preview входят инструменты для разработки, системные файлы Android и файлы библиотеки, призванные +помочь вам в тестировании ваших приложений и новых API-интерфейсов, которые будут реализованы в предстоящем выпуске платформы. В этом документе +рассказывается, как загрузить необходимые компоненты Preview для тестирования ваших приложений. +</p> + + +<h2 id="sdk">SDK Preview</h2> + +<p> + Загрузить SDK Preview можно с помощью <a href="{@docRoot}tools/help/sdk-manager.html">менеджера SDK Android</a>. Дополнительные сведения +о загрузке и настройке SDK Preview представлены в статье <a href="{@docRoot}preview/setup-sdk.html#downloadSdk">Настройка SDK Preview</a>. +</p> + + +<h2 id="docs">Документация для разработчиков</h2> + +<p> + В пакете документации для разработчиков, который доступен для загрузки, представлены подробные сведения об API-интерфейсах, а также о различиях между API-интерфейсами для Preview. +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + + +<h2 id="images">Системные образы оборудования</h2> + +<p> + С помощью этих системных образов можно установить предварительную версию платформы на физическое устройство для +тестирования. Используя один из этих образов для настройки устройства, вы можете установить и протестировать ваше приложение, чтобы узнать, как оно будет работать в будущей версии +платформы. В процессе установки системного образа +<em>на устройстве удаляются все данные</em>, поэтому перед установкой образа обязательно сделайте резервное копирование данных. + +</p> + +<p class="warning"> + <b>Предупреждение.</b> Перечисленные ниже системные образы Android являются предварительными и могут быть изменены. Использование вами +этих образов регулируется Лицензионным соглашением на использование пакета SDK Android Preview. Системные образы предварительной версии Android +не являются стабильными и могут содержать ошибки и дефекты, +способные повредить ваши компьютеры, устройства и данные. Системные образы предварительной версии Android не проходят такое же тестирование, +как заводская ОС. Поэтому в результате использования этих образов ваш телефон и установленные на нем приложения +и службы могут перестать работать. +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">Установка образа на устройство</h3> + +<p> + Чтобы воспользоваться образом устройства для тестирования, установите его на совместимое устройство. Следуйте +инструкциям по установке системного образа. +</p> + +<ol> + <li>Загрузите и распакуйте один из указанных выше пакетов с системным образом.</li> + <li>Создайте резервные копии данных, которые хотите сохранить.</li> + <li>Следуйте инструкциям, приведенным на сайте +<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a>, +чтобы прошить ваше устройство с использованием выбранного образа.</li> +</ol> + +<p class="note"> + <strong>Примечание.</strong> После прошивки устройства для разработки с использованием системного образа с предварительной версией платформы +она будет автоматически обновлена до следующего выпуска Preview по беспроводной сети. +</p> + +<h3 id="revertDevice">Сброс параметров устройства до заводских настроек</h3> + +<p> + Чтобы удалить Preview и восстановить заводские настройки устройства, перейдите на сайт +<a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> +и загрузите образ, который требуется использовать для прошивки. Следуйте инструкциям, приведенным на странице, +чтобы прошить ваше устройство с использованием выбранного образа. +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/ru/preview/index.jd b/docs/html-intl/intl/ru/preview/index.jd index 138a5a6efd04..18174a9f8d6a 100644 --- a/docs/html-intl/intl/ru/preview/index.jd +++ b/docs/html-intl/intl/ru/preview/index.jd @@ -29,7 +29,7 @@ Player. Узнайте о новых возможностях:— <strong>р </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> <div class="dac-section dac-small"> diff --git a/docs/html-intl/intl/zh-cn/index.jd b/docs/html-intl/intl/zh-cn/index.jd index bbd7fbe7fb37..cdd81cde0596 100644 --- a/docs/html-intl/intl/zh-cn/index.jd +++ b/docs/html-intl/intl/zh-cn/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">准备迎接 Android 的下一版本。在 Nexus 5、 6、9 和 Player 中测试应用。 </p> @@ -31,7 +28,7 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 开始!</a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </a> </div> </div> diff --git a/docs/html-intl/intl/zh-cn/preview/download.jd b/docs/html-intl/intl/zh-cn/preview/download.jd index ba5249a46029..c7ba9df279e7 100644 --- a/docs/html-intl/intl/zh-cn/preview/download.jd +++ b/docs/html-intl/intl/zh-cn/preview/download.jd @@ -164,13 +164,14 @@ page.image=images/cards/card-download_16-9_2x.png <div id="qv"> <h2>本文内容</h2> <ol> - <li><a href="#sdk">预览版 SDK</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">开发者文档</a></li> <li><a href="#images">硬件系统映像</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> </ol> </div> </div> @@ -183,7 +184,7 @@ page.image=images/cards/card-download_16-9_2x.png </p> -<h2 id="sdk">预览版 SDK</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> 预览版 SDK 可通过 <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK 管理器</a>下载。如需了解有关下载和配置预览版 SDK 的详细信息,请参阅<a href="{@docRoot}preview/setup-sdk.html#downloadSdk">设置预览版 SDK</a>。 @@ -203,11 +204,11 @@ page.image=images/cards/card-download_16-9_2x.png <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -240,34 +241,34 @@ Android 预览版系统映像未经过与出厂操作系统相同的测试,可 <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/zh-cn/preview/download_mp2.jd b/docs/html-intl/intl/zh-cn/preview/download_mp2.jd new file mode 100644 index 000000000000..ba5249a46029 --- /dev/null +++ b/docs/html-intl/intl/zh-cn/preview/download_mp2.jd @@ -0,0 +1,359 @@ +page.title=下载 +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">在下载和安装预览版 Android SDK 的组件之前,您必须同意下列条款和条件。 +</p> + + <h2 class="norule">条款和条件</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +本协议是 Android SDK 预览版许可协议(以下称为“许可协议”)。 + +1. 简介 + +1.1 Android SDK 预览版(在本许可协议中简称为“预览版”,具体包括 Android 系统文件、封装 API 以及预览版库文件(若可用))依据本许可协议的条款授权您使用。本许可协议在您与 Google 之间就您对“预览版”的使用构成具有法律约束力的合约。 + +1.2 “Android”是指以 Android 开源项目(项目网址为 http://source.android.com/,其内容会不时更新)名义提供、面向设备的 Android 软件栈。 + +1.3 “Google”是指 Google Inc.,是一家特拉华州公司,主要营业地位于:1600 Amphitheatre Parkway, Mountain View, CA 94043, United States。 + +2. 接受许可协议 + +2.1 要使用“预览版”,您必须先同意本许可协议。如果您不接受本许可协议,则不得使用“预览版”。 + +2.2 点击接受并/或使用“预览版”,即表示您特此同意本许可协议的条款。 + +2.3 如果依照美国或其他国家/地区(包括您居住或您使用“预览版”所在的国家/地区)的法律,您被禁止获取“预览版”,则您不得使用“预览版”,也不得接受本许可协议。 + +2.4 如果您将在贵公司或组织内部使用“预览版”,则您同意代表您的雇主或其他实体接受本许可协议的约束,并且您表示并保证您拥有完全的合法授权令您的雇主或上述实体受本许可协议的约束。如果您不具备必要的授权,则不得代表您的雇主或其他实体接受本许可协议或使用“预览版”。 + +3. Google 预览版许可 + +3.1 Google 依据本许可协议的条款授予您个人或在贵公司或组织内部有限使用“预览版”的免版税、不可转让、非独占性、不可再授权且可撤销的许可,其用途仅限开发在 Android 平台上运行的应用。 + +3.2 您同意 Google 或第三方拥有“预览版”中存在或相关的全部合法权利、所有权和利益,包括“预览版”中存在的任何知识产权。“知识产权”是指根据专利法、版权法、商业机密法、商标法享有的任何及全部权利,以及其他任何及全部专有权利。Google 保留所有未明确授予您的权利。 + +3.3 您不得将“预览版”用于本许可协议未明确允许的任何用途。您不得:(a) 对“预览版”或“预览版”的任何部分进行复制(备份用途除外)、修改、改编、再分发、反编译、逆向工程、反汇编或创建其衍生品;或 (b) 将“预览版”的任何部分加载到移动手持终端或除个人计算机之外的任何其他硬件设备上,将“预览版”的任何部分与其他软件合并,或者发行任何融入“预览版”某一部分的软件或设备。 + +3.4 您同意您将不会进行任何可能引起或导致 Android 碎片化的行动,包括但不限于分发、参与创建或以任何方式推广从“预览版”衍生的软件开发工具包。 + +3.5 对于依据开源软件许可授权的“预览版”组件,其使用、复制和分发仅受该开源软件许可条款的制约,不受本许可协议的约束。您同意在依照被授予的所有权利作为被许可方期间,在遵守此类开源软件许可协议方面始终保持良好的信誉,并避免进行任何可能导致终止、暂停或违反此类权利的行动。 + +3.6 您同意 Google 所提供“预览版”的形式和性质可随时发生变更,而无需事先通知您,并且未来的“预览版”版本可能会与在之前的“预览版”版本上开发的应用不兼容。您同意 Google 可单方面决定在未事先通知您的情况下全面停止(永久性或暂时性)向您或用户提供“预览版”(或“预览版”内的任何功能)。 + +3.7 本许可协议内没有任何条款授予您使用 Google 的任何商品名、商标、服务标志、徽标、域名或其他独特品牌特征的权利。 + +3.8 您同意您不会移除、遮盖或篡改“预览版”上可能贴有或“预览版”内可能包含的任何专有权利声明(包括版权声明和商标声明)。 + +4. 您对“预览版”的使用 + +4.1 Google 同意本许可协议中的任何条款均未授予 Google 从您(或您的许可方)处获取您依照本许可协议使用“预览版”开发的任何软件应用中存在或与其相关的权利、所有权或利益,包括这些应用中存在的任何知识产权。 + +4.2 您同意只出于 (a) 本许可协议和 (b) 相关管辖区域内任何适用法律、法规或公认惯例或准则(包括有关向美国或其他相关国家/地区出口数据或软件或从美国或其他相关国家/地区进口数据或软件的任何法律)所允许的目的而使用“预览版”和编写应用。 + +4.3 您同意,如果您使用“预览版”开发应用,您将会保护用户的隐私权和合法权利。如果用户向您提供用户名、密码或其他登录信息或个人信息,您必须确保用户知晓这些信息将供您的应用使用,并且您必须为这些用户提供足以满足法律要求的隐私声明和保护。如果您的应用存储由用户提供的个人信息或敏感信息,其存储方式必须安全。如果用户向您提供 Google 帐户信息,您的应用只能在用户允许时出于用户所许可的有限目的使用该信息访问用户的 Google 帐户。 + +4.4 您同意您不会利用“预览版”从事任何干扰、中断、损坏或以未经授权方式访问 Google 或任何第三方的服务器、网络或其他财产或服务的Activity(包括应用的开发或分发)。 + +4.5 您同意您对通过 Android 和/或 Android 应用创建、传输或显示的任何数据、内容或资源以及您的行为所导致的后果(包括 Google 可能遭受的任何损失或损害)负全责(Google 在上述方面对您或任何第三方不承担任何责任)。 + +4.6 您同意您为违反本许可协议、任何适用的第三方合约或服务条款或任何适用法律或法规下的义务以及任何上述违规行为所导致的后果(包括 Google 或任何第三方可能遭受的任何损失或损害)负全责(Google 在上述方面对您或任何第三方不承担任何责任)。 + +4.7 “预览版”正在开发中,您的测试和反馈是开发过程的重要环节。使用“预览版”,即表示您承认某些功能仍在开发实现之中,您不应期望“预览版”具备稳定版本的全部功能。您同意不使用此“预览版”公开发布或发运任何应用,因为此“预览版”在 Android SDK 正式发行之后将不再受支持。 + +5. 您的开发者凭据 + +5.1 您同意,对于 Google 可能向您发放或可能由您自行选择的任何开发者凭据,您有责任保持其机密性,并且您对以您的开发者凭据名义开发的所有应用负全责。 + +6. 隐私权和信息 + +6.1 为持续创新和改进“预览版”,Google 可能会从软件收集某些使用统计数据,包括但不限于唯一标识符、关联的 IP 地址、软件的版本号以及有关软件使用了“预览版”中哪些工具和/或服务及其使用方式的信息。在收集任何上述信息之前,“预览版”都会通知您并征求您的同意。如果您拒绝同意,我们将不会收集这些信息。 + +6.2 我们会对收集的数据进行汇总调查,以便改进“预览版”,并会按照 Google 的隐私政策(网址为 http://www.google.com/policies/privacy/)维护数据。 + +7. 第三方应用 + +7.1 如果您使用“预览版”运行由第三方开发或访问由第三方提供的数据、内容或资源的应用,您同意 Google 对这些应用、数据、内容或资源不承担任何责任。您理解,您通过上述第三方应用可能访问到的所有数据、内容或资源由其提供者负全责,Google 对您因使用或访问其中任何第三方应用、数据、内容或资源而遭受的任何损失或损害不承担任何责任。 + +7.2 您应知晓,通过此类第三方应用提供给您的数据、内容和资源可能受提供商(或代表他们的其他人员或公司)所拥有的知识产权的保护。除非相关所有者明确给予许可,否则您不得修改、出租、租赁、借出、出售、分发这些数据、内容或资源(的全部或部分),或以其为基础创建衍生品。 + +7.3 您承认您对上述第三方应用、数据、内容或资源的使用可能受到您与相关第三方之间单独订立的条款的制约。 + +8. 使用 Google API + +8.1 Google API + +8.1.1 如果您使用任何 API 从 Google 检索数据,即表示您承认这些数据可能受到 Google 或这些数据提供方(或代表他们的其他人员或公司)拥有的知识产权的保护。您对任何上述 API 的使用可能受到附加服务条款的制约。除非相关服务条款允许,否则您不得修改、出租、租赁、借出、出售、分发这些数据(的全部或部分),或以其为基础创建衍生品。 + +8.1.2 如果您使用任何 API 从 Google 检索用户数据,即表示您承认并同意您只有在征得用户明确同意时才会检索数据,并且只能在用户允许时出于用户许可的有限目的检索数据。 + +9. 终止许可协议 + +9.1 本许可协议将持续有效,直至您或 Google 按以下规定终止本协议。 + +9.2 如果您想终止本许可协议,可通过停止使用“预览版”以及任何相关开发者凭据予以终止。 + +9.3 Google 有权在向您在作出通知后,有理由或无理由地随时终止与您订立的这份许可协议。 + +9.4 本许可协议将在下列情况下自动终止,而无需另行通知或采取其他行动,以先符合条件者为准: +(A) Google 在您居住或使用服务所在国家/地区停止向用户提供“预览版”或“预览版”的某些部分; +(B) Google 发行 Android SDK 的最终版本。 + +9.5 在本许可协议终止时,本许可协议中向您授予的许可将终止,您应立即完全停止使用“预览版”,并且第 10、11、12 和 14 节的条款将无限期继续存在。 + +10. 免责声明 + +10.1 您明确理解并同意,您使用“预览版”的风险将由您自行承担,并且“预览版”是按“原样”和“现状”提供,Google 不提供任何类型的担保。 + +10.2 您对“预览版”的使用以及通过使用“预览版”下载或以其他方式获得的任何材料由您自行决定,风险自负,并且对于因此类使用而对您的计算机系统或其他设备造成的任何损害或数据损失由您单方面负责。在不对上文所述予以限制的条件下,您了解“预览版”并非稳定版本,可能存在将导致重大损害的错误、缺陷和安全漏洞,包括无法挽回地完全无法使用您的计算机系统或其他设备。 + +10.3 Google 进一步明确拒绝任何类型的所有担保和条件,无论明示或暗示,包括但不限于有关适销性、特定用途适用性以及非侵权的暗示担保和条件。 + +11. 有限责任 + +11.1 您明确理解并同意,对于您可能遭遇的任何直接、间接、附带、特殊、继发或惩罚性损害(包括任何数据损失),Google 及其子公司和附属公司以及其许可方在任何责任理论下对您概不承担任何责任,无论 Google 或其代表是否已被告知或是否本应知晓发生任何上述损失的可能性。 + +12. 赔偿 + +12.1 您同意,在法律所允许的最大限度内,为 Google、其附属公司及其各自的董事、高管、员工和代理商提供辩护,使其免于因下列情况引起或产生的任何及所有索赔、诉讼、起诉或诉讼程序以及任何及所有损失、债务、损害、成本和费用(包括合理的律师费用)而承担责任或遭受损害:(a) 您对“预览版”的使用;(b) 您在“预览版”上开发的任何应用侵犯任何人的任何知识产权或诽谤任何人或侵犯其公开权或隐私权;以及 (c) 您的任何行为有悖于本许可协议 + +13. 许可协议的更改 + +13.1 Google 可能会在分发新版本“预览版”时对许可协议做出更改。做出这些更改后,Google 将在提供“预览版”的网站上公布新版本的许可协议。 + +14. 一般法律条款 + +14.1 本许可协议构成您与 Google 之间的完整法律协议,管辖您对“预览版”(不包括 Google 可能依据另外的书面协议向您提供的任何服务)的使用,并完全取代您之前与 Google 之间签订的、与“预览版”有关的任何协议。 + +14.2 您同意,如果 Google 未行使或未强制执行本许可协议包含的任何法定权利或救济(或 Google 在任何适用法律下享有的相关利益),不得视为 Google 正式放弃这些权利,Google 仍可获得这些权利或救济。 + +14.3 如果任何拥有管辖权的法院将本许可协议的任何条款裁定为无效,则该条款将从本许可协议中删除,而不会影响本许可协议的其余部分。本许可协议的其余条款将继续有效且可强制执行。 + +14.4 您承认并同意,Google 集团旗下的每一家公司都将成为本许可协议的第三方受益人,并且此类其他公司将有权直接强制执行和依赖本许可协议中任何授予其利益(或支持其权利)的条款。除此之外,任何其他人员或公司均不得成为本许可协议的第三方受益人。 + +14.5 出口限制。“预览版”受美国出口法律和法规的制约。您必须遵守适用于“预览版”的所有国内和国际出口法律和法规。这些法律包括目的地、最终用户和最终用途方面的限制。 + +14.6 未经 Google 事先书面批准,您不得擅自转让或转移本许可协议,未经此类批准而试图进行的任何转让均为无效。未经 Google 事先书面批准,您不得委托您依据本许可协议所应承担的责任或义务。 + +14.7 本许可协议以及您与 Google 依据本许可协议而建立的关系受加利福尼亚州法律管辖,而无论其是否与其他法律条款冲突。您与 Google 同意服从位于加利福尼亚州圣克拉拉县内法院的专属司法管辖权,以解决本许可协议引起的任何法律事务。尽管有上述规定,您同意仍允许 Google 在任何管辖区域申请禁令救济(或同等类型的紧急法律救济)。 + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">我已阅读并同意上述条款和条件</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>本文内容</h2> + <ol> + <li><a href="#sdk">预览版 SDK</a></li> + <li><a href="#docs">开发者文档</a></li> + <li><a href="#images">硬件系统映像</a></li> + </ol> + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + Android M 预览版 SDK 包括开发工具、Android 系统文件和库文件,旨在帮助您在下一版本的平台中测试您的应用以及该平台提供的新 API。 +本文旨在介绍如何获得“预览版”的可下载组件,以便测试您的应用。 + +</p> + + +<h2 id="sdk">预览版 SDK</h2> + +<p> + 预览版 SDK 可通过 <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK 管理器</a>下载。如需了解有关下载和配置预览版 SDK 的详细信息,请参阅<a href="{@docRoot}preview/setup-sdk.html#downloadSdk">设置预览版 SDK</a>。 + +</p> + + +<h2 id="docs">开发者文档</h2> + +<p> + 开发者文档下载软件包提供详细的 API 参考信息和“预览版”的 API 差异报告。 +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + + +<h2 id="images">硬件系统映像</h2> + +<p> + 这些系统映像允许您在实际设备上安装预览版平台,以便进行测试。 +通过使用这些映像之一配置设备,您可以安装并测试您的应用,以了解其在下一版本平台上的性能表现。 +在设备上安装系统映像的过程会<em>删除设备中的所有数据</em>,因此您应该在安装系统映像之前备份数据。 + + +</p> + +<p class="warning"> + <b>警告:</b>以下 Android 系统映像是预览版,可能会随时发生变化。您对这些系统映像的使用受 Android SDK 预览版许可协议的制约。 +Android 预览版系统映像并非稳定版本,可能包含会对您的计算机系统、设备和数据造成损害的错误和缺陷。 + +Android 预览版系统映像未经过与出厂操作系统相同的测试,可能会导致您的手机和安装的服务与应用停止工作。 + + +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">将映像安装到设备</h3> + +<p> + 要使用设备映像进行测试,您必须将其安装到兼容设备上。请按照下面的说明安装系统映像: + +</p> + +<ol> + <li>下载并解压此处列出的系统映像包之一。</li> + <li>备份设备中您希望予以保留的任何数据。</li> + <li>按照 +<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> + 中的说明将映像刷入设备中。</li> +</ol> + +<p class="note"> + <strong>注:</strong>为开发设备刷入预览版系统映像之后,它将通过无线 (OTA) 更新自动升级到下一个预览版本。 + +</p> + +<h3 id="revertDevice">将设备还原至出厂规格</h3> + +<p> + 如果您想要卸载预览版并将设备还原至出厂规格,请转到 +<a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> 并下载要为设备刷入的映像。 +按照该页面上的说明将映像刷入设备中。 + +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/zh-cn/preview/index.jd b/docs/html-intl/intl/zh-cn/preview/index.jd index 36ad71863a0d..caed4cb117a9 100644 --- a/docs/html-intl/intl/zh-cn/preview/index.jd +++ b/docs/html-intl/intl/zh-cn/preview/index.jd @@ -29,7 +29,7 @@ footer.hide=1 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> <div class="dac-section dac-small"> diff --git a/docs/html-intl/intl/zh-tw/index.jd b/docs/html-intl/intl/zh-tw/index.jd index 53bbd8da1006..cf1376facee7 100644 --- a/docs/html-intl/intl/zh-tw/index.jd +++ b/docs/html-intl/intl/zh-tw/index.jd @@ -10,19 +10,16 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 <section class="dac-hero-carousel"> <!-- <article class="dac-expand dac-hero dac-invert active" style="background-color: rgb(38, 50, 56);"> --> -<article class="dac-expand dac-hero dac-invert active" style="background-color: #455A64;"> +<article class="dac-expand dac-hero dac-invert dac-darken mprev active" style="background-color: #75d1ff;"> <a href="/preview/index.html"> - <div class="wrap" style="max-width:1100px;"> + <div class="wrap" style="max-width:1100px;margin-top:0"> <div class="cols dac-hero-content"> - <div class="col-10of16 col-push-6of16 dac-hero-figure"> - <img class="dac-hero-image" src="{@docRoot}images/home/devices-hero_620px_2x.png" - srcset="{@docRoot}images/home/devices-hero_620px.png 1x, - {@docRoot}images/home/devices-hero_620px_2x.png 2x"> + <div class="col-8of16 col-push-6of16 dac-hero-figure mprev"> </div> - <div class="col-6of16 col-pull-10of16"> + <div class="col-8of16 col-pull-7of16"> <div class="dac-hero-tag"></div> - <h1 class="dac-hero-title">Android M Developer Preview</h1> + <h1 class="dac-hero-title" style="white-space:nowrap;">Android 6.0 Marshmallow</h1> <p class="dac-hero-description">準備使用新版 Android。在 Nexus 5、6、9 和 Player 上測試您的應用程式。 </p> @@ -32,7 +29,7 @@ page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> </div> diff --git a/docs/html-intl/intl/zh-tw/preview/download.jd b/docs/html-intl/intl/zh-tw/preview/download.jd index 3b54080c19bf..163af2c97aa4 100644 --- a/docs/html-intl/intl/zh-tw/preview/download.jd +++ b/docs/html-intl/intl/zh-tw/preview/download.jd @@ -164,13 +164,14 @@ SDK 的元件之前 ,您必須同意遵守下列條款和條件。</p> <div id="qv"> <h2>本文件內容</h2> <ol> - <li><a href="#sdk">預覽版 SDK</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">開發人員文件</a></li> <li><a href="#images">硬體系統映像</a></li> </ol> <h2>Legacy downloads</h2> <ol> - <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview 1</a></li> + <li><a href="{@docRoot}preview/download_mp2.html">Developer Preview 2</a></li> </ol> </div> </div> @@ -183,7 +184,7 @@ SDK 的元件之前 ,您必須同意遵守下列條款和條件。</p> </p> -<h2 id="sdk">預覽版 SDK</h2> +<h2 id="sdk">Android 6.0 SDK</h2> <p> 預覽版 SDK 可透過 <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK 管理器</a>下載取得。如需有關下載和設定預覽版 SDK 的詳細資訊,請參閱<a href="{@docRoot}preview/setup-sdk.html#downloadSdk">設定預覽版 SDK</a>。 @@ -203,11 +204,11 @@ SDK 的元件之前 ,您必須同意遵守下列條款和條件。</p> <th scope="col">Download / Checksums</th> </tr> <tr id="docs-dl"> - <td>Android M Preview 2<br>Developer Docs</td> + <td>Android M Preview 3<br>Developer Docs</td> <td><a href="#top" onclick="onDownload(this)" - >m-preview-2-developer-docs.zip</a><br> - MD5: 1db6fff9c722b0339757e1cdf43663a8<br> - SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + >m-preview-3-developer-docs.zip</a><br> + MD5: d99b14b0c06d31c8dfecb25072654ca3<br> + SHA-1: 9cefeeda07676130da606a1796e1c00fffc667c1 </td> </tr> </table> @@ -240,34 +241,34 @@ Android 預覽版系統映像還不是穩定的版本,可能會包含許多錯 <tr id="hammerhead"> <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> <td><a href="#top" onclick="onDownload(this)" - >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> - MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> - SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + >hammerhead-MPA44I-preview-2ebbc049.tgz</a><br> + MD5: 91a924fb0c9f8e716e3b4c9954fd0dbb<br> + SHA-1: 2ebbc049b68c4da8baeee3e42bb94d7a965ba4a3 </td> </tr> <tr id="shamu"> <td>Nexus 6 <br>"shamu"</td> <td><a href="#top" onclick="onDownload(this)" - >shamu-MPZ79M-preview-e1024040.tgz</a><br> - MD5: 24a2118da340b9afedfbdfc026f6ff81<br> - SHA-1: e10240408859d5188c4aae140e1c539130ba614b + >shamu-MPA44I-preview-62b9c486.tgz</a><br> + MD5: ac6e58da86125073d9c395257fd42664<br> + SHA-1: 62b9c486fd7a5020e228d53ca5acd5c1857e48ff </td> </tr> <tr id="volantis"> <td>Nexus 9 <br>"volantis"</td> <td><a href="#top" onclick="onDownload(this)" - >volantis-MPZ79M-preview-9f305342.tgz</a><br> - MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> - SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + >volantis-MPA44I-preview-5c30a6e2.tgz</a><br> + MD5: 7f83768757913d3fea945a661020d185<br> + SHA-1: 5c30a6e2acd11a81f4105b12d23ff654f534f699 </td> </tr> <tr id="fugu"> <td>Nexus Player <br>"fugu"</td> <td><a href="#top" onclick="onDownload(this)" - >fugu-MPZ79N-preview-fb63af98.tgz</a><br> - MD5: e8d081137a20b66df595ee69523314b5<br> - SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + >fugu-MPA44I-preview-2860040a.tgz</a><br> + MD5: 438da8d37da9e341a69cfb16a4001ac5<br> + SHA-1: 2860040a326582f1ff5f702bf9a1ef002717fc98 </td> </tr> diff --git a/docs/html-intl/intl/zh-tw/preview/download_mp2.jd b/docs/html-intl/intl/zh-tw/preview/download_mp2.jd new file mode 100644 index 000000000000..3b54080c19bf --- /dev/null +++ b/docs/html-intl/intl/zh-tw/preview/download_mp2.jd @@ -0,0 +1,359 @@ +page.title=下載 +page.image=images/cards/card-download_16-9_2x.png + +@jd:body + +<div style="position:relative; min-height:600px"> + + <div class="wrap" id="tos" style="position:absolute;display:none;width:inherit;"> + + <p class="sdk-terms-intro">在下載和安裝 Android 預覽版 +SDK 的元件之前 ,您必須同意遵守下列條款和條件。</p> + + <h2 class="norule">條款和條件</h2> + + <div class="sdk-terms" onfocus="this.blur()" style="width:678px"> +這是「Android SDK 預覽版授權協議」(以下稱「授權協議」)。 + +1.簡介 + +1.1「Android SDK 預覽版」(在「授權協議」中稱為「預覽版」,包括 (如果有可用的) Android 系統檔案、經過封裝的 API 和預覽版程式庫檔案) 是在「授權協議」之條款的約束下授權給您使用。「授權協議」就您對「預覽版」的使用,構成您與 Google 間具法律約束力之合約。 + +1.2「Android」係指「Android 軟體開放原始碼專案」(http://source.android.com/) 所提供的 Android 裝置軟體堆疊 (不定期更新)。 + +1.3「Google」係指 Google Inc.,是一家在美國德拉瓦州註冊的公司,地址為 1600 Amphitheatre Parkway, Mountain View, CA 94043, United States。 + +2.接受「授權協議」 + +2.1 必須先同意遵守「授權協議」,才能使用此「預覽版」。如果不接受「授權協議」,您就無法使用此「預覽版」。 + +2.2 按一下 [接受] 且/或使用「預覽版」,即表示您同意「授權協議」的條款。 + +2.3 如果您是美國或其他國家/地區 (包括您所居住或使用此「預覽版」的國家/地區) 的法律所禁止接收此「預覽版」的人員,就不得使用此「預覽版」及接受「授權協議」。 + +2.4 如果您將在公司或組織內部使用「預覽版」,您就要代表雇主或其他實體同意受「授權協議」約束,且您代表並保證具備完整法定權限來約束您的雇主或這類實體遵守「授權協議」。如果您不具備必要的權限,就不得代表您的雇主或其他實體接受「授權協議」或使用此「預覽版」。 + +3.Google 的預覽版授權 + +3.1 在「授權協議」之條款的約束下,Google 授權您使用此「預覽版」,此授權為買斷式、不可轉讓、非獨占性、不可轉授權、有限且可撤銷,僅在您公司或組織內部私下或內部使用。此「預覽版」僅供您用於開發在 Android 平台上執行的應用程式。 + +3.2 您同意 Google 或第三方對此「預覽版」擁有一切法定權利及權益,包括存在於此「預覽版」中的任何「智慧財產權」。「智慧財產權」係指專利法、著作權法、商業秘密法、商標法及任何和所有其他專利權下的任何及一切權利。Google 保留一切未明確授予您的權利。 + +3.3 您不得將此「預覽版」用於「授權協議」未明文許可的任何用途。除非適用的第三方授權所需,否則您不得:(a) 對此「預覽版」或其任何部分進行複製 (備份用途除外)、修改、改編、轉散佈、反向組譯、還原工程、解編或製作衍生成品;或是 (b) 將此「預覽版」的任何部分載入至行動電話或個人電腦以外的任何其他硬體裝置、將此「預覽版」的任何部分與其他軟體結合,或散佈包含此「預覽版」之任一部分的任何軟體或裝置。 + +3.4 您同意不會從事任何可能導致或造成 Android 分裂的活動,包括但不限於以任何形式散佈從此「預覽版」衍生的軟體開發套件、參其製作或宣傳。 + +3.5 對開放原始碼軟體授權下所授權之「預覽版」的使用、複製及散佈,完全受該開放原始碼軟體授權的條款管制,而不受「授權協議」管制。您同意遵守從這類開放原始碼軟體授權獲得的所有權利,並且避免採取任何可能終止、中止或侵害這類權利的行為。 + +3.6 您同意 Google 可在不事先通知您的情況下變更其所提供之「預覽版」的形式和本質,且此「預覽版」的未來版本可與在此「預覽版」的先前版本上開發的應用程式不相容。您同意 Google 通常可全權斟酌永久或暫時停止提供此「預覽版」(或此「預覽版」的任何功能) 給您或使用者,毋須事先通知。 + +3.7「授權協議」中的所有條款皆未授予您任何使用 Google 之商業名稱、商標、服務標章、標誌、網域名稱或其他明確品牌特徵的權利。 + +3.8 您同意不會移除、遮蔽或更改可能附加至或內含在此「預覽版」中的任何專利權通知 (包括著作權和商標通知)。 + +4.您對「預覽版」的使用 + +4.1 Google 同意在「授權協議」下,任何條款皆未從您 (或您的授權人) 賦予 Google 對您使用此「預覽版」開發之任何軟體應用程式的任何權利及權益,包括存在於這些應用程式中的任何智慧財產權。 + +4.2 您同意只就 (a)「授權協議」和 (b) 相關管轄權中任何適用法律、規定或是普遍獲得接受之慣例或指導方針 (包括任何有關將資料或軟體輸出或輸入美國或其他相關國家/地區的法律) 所允許的用途使用此「預覽版」及撰寫應用程式。 + +4.3 您同意如果使用此「預覽版」開發應用程式,您將保護使用者的隱私權和法定權利。如果使用者提供您使用者名稱、密碼或是其他登入資訊或個人資訊,您必須告知使用者這類資訊將提供給您的應用程式使用,並且必須為這些使用者提供法定充分的隱私權通知和保護。如果您的應用程式會儲存使用者所提供的個人或敏感資訊,它必須確保這些資訊安全無虞。如果使用者提供 Google 帳戶資訊給您,則只有在每個使用者已授權您存取其 Google 帳戶並僅限用於使用者所授權之用途的情況下,您的應用程式才能使用該資訊來存取使用者的 Google 帳戶。 + +4.4 您同意不會使用此「預覽版」從事任何不當Activity,例如開發或散佈會以未經授權的方式干擾、妨礙、損害或存取 Google 或任何第三方之伺服器、網路或是其他財產或服務的應用程式。 + +4.5 您同意對您透過 Android 裝置和 (或) Android 應用程式建立、傳輸或顯示的任何資料、內容或資源,以及上述行為造成的後果 (包括 Google 可能蒙受的任何損失或損害) 負起全責 (而 Google 對您或任何第三方就上述一切不需負任何責任)。 + +4.6 您同意對違反在此「授權協議」、任何適用之第三方合約或《服務條款》或是任何適用之法律或規定下所必須遵守的義務,以及違反相關義務造成的後果 (包括 Google 或任何第三方可能蒙受的任何損失或損害) 負起全責 (而 Google 對您或任何第三方就上述一切不需負任何責任)。 + +4.7「預覽版」目前正在開發中,因此您的測試與意見反應對開發程序非常重要。使用「預覽版」,您即認同某些功能仍處於開發階段,因此您不應期待「預覽版」擁有穩定版本的完整功能。在官方 Android SDK 發行之後,此「預覽版」不再受到支援時,您同意不使用此「預覽版」公開散佈或隨附任何應用程式。 + +5.您的開發人員認證 + +5.1 您同意負責保密 Google 可能核發給您或您自己選擇的任何開發人員認證,並且對在您開發人員認證名義下開發的所有應用程式負起全責。 + +6.隱私權和資訊 + +6.1 為了持續更新及改進此「預覽版」,Google 可能會從軟體收集某些使用狀況統計數據,包括但不限於軟體的唯一識別碼、相關 IP 位址、版本號碼,以及有關使用此「預覽版」中的哪些工具和 (或) 服務及其使用方式的相關資訊。在收集這類資訊之前,此「預覽版」會先通知您並徵求您的同意。如果您不同意,Google 將不會收集這類資訊。 + +6.2 Google 會彙總並檢查收集到的資料,據以改善此「預覽版」,並且會依據《Google 隱私權政策》(http://www.google.com/policies/privacy/) 加以妥善保存。 + +7.第三方應用程式 + +7.1 如果您使用此「預覽版」來執行第三方開發的應用程式,或是執行會存取第三方所提供之資料、內容或資源的應用程式,您同意 Google 不需對這類應用程式、資料、內容或資源負任何責任。您瞭解您透過第三方應用程式存取的所有資料、內容或資源是由其提供者負起全責,而 Google 對您因使用或存取任何這些第三方應用程式、資料、內容或資源所造成的損失或損害不需負任何責任。 + +7.2 您瞭解第三方應用程式提供給您的資料、內容或資源可能受到提供者 (或代表他們的其他人員或公司) 所擁有的智慧財產權保護。您不得根據這類資料、內容或資源 (不論是整個或部分) 修改、出租、出借、販售、散佈或製作衍生成品,除非相關擁有者明確授權您從事上述活動。 + +7.3 您瞭解使用第三方應用程式、資料、內容或資源可能受到您與相關第三方之間的個別條款約束。 + +8.使用 Google API + +8.1 Google API + +8.1.1 如果您使用任何 API 從 Google 擷取資料,您瞭解這些資料可能受到 Google 或資料提供者 (或代表他們的其他人員或公司) 所擁有的智慧財產權保護。您對任何這類 API 的使用可能受到其他《服務條款》約束。除非相關《服務條款》明文允許,否則您不得根據這類資料 (不論是整個或部分) 修改、出租、出借、販售、散佈或製作衍生成品。 + +8.1.2 使用任何 API 從 Google 擷取使用者的資料時,您瞭解並同意只有在該使用者明確同意且授權您擷取其資料,而且僅限用於使用者所授權之用途的情況下,您才能擷取資料。 + +9.終止「授權協議」 + +9.1 除非您或 Google 終止「授權協議」(請見下方說明),否則「授權協議」將持續具有效力。 + +9.2 如果想終止「授權協議」,只要停止使用此「預覽版」及任何相關的開發人員憑證即可。 + +9.3 Google 可隨時通知您終止「授權協議」,無論有無原因。 + +9.4「授權協議」在先發生下列任一情況時,將自動終止而不另行通知或採取其他行動: +(A) Google 決定不再提供此「預覽版」或此「預覽版」的特定部分給您所居住或使用此服務之國家/地區的使用者;或 +(B) Google 發行最終版本的 Android SDK。 + +9.5 當「授權條款」終止時,您在「授權協議」所獲得的授權也將會一併終止,您將立即停止「預覽版」的所有使用,而第 10、11、12 和 14 項的條款將無限期持續適用。 + +10.免責聲明 + +10.1 您明確瞭解並同意完全自負使用此「預覽版」的風險,並且此「預覽版」是依「現況」和「可提供性」提供,Google 不負任何擔保責任。 + +10.2 您對使用此「預覽版」及透過此「預覽版」以下載或其他方式取得的任何內容,需自行斟酌和自負風險,而且您對因這類使用而對您的電腦系統或其他裝置所造成的任何損害或資料遺失,需負起全責。不限於前述,您瞭解此「預覽版」不是穩定的版本,可能會包含許多錯誤、瑕疵和安全性弱點而對您的電腦系統或其他裝置造成嚴重的損害,包括完全、不可回復的損失。 + +10.3 Google 進一步明確表示不提供任何形式的瑕疵擔保和條件 (不論明示或默示),包括但不限於適售性、適合特定用途及未侵權的默示擔保和條件。 + +11.責任限制 + +11.1 您明確瞭解並同意在任何歸責理論下,就可能由您引起的任何直接、間接、附隨性、特殊性、衍生性或懲罰性損害賠償 (包括任何資料遺失),不論 Google 或其代表是否已獲告知或應已瞭解發生任何這類損失的可能性,Google、其子公司和關係企業及其授權人不必對您負起任何責任。 + +12.賠償 + +12.1 在法律允許的最大範圍內,您同意為 Google、其子公司及其個別董監事、主管、員工和代理人,就任何和一切索賠、法律行動、訴訟或訴訟程序,以及因下列原因而引起的任何和一切損失、責任、損害賠償、費用及開支 (包括合理的律師費),提供辯護、賠償損失並確保其免於承擔賠償責任:(a) 您使用此「預覽版」;(b) 您使用此「預覽版」開發的應用程式侵害任何人的任何智慧財產權,或是詆毀任何人或違反其公開權或隱私權;以及 (c) 您未遵守「授權協議」。 + +13.對「授權協議」做出的變更 + +13.1 Google 可在散佈此「預覽版」的新版本時修改「授權協議」。做出這類變更後,Google 會在提供此「預覽版」的網站上提供「授權協議」的新版本。 + +14.一般法律條款 + +14.1「授權協議」構成您與 Google 之間的法律協議,用於管制您對此「預覽版」(不包括 Google 依據個別書面協議提供給您的任何服務) 的使用,並完全取代先前您與 Google 之間就此「預覽版」簽署的相關協議。 + +14.2 您同意如果 Google 未行使或執行「授權協議」所含的任何法律權利或救濟 (或在任何適用法律下對 Google 有利的權益),並不代表 Google 正式放棄權利,Google 日後仍可行使這些權利或救濟。 + +14.3 如果經任何法院 (就此事宜依管轄權決定) 裁決「授權協議」中有任何條款無效,則該條款將自「授權協議」中移除,「授權協議」的其餘部分則不受影響。「授權協議」的其餘條款將持續具有效力且可執行。 + +14.4 您瞭解並同意 Google 旗下子公司體系的每位成員都是「授權協議」的第三方受益人,而且這類其他公司有權直接執行和依據「授權協議」中對其授予權益 (或對其有利之權利) 的任何條款。除此之外的任何其他人員或公司皆非「授權協議」的第三方受益人。 + +14.5 出口限制。此「預覽版」受美國出口法規約束。您必須遵守適用於此「預覽版」的所有國內和國際出口法規。這些法律包括對目的地、使用者及最終用途的限制。 + +14.6 未事先取得 Google 事先書面核准的情況下,您不得轉讓或轉移「授權協議」,未經這類核准的任何轉讓將會失效。您不得在未事先取得 Google 書面核准的情況下,委派其「授權協議」涵蓋的責任或義務。 + +14.7「授權協議」以及您與 Google 就「授權協議」構成的關係皆受加州法律管轄,毋須理會其法律牴觸條款。您和 Google 同意服從位於加州聖塔克拉拉 (Santa Clara, California) 郡內法院的專屬管轄權,以解決由「授權協議」產生的任何法律事務。儘管如此,您同意 Google 仍可在任何管轄權中申請禁制令救濟 (或同等類型的緊急法定救濟)。 + </div><!-- sdk terms --> + + + + <div id="sdk-terms-form"> + <p> + <input id="agree" type="checkbox" name="agree" value="1" onclick="onAgreeChecked()" /> + <label id="agreeLabel" for="agree">我已閱讀並同意上述條款及細則</label> + </p> + <p><a href="" class="button disabled" id="downloadForRealz" onclick="return onDownloadForRealz(this);"></a></p> + </div> + + + </div><!-- end TOS --> + + + <div id="landing"> + +<div id="qv-wrapper"> + <div id="qv"> + <h2>本文件內容</h2> + <ol> + <li><a href="#sdk">預覽版 SDK</a></li> + <li><a href="#docs">開發人員文件</a></li> + <li><a href="#images">硬體系統映像</a></li> + </ol> + <h2>Legacy downloads</h2> + <ol> + <li><a href="{@docRoot}preview/download_mp1.html">Developer Preview Archive</a></li> + </ol> + </div> +</div> + + +<p> + Android M 預覽版 SDK 有開發工具、Android 系統檔案以及程式庫檔案,可以幫助測試您的應用程式和下一個平台版本隨附的新 API。 +本文件會說明如何取得可下載的預覽版元件來測試您的應用程式。 + +</p> + + +<h2 id="sdk">預覽版 SDK</h2> + +<p> + 預覽版 SDK 可透過 <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK 管理器</a>下載取得。如需有關下載和設定預覽版 SDK 的詳細資訊,請參閱<a href="{@docRoot}preview/setup-sdk.html#downloadSdk">設定預覽版 SDK</a>。 + +</p> + + +<h2 id="docs">開發人員文件</h2> + +<p> + 開發人員文件下載套件提供詳細的 API 參考資料和預覽版的 API 差異報告。 +</p> + +<table> + <tr> + <th scope="col">Description</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="docs-dl"> + <td>Android M Preview 2<br>Developer Docs</td> + <td><a href="#top" onclick="onDownload(this)" + >m-preview-2-developer-docs.zip</a><br> + MD5: 1db6fff9c722b0339757e1cdf43663a8<br> + SHA-1: 5a4ae88d644e63824d21b0e18f8e3977a7665157 + </td> + </tr> +</table> + + +<h2 id="images">硬體系統映像</h2> + +<p> + 這些系統映像可以讓您在實體裝置上安裝預覽版的平台來進行測試。 +使用其中一個映像設定裝置,您就可以安裝並測試您的應用程式,瞭解應用程式在下一個版本的平台上表現如何。 +在裝置上安裝系統映像的過程中,會「移除裝置當中所有的資料」,因此您應該在安裝系統映像之前備份您的資料。<em></em> + + +</p> + +<p class="warning"> + <b>警告:</b>下列 Android 系統映像是預覽版,可能隨時會有變更。使用這些系統映像受到「Android SDK 預覽版授權協議」的約束。 +Android 預覽版系統映像還不是穩定的版本,可能會包含許多錯誤和瑕疵而對您的電腦系統、裝置和資料造成損害。 + +預覽版的 Android 系統映像與出廠作業系統的測試不同,可能會導致您的手機和安裝的服務與應用程式停止運作。 + + +</p> + +<table> + <tr> + <th scope="col">Device</th> + <th scope="col">Download / Checksums</th> + </tr> + <tr id="hammerhead"> + <td>Nexus 5 (GSM/LTE) <br>"hammerhead"</td> + <td><a href="#top" onclick="onDownload(this)" + >hammerhead-MPZ79M-preview-b1f4bde4.tgz</a><br> + MD5: 2ca9f18bf47a061b339bab52647ceb0d<br> + SHA-1: b1f4bde447eccbf8ce5d9b8b8ba954e3eac8e939 + </td> + </tr> + <tr id="shamu"> + <td>Nexus 6 <br>"shamu"</td> + <td><a href="#top" onclick="onDownload(this)" + >shamu-MPZ79M-preview-e1024040.tgz</a><br> + MD5: 24a2118da340b9afedfbdfc026f6ff81<br> + SHA-1: e10240408859d5188c4aae140e1c539130ba614b + </td> + </tr> + <tr id="volantis"> + <td>Nexus 9 <br>"volantis"</td> + <td><a href="#top" onclick="onDownload(this)" + >volantis-MPZ79M-preview-9f305342.tgz</a><br> + MD5: 9edabf0a4c61b247f1cbb9dfdc0a899e<br> + SHA-1: 9f30534216f10899a6a75495fc7e92408ea333a7 + </td> + </tr> + + <tr id="fugu"> + <td>Nexus Player <br>"fugu"</td> + <td><a href="#top" onclick="onDownload(this)" + >fugu-MPZ79N-preview-fb63af98.tgz</a><br> + MD5: e8d081137a20b66df595ee69523314b5<br> + SHA-1: fb63af98302dd97be8de9313734d389ccdcce250 + </td> + </tr> + +</table> + +<h3 id="install-image">在裝置上安裝映像</h3> + +<p> + 如果要使用裝置映像進行測試,您必須先在相容的裝置上安裝映像。請依照下面的指示安裝系統映像: + +</p> + +<ol> + <li>下載此處列出的其中一個系統映像,然後解壓縮。</li> + <li>備份您要保留的所有裝置資料。</li> + <li>依照 +<a href="https://developers.google.com/android/nexus/images#instructions">developers.google.com/android</a> +的指示,將映像更新到您的裝置。</li> +</ol> + +<p class="note"> + <strong>注意:</strong>在您使用預覽版系統映像更新開發裝置之後,裝置就會透過無線 (OTA) 更新方式自動升級為下一個預覽版版本。 + +</p> + +<h3 id="revertDevice">將裝置還原成出廠規格</h3> + +<p> + 如果您要解除安裝預覽版並將裝置還原成出廠規格,請至 +<a href="http://developers.google.com/android/nexus/images">developers.google.com/android</a> 並下載您要為裝置更新的映像。 +依照該頁面的指示,將映像更新到您的裝置。 + +</p> + + </div><!-- landing --> + +</div><!-- relative wrapper --> + + + +<script> + var urlRoot = "http://storage.googleapis.com/androiddevelopers/shareables/preview/"; + function onDownload(link) { + + $("#downloadForRealz").html("Download " + $(link).text()); + $("#downloadForRealz").attr('href', urlRoot + $(link).text()); + + $("#tos").fadeIn('fast'); + $("#landing").fadeOut('fast'); + + return true; + } + + + function onAgreeChecked() { + /* verify that the TOS is agreed */ + if ($("input#agree").is(":checked")) { + /* reveal the download button */ + $("a#downloadForRealz").removeClass('disabled'); + } else { + $("a#downloadForRealz").addClass('disabled'); + } + } + + function onDownloadForRealz(link) { + if ($("input#agree").is(':checked')) { + /* + $("#tos").fadeOut('fast'); + $("#landing").fadeIn('fast'); + */ + + ga('send', 'event', 'M Preview', 'System Image', $("#downloadForRealz").html()); + + /* + location.hash = ""; + */ + return true; + } else { + return false; + } + } + + $(window).hashchange( function(){ + if (location.hash == "") { + location.reload(); + } + }); + +</script> diff --git a/docs/html-intl/intl/zh-tw/preview/index.jd b/docs/html-intl/intl/zh-tw/preview/index.jd index a9cf1aebcf71..3aaf3820b3df 100644 --- a/docs/html-intl/intl/zh-tw/preview/index.jd +++ b/docs/html-intl/intl/zh-tw/preview/index.jd @@ -29,7 +29,7 @@ footer.hide=1 </a><br> <a class="dac-hero-cta" href="{@docRoot}preview/support.html"> <span class="dac-sprite dac-auto-chevron"></span> - Developer Preview 2</a> + Developer Preview 3 (final SDK)</a> </div> </div> <div class="dac-section dac-small"> diff --git a/docs/html/preview/download.jd b/docs/html/preview/download.jd index ecc0c7ed295c..d00f90cbfd2d 100644 --- a/docs/html/preview/download.jd +++ b/docs/html/preview/download.jd @@ -164,7 +164,7 @@ This is the Android SDK Preview License Agreement (the “License Agreement”). <div id="qv"> <h2>In this document</h2> <ol> - <li><a href="#sdk">Developer Preview 3 SDK</a></li> + <li><a href="#sdk">Android 6.0 SDK</a></li> <li><a href="#docs">Developer Documentation</a></li> <li><a href="#images">Hardware System Images</a></li> </ol> diff --git a/docs/html/tools/support-library/features.jd b/docs/html/tools/support-library/features.jd index b3af7a27d9cb..19f93e9ce0e3 100644 --- a/docs/html/tools/support-library/features.jd +++ b/docs/html/tools/support-library/features.jd @@ -307,8 +307,8 @@ libraries in your build path when setting up your project. For more information on how to set up your project, follow the instructions in <a href="{@docRoot}tools/support-library/setup.html#libs-with-res">Adding libraries with resources</a>. If you are developing in Eclipse/ADT, make sure to include -both the <code>android-support-v7-mediarouter.jar</code> and -<code>android-support-v7-appcompat.jar</code> files.</p> +the <code>android-support-v7-mediarouter.jar</code>, <code>android-support-v7-appcompat.jar</code>, +and <code>android-support-v7-palette.jar</code> files.</p> <p>If you are using Android Studio, all you need to do is specify the Gradle build script dependency identifier <code>com.android.support:support-v7-mediarouter:<revision></code>, diff --git a/docs/html/tools/support-library/index.jd b/docs/html/tools/support-library/index.jd index 9dc0ed154208..22ad0c9c4539 100644 --- a/docs/html/tools/support-library/index.jd +++ b/docs/html/tools/support-library/index.jd @@ -665,7 +665,7 @@ page.title=Support Library <li>Added support for a Collapse icon description in the {@link android.support.v7.widget.Toolbar} class.</li> <li>Updated the {@link android.support.v7.widget.SearchView} widget to support displaying - the {@link android.support.v7.mediarouter.R.attr#commitIcon}. </li> + the {@link android.support.v7.appcompat.R.attr#commitIcon}. </li> <li>Removed the <code>buttonGravity</code> attribute from the {@link android.support.v7.widget.Toolbar} class. </li> </ul> diff --git a/docs/html/training/auto/start/index.jd b/docs/html/training/auto/start/index.jd index f6cdbd11085e..6c6f18840982 100644 --- a/docs/html/training/auto/start/index.jd +++ b/docs/html/training/auto/start/index.jd @@ -177,7 +177,7 @@ more information, see href="https://play.google.com/store/apps/details?id=com.google.android.projection.gearhead&hl=en" >Android Auto app</a> on the mobile device.</li> <li>Open the <a href="{@docRoot}tools/help/sdk-manager.html">SDK Manager</a> and - download the DHU package <strong>Android Auto Desktop Head Unit</strong> from the + download the DHU package <strong>Android Auto Desktop Head Unit emulator</strong> from the <em>SDK Tools</em> tab. The DHU installs in the <code><sdk>/extras/google/auto/</code> directory.</li> <li>If you are running the DHU on Linux, you must also install diff --git a/docs/html/training/building-userinfo.jd b/docs/html/training/building-userinfo.jd index f9d77f762824..40e5b94c6d80 100644 --- a/docs/html/training/building-userinfo.jd +++ b/docs/html/training/building-userinfo.jd @@ -1,9 +1,9 @@ -page.title=Building Apps with User Info & Location +page.title=Building Apps with Contacts & Sign-In page.trainingcourse=true @jd:body -<p>These classes teach you how to add user personalization to your app. Some of the ways -you can do this is by identifying users, providing -information that's relevant to them, and providing information about the world around them.</p>
\ No newline at end of file +<p>These lessons teach you how to include contact information and authenticate users with the same +credentials they use for Google. These features allow your app to connect users with people they +care about and provide a personalized experience without creating new user accounts.</p> diff --git a/docs/html/training/contacts-provider/retrieve-names.jd b/docs/html/training/contacts-provider/retrieve-names.jd index 7106889a42c7..d97b81b1e340 100644 --- a/docs/html/training/contacts-provider/retrieve-names.jd +++ b/docs/html/training/contacts-provider/retrieve-names.jd @@ -731,7 +731,6 @@ public class ContactsFragment extends Fragment implements Define ListView and item layouts. </li> <li> - <li> Define a Fragment that displays the list of contacts. </li> <li> diff --git a/docs/html/training/sign-in/index.jd b/docs/html/training/sign-in/index.jd index 9d49fd926484..d7c8e1d397ab 100644 --- a/docs/html/training/sign-in/index.jd +++ b/docs/html/training/sign-in/index.jd @@ -1,5 +1,5 @@ page.title=Adding Sign-In -page.tags=authentication,signin,social,google+ +page.tags=authentication,signin page.article=true page.trainingcourse=true @jd:body @@ -11,13 +11,13 @@ page.trainingcourse=true alt="Google maps sample image"> <p> - The Google+ platform for Android lets you authenticate a user with the same credentials they use - on Google every day. Once a user signs in with Google, you can create more engaging experiences - and drive usage of your app. + Google Sign-In for Android lets you authenticate a user with the same credentials they use on + Google. After a user signs in with Google, you can create more engaging experiences and drive + usage of your app. </p> <p> - The <a href="https://developers.google.com/+/mobile/android/">Google+ Android API</a> allows + The <a href="https://developers.google.com/identity/sign-in/android/">Google Android API</a> allows you to integrate sign-in and social features into your app. </p> @@ -26,43 +26,27 @@ page.trainingcourse=true <h4>Trusted authentication</h4> <p> - Google+ Sign-In is a simple, trusted, and secure way to let people sign in to your app with their - Google credentials and bring along their Google+ info.<br> - <a href="https://developers.google.com/+/mobile/android/sign-in" class="external-link">Add - sign-in</a>. + Google Sign-In is a simple, trusted, and secure way to let people sign in to your app with their + Google credentials.<br> + <a href="https://developers.google.com/identity/sign-in/android/sign-in" class="external-link">Add + Sign-in</a>. </p> <h4>Access the profile and social graph</h4> <p> - Once users have signed in with Google, your app can welcome them by name, display their picture, - connect them with friends, and lots more.<br> - <a href="https://developers.google.com/+/mobile/android/people" class="external-link">Access the - social graph</a>. -</p> - -<h4>Stand out in the stream</h4> -<p> - Interactive posts is a rich way of sharing to Google+. It lets users prompt friends to take - specific actions in your app from a Google+ post, like "listen," "RSVP," "check-in," and over 100 - more actions.<br> - <a class="external-link" href="https://developers.google.com/+/mobile/android/share">Post - interactive content</a>. -</p> - -<h4>Recommend content</h4> -<p> - Add a native +1 button so users can recommend content from your app. These endorsements can give - your app more credibility and help it grow faster.<br> - <a class="external-link" href="https://developers.google.com/+/mobile/android/recommend">Add the - +1 button</a>. + After users have signed in with Google, your app can welcome them by name and display their + picture. If your app requests social scopes, it can connect users with friends, and access + age range, language, and public profile information.<br> + <a href="https://developers.google.com/identity/sign-in/android/people" class="external-link"> + Getting Profile Information</a>. </p> <h2 id="start">Get Started</h2> <p> - The Google+ Android APIs are part of the Google Play services platform. To use Google+ features, + The Google Android APIs are part of the Google Play services platform. To use Google features, set up the Google Play services SDK in your app development project. For more information, see the <a class="external-link" href= - "https://developers.google.com/+/mobile/android/getting-started">Getting Started</a> guide for - the Google+ Platform for Android + "https://developers.google.com/identity/sign-in/android/start-integrating">Start Integrating</a> + guide for Google Sign-In. </p>
\ No newline at end of file diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs index 7cffdd8f036d..296334520e50 100644 --- a/docs/html/training/training_toc.cs +++ b/docs/html/training/training_toc.cs @@ -811,7 +811,7 @@ include the action bar on devices running Android 2.1 or higher." <div class="nav-section-header"> <a href="<?cs var:toroot ?>training/building-userinfo.html"> <span class="small">Building Apps with</span><br/> - User Info & Sign-In + Contacts & Sign-In </a> </div> <ul> diff --git a/graphics/java/android/graphics/drawable/RippleBackground.java b/graphics/java/android/graphics/drawable/RippleBackground.java index 1c14e2f9205c..c7aa8c345550 100644 --- a/graphics/java/android/graphics/drawable/RippleBackground.java +++ b/graphics/java/android/graphics/drawable/RippleBackground.java @@ -48,8 +48,8 @@ class RippleBackground extends RippleComponent { // Software rendering properties. private float mOpacity = 0; - public RippleBackground(RippleDrawable owner, Rect bounds) { - super(owner, bounds); + public RippleBackground(RippleDrawable owner, Rect bounds, boolean forceSoftware) { + super(owner, bounds, forceSoftware); } public boolean isVisible() { diff --git a/graphics/java/android/graphics/drawable/RippleComponent.java b/graphics/java/android/graphics/drawable/RippleComponent.java index 23a3ee3f9437..2d378c6c37b6 100644 --- a/graphics/java/android/graphics/drawable/RippleComponent.java +++ b/graphics/java/android/graphics/drawable/RippleComponent.java @@ -52,9 +52,16 @@ abstract class RippleComponent { /** Screen density used to adjust pixel-based constants. */ protected float mDensity; - public RippleComponent(RippleDrawable owner, Rect bounds) { + /** + * If set, force all ripple animations to not run on RenderThread, even if it would be + * available. + */ + private final boolean mForceSoftware; + + public RippleComponent(RippleDrawable owner, Rect bounds, boolean forceSoftware) { mOwner = owner; mBounds = bounds; + mForceSoftware = forceSoftware; } public void onBoundsChange() { @@ -143,7 +150,7 @@ abstract class RippleComponent { * @return {@code true} if something was drawn, {@code false} otherwise */ public boolean draw(Canvas c, Paint p) { - final boolean hasDisplayListCanvas = c.isHardwareAccelerated() + final boolean hasDisplayListCanvas = !mForceSoftware && c.isHardwareAccelerated() && c instanceof DisplayListCanvas; if (mHasDisplayListCanvas != hasDisplayListCanvas) { mHasDisplayListCanvas = hasDisplayListCanvas; diff --git a/graphics/java/android/graphics/drawable/RippleDrawable.java b/graphics/java/android/graphics/drawable/RippleDrawable.java index 464f3de5d29b..2690223e3e20 100644 --- a/graphics/java/android/graphics/drawable/RippleDrawable.java +++ b/graphics/java/android/graphics/drawable/RippleDrawable.java @@ -166,6 +166,12 @@ public class RippleDrawable extends LayerDrawable { private boolean mOverrideBounds; /** + * If set, force all ripple animations to not run on RenderThread, even if it would be + * available. + */ + private boolean mForceSoftware; + + /** * Constructor used for drawable inflation. */ RippleDrawable() { @@ -546,7 +552,7 @@ public class RippleDrawable extends LayerDrawable { */ private void tryBackgroundEnter(boolean focused) { if (mBackground == null) { - mBackground = new RippleBackground(this, mHotspotBounds); + mBackground = new RippleBackground(this, mHotspotBounds, mForceSoftware); } mBackground.setup(mState.mMaxRadius, mDensity); @@ -584,7 +590,7 @@ public class RippleDrawable extends LayerDrawable { } final boolean isBounded = isBounded(); - mRipple = new RippleForeground(this, mHotspotBounds, x, y, isBounded); + mRipple = new RippleForeground(this, mHotspotBounds, x, y, isBounded, mForceSoftware); } mRipple.setup(mState.mMaxRadius, mDensity); @@ -949,6 +955,16 @@ public class RippleDrawable extends LayerDrawable { } } + /** + * Sets whether to disable RenderThread animations for this ripple. + * + * @param forceSoftware true if RenderThread animations should be disabled, false otherwise + * @hide + */ + public void setForceSoftware(boolean forceSoftware) { + mForceSoftware = forceSoftware; + } + @Override public ConstantState getConstantState() { return mState; diff --git a/graphics/java/android/graphics/drawable/RippleForeground.java b/graphics/java/android/graphics/drawable/RippleForeground.java index 4853b04875d7..c6608463b04e 100644 --- a/graphics/java/android/graphics/drawable/RippleForeground.java +++ b/graphics/java/android/graphics/drawable/RippleForeground.java @@ -87,8 +87,8 @@ class RippleForeground extends RippleComponent { private boolean mHasFinishedExit; public RippleForeground(RippleDrawable owner, Rect bounds, float startingX, float startingY, - boolean isBounded) { - super(owner, bounds); + boolean isBounded, boolean forceSoftware) { + super(owner, bounds, forceSoftware); mIsBounded = isBounded; mStartingX = startingX; diff --git a/libs/hwui/thread/TaskManager.cpp b/libs/hwui/thread/TaskManager.cpp index f0ed0bbfedc1..e9dde294b2aa 100644 --- a/libs/hwui/thread/TaskManager.cpp +++ b/libs/hwui/thread/TaskManager.cpp @@ -33,7 +33,9 @@ TaskManager::TaskManager() { // Get the number of available CPUs. This value does not change over time. int cpuCount = sysconf(_SC_NPROCESSORS_CONF); - int workerCount = MathUtils::max(1, cpuCount / 2); + // Really no point in making more than 2 of these worker threads, but + // we do want to limit ourselves to 1 worker thread on dual-core devices. + int workerCount = cpuCount > 2 ? 2 : 1; for (int i = 0; i < workerCount; i++) { String8 name; name.appendFormat("hwuiTask%d", i + 1); diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java index da33464e7038..bc2dae14be38 100644 --- a/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java +++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProvider.java @@ -31,8 +31,7 @@ import java.util.HashSet; */ public final class ActivityRecognitionProvider { private final IActivityRecognitionHardware mService; - private final HashSet<Sink> mSinkSet = new HashSet<Sink>(); - private final SinkTransport mSinkTransport = new SinkTransport(); + private final HashSet<Sink> mSinkSet = new HashSet<>(); // the following constants must remain in sync with activity_recognition.h @@ -43,6 +42,8 @@ public final class ActivityRecognitionProvider { public static final String ACTIVITY_STILL = "android.activity_recognition.still"; public static final String ACTIVITY_TILTING = "android.activity_recognition.tilting"; + // NOTE: when adding an additional EVENT_TYPE_, EVENT_TYPE_COUNT needs to be updated in + // android.hardware.location.ActivityRecognitionHardware public static final int EVENT_TYPE_FLUSH_COMPLETE = 0; public static final int EVENT_TYPE_ENTER = 1; public static final int EVENT_TYPE_EXIT = 2; @@ -60,7 +61,7 @@ public final class ActivityRecognitionProvider { throws RemoteException { Preconditions.checkNotNull(service); mService = service; - mService.registerSink(mSinkTransport); + mService.registerSink(new SinkTransport()); } public String[] getSupportedActivities() throws RemoteException { @@ -102,26 +103,23 @@ public final class ActivityRecognitionProvider { private final class SinkTransport extends IActivityRecognitionHardwareSink.Stub { @Override - public void onActivityChanged( - android.hardware.location.ActivityChangedEvent activityChangedEvent) { + public void onActivityChanged(android.hardware.location.ActivityChangedEvent event) { Collection<Sink> sinks; synchronized (mSinkSet) { if (mSinkSet.isEmpty()) { return; } - - sinks = new ArrayList<Sink>(mSinkSet); + sinks = new ArrayList<>(mSinkSet); } // translate the event from platform internal and GmsCore types - ArrayList<ActivityRecognitionEvent> gmsEvents = - new ArrayList<ActivityRecognitionEvent>(); - for (android.hardware.location.ActivityRecognitionEvent event - : activityChangedEvent.getActivityRecognitionEvents()) { + ArrayList<ActivityRecognitionEvent> gmsEvents = new ArrayList<>(); + for (android.hardware.location.ActivityRecognitionEvent reportingEvent + : event.getActivityRecognitionEvents()) { ActivityRecognitionEvent gmsEvent = new ActivityRecognitionEvent( - event.getActivity(), - event.getEventType(), - event.getTimestampNs()); + reportingEvent.getActivity(), + reportingEvent.getEventType(), + reportingEvent.getTimestampNs()); gmsEvents.add(gmsEvent); } ActivityChangedEvent gmsEvent = new ActivityChangedEvent(gmsEvents); diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java new file mode 100644 index 000000000000..0b878d7c1f2b --- /dev/null +++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderClient.java @@ -0,0 +1,75 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.location.provider; + +import android.annotation.NonNull; +import android.hardware.location.IActivityRecognitionHardware; +import android.hardware.location.IActivityRecognitionHardwareClient; +import android.os.Binder; +import android.os.IBinder; +import android.os.Process; +import android.os.RemoteException; +import android.util.Log; + +/** + * A client class for interaction with an Activity-Recognition provider. + */ +public abstract class ActivityRecognitionProviderClient { + private static final String TAG = "ArProviderClient"; + + protected ActivityRecognitionProviderClient() {} + + private IActivityRecognitionHardwareClient.Stub mClient = + new IActivityRecognitionHardwareClient.Stub() { + @Override + public void onAvailabilityChanged( + boolean isSupported, + IActivityRecognitionHardware instance) { + int callingUid = Binder.getCallingUid(); + if (callingUid != Process.SYSTEM_UID) { + Log.d(TAG, "Ignoring calls from non-system server. Uid: " + callingUid); + return; + } + ActivityRecognitionProvider provider; + try { + provider = isSupported ? new ActivityRecognitionProvider(instance) : null; + } catch (RemoteException e) { + Log.e(TAG, "Error creating Hardware Activity-Recognition Provider.", e); + return; + } + onProviderChanged(isSupported, provider); + } + }; + + /** + * Gets the binder needed to interact with proxy provider in the platform. + */ + @NonNull + public IBinder getBinder() { + return mClient; + } + + /** + * Called when a change in the availability of {@link ActivityRecognitionProvider} is detected. + * + * @param isSupported whether the platform supports the provider natively + * @param instance the available provider's instance + */ + public abstract void onProviderChanged( + boolean isSupported, + ActivityRecognitionProvider instance); +} diff --git a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java index 03dd0426693b..7139025d2722 100644 --- a/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java +++ b/location/lib/java/com/android/location/provider/ActivityRecognitionProviderWatcher.java @@ -28,7 +28,10 @@ import android.util.Log; /** * A watcher class for Activity-Recognition instances. + * + * @deprecated use {@link ActivityRecognitionProviderClient} instead. */ +@Deprecated public class ActivityRecognitionProviderWatcher { private static final String TAG = "ActivityRecognitionProviderWatcher"; diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java index 0f1be6b76d87..e92f29484dc5 100644 --- a/media/java/android/media/AudioAttributes.java +++ b/media/java/android/media/AudioAttributes.java @@ -671,15 +671,15 @@ public final class AudioAttributes implements Parcelable { case USAGE_VOICE_COMMUNICATION: return new String("USAGE_VOICE_COMMUNICATION"); case USAGE_VOICE_COMMUNICATION_SIGNALLING: - return new String("USAGE_VOICE_COMMUNICATION"); + return new String("USAGE_VOICE_COMMUNICATION_SIGNALLING"); case USAGE_ALARM: return new String("USAGE_ALARM"); case USAGE_NOTIFICATION: return new String("USAGE_NOTIFICATION"); case USAGE_NOTIFICATION_RINGTONE: - return new String("USAGE_NOTIFICATION"); + return new String("USAGE_NOTIFICATION_RINGTONE"); case USAGE_NOTIFICATION_COMMUNICATION_REQUEST: - return new String("USAGE_NOTIFICATION"); + return new String("USAGE_NOTIFICATION_COMMUNICATION_REQUEST"); case USAGE_NOTIFICATION_COMMUNICATION_INSTANT: return new String("USAGE_NOTIFICATION_COMMUNICATION_INSTANT"); case USAGE_NOTIFICATION_COMMUNICATION_DELAYED: diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java index e99a37a41d30..c59d1c7b9999 100644 --- a/media/java/android/media/AudioSystem.java +++ b/media/java/android/media/AudioSystem.java @@ -279,6 +279,7 @@ public class AudioSystem public static final int PERMISSION_DENIED = -4; public static final int NO_INIT = -5; public static final int DEAD_OBJECT = -6; + public static final int WOULD_BLOCK = -7; /* * AudioPolicyService methods diff --git a/media/java/android/media/AudioTrack.java b/media/java/android/media/AudioTrack.java index 8880dad99270..bb4f7d9b7ad9 100644 --- a/media/java/android/media/AudioTrack.java +++ b/media/java/android/media/AudioTrack.java @@ -158,6 +158,18 @@ public class AudioTrack * Denotes a failure due to the improper use of a method. */ public static final int ERROR_INVALID_OPERATION = AudioSystem.INVALID_OPERATION; + /** + * An error code indicating that the object reporting it is no longer valid and needs to + * be recreated. + * @hide + */ + public static final int ERROR_DEAD_OBJECT = AudioSystem.DEAD_OBJECT; + /** + * {@link #getTimestampWithStatus(AudioTimestamp)} is called in STOPPED or FLUSHED state, + * or immediately after start/ACTIVE. + * @hide + */ + public static final int ERROR_WOULD_BLOCK = AudioSystem.WOULD_BLOCK; // Error codes: // to keep in sync with frameworks/base/core/jni/android_media_AudioTrack.cpp @@ -1225,6 +1237,44 @@ public class AudioTrack return true; } + /** + * Poll for a timestamp on demand. + * <p> + * Same as {@link #getTimestamp(AudioTimestamp)} but with a more useful return code. + * + * @param timestamp a reference to a non-null AudioTimestamp instance allocated + * and owned by caller. + * @return {@link #SUCCESS} if a timestamp is available + * {@link #ERROR_WOULD_BLOCK} if called in STOPPED or FLUSHED state, or if called + * immediately after start/ACTIVE, when the number of frames consumed is less than the + * overall hardware latency to physical output. In WOULD_BLOCK cases, one might poll + * again, or use {@link #getPlaybackHeadPosition}, or use 0 position and current time + * for the timestamp. + * {@link #ERROR_DEAD_OBJECT} if the AudioTrack is not valid anymore and + * needs to be recreated. + * {@link #ERROR_INVALID_OPERATION} if current route does not support + * timestamps. In this case, the approximate frame position can be obtained + * using {@link #getPlaybackHeadPosition}. + * + * The AudioTimestamp instance is filled in with a position in frame units, together + * with the estimated time when that frame was presented or is committed to + * be presented. + * @hide + */ + // Add this text when the "on new timestamp" API is added: + // Use if you need to get the most recent timestamp outside of the event callback handler. + public int getTimestampWithStatus(AudioTimestamp timestamp) + { + if (timestamp == null) { + throw new IllegalArgumentException(); + } + // It's unfortunate, but we have to either create garbage every time or use synchronized + long[] longArray = new long[2]; + int ret = native_get_timestamp(longArray); + timestamp.framePosition = longArray[0]; + timestamp.nanoTime = longArray[1]; + return ret; + } //-------------------------------------------------------------------------- // Initialization / configuration diff --git a/native/android/sensor.cpp b/native/android/sensor.cpp index 26b41e85fddd..76c701a5b8ce 100644 --- a/native/android/sensor.cpp +++ b/native/android/sensor.cpp @@ -38,10 +38,6 @@ using android::String8; using android::String16; /*****************************************************************************/ - -android::Mutex android::SensorManager::sLock; -std::map<String16, SensorManager*> android::SensorManager::sPackageInstances; - ASensorManager* ASensorManager_getInstance() { return ASensorManager_getInstanceForPackage(NULL); @@ -206,4 +202,4 @@ int ASensor_getReportingMode(ASensor const* sensor) bool ASensor_isWakeUpSensor(ASensor const* sensor) { return static_cast<Sensor const*>(sensor)->isWakeUpSensor(); -}
\ No newline at end of file +} diff --git a/packages/FusedLocation/src/com/android/location/fused/FusionEngine.java b/packages/FusedLocation/src/com/android/location/fused/FusionEngine.java index 5e9ec10938f4..7a4952484e46 100644 --- a/packages/FusedLocation/src/com/android/location/fused/FusionEngine.java +++ b/packages/FusedLocation/src/com/android/location/fused/FusionEngine.java @@ -37,7 +37,7 @@ import android.util.Log; public class FusionEngine implements LocationListener { public interface Callback { - public void reportLocation(Location location); + void reportLocation(Location location); } private static final String TAG = "FusedLocation"; @@ -45,7 +45,7 @@ public class FusionEngine implements LocationListener { private static final String GPS = LocationManager.GPS_PROVIDER; private static final String FUSED = LocationProviderBase.FUSED_PROVIDER; - public static final long SWITCH_ON_FRESHNESS_CLIFF_NS = 11 * 1000000000; // 11 seconds + public static final long SWITCH_ON_FRESHNESS_CLIFF_NS = 11 * 1000000000L; // 11 seconds private final Context mContext; private final LocationManager mLocationManager; @@ -60,7 +60,7 @@ public class FusionEngine implements LocationListener { private boolean mEnabled; private ProviderRequestUnbundled mRequest; - private final HashMap<String, ProviderStats> mStats = new HashMap<String, ProviderStats>(); + private final HashMap<String, ProviderStats> mStats = new HashMap<>(); public FusionEngine(Context context, Looper looper) { mContext = context; @@ -72,9 +72,7 @@ public class FusionEngine implements LocationListener { mLooper = looper; mStats.put(GPS, new ProviderStats()); - mStats.get(GPS).available = mLocationManager.isProviderEnabled(GPS); mStats.put(NETWORK, new ProviderStats()); - mStats.get(NETWORK).available = mLocationManager.isProviderEnabled(NETWORK); } @@ -119,35 +117,35 @@ public class FusionEngine implements LocationListener { } private static class ProviderStats { - public boolean available; public boolean requested; public long requestTime; public long minTime; @Override public String toString() { - StringBuilder s = new StringBuilder(); - s.append(available ? "AVAILABLE" : "UNAVAILABLE"); - s.append(requested ? " REQUESTED" : " ---"); - return s.toString(); + return (requested ? " REQUESTED" : " ---"); } } private void enableProvider(String name, long minTime) { ProviderStats stats = mStats.get(name); + if (stats == null) return; - if (!stats.requested) { - stats.requestTime = SystemClock.elapsedRealtime(); - stats.requested = true; - stats.minTime = minTime; - mLocationManager.requestLocationUpdates(name, minTime, 0, this, mLooper); - } else if (stats.minTime != minTime) { - stats.minTime = minTime; - mLocationManager.requestLocationUpdates(name, minTime, 0, this, mLooper); + if (mLocationManager.isProviderEnabled(name)) { + if (!stats.requested) { + stats.requestTime = SystemClock.elapsedRealtime(); + stats.requested = true; + stats.minTime = minTime; + mLocationManager.requestLocationUpdates(name, minTime, 0, this, mLooper); + } else if (stats.minTime != minTime) { + stats.minTime = minTime; + mLocationManager.requestLocationUpdates(name, minTime, 0, this, mLooper); + } } } private void disableProvider(String name) { ProviderStats stats = mStats.get(name); + if (stats == null) return; if (stats.requested) { stats.requested = false; @@ -156,7 +154,7 @@ public class FusionEngine implements LocationListener { } private void updateRequirements() { - if (mEnabled == false || mRequest == null) { + if (!mEnabled || mRequest == null) { mRequest = null; disableProvider(NETWORK); disableProvider(GPS); @@ -248,7 +246,7 @@ public class FusionEngine implements LocationListener { mFusedLocation.setExtras(dstExtras); } dstExtras.putParcelable(LocationProviderBase.EXTRA_NO_GPS_LOCATION, - (Location) srcParcelable); + srcParcelable); } } } @@ -278,25 +276,15 @@ public class FusionEngine implements LocationListener { /** Called on mLooper thread */ @Override - public void onProviderEnabled(String provider) { - ProviderStats stats = mStats.get(provider); - if (stats == null) return; - - stats.available = true; - } + public void onProviderEnabled(String provider) { } /** Called on mLooper thread */ @Override - public void onProviderDisabled(String provider) { - ProviderStats stats = mStats.get(provider); - if (stats == null) return; - - stats.available = false; - } + public void onProviderDisabled(String provider) { } public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { StringBuilder s = new StringBuilder(); - s.append("mEnabled=" + mEnabled).append(' ').append(mRequest).append('\n'); + s.append("mEnabled=").append(mEnabled).append(' ').append(mRequest).append('\n'); s.append("fused=").append(mFusedLocation).append('\n'); s.append(String.format("gps %s\n", mGpsLocation)); s.append(" ").append(mStats.get(GPS)).append('\n'); diff --git a/packages/Keyguard/res/values/config.xml b/packages/Keyguard/res/values/config.xml index 8d9d6ee68c67..b398ab2320b0 100644 --- a/packages/Keyguard/res/values/config.xml +++ b/packages/Keyguard/res/values/config.xml @@ -22,4 +22,10 @@ <!-- Allow the menu hard key to be disabled in LockScreen on some devices [DO NOT TRANSLATE] --> <bool name="config_disableMenuKeyInLockScreen">false</bool> + + <!-- Threshold in micro amperes below which a charger is rated as "slow" --> + <integer name="config_chargingSlowlyThreshold">1000000</integer> + + <!-- Threshold in micro amperes above which a charger is rated as "fast" --> + <integer name="config_chargingFastThreshold">1500000</integer> </resources> diff --git a/packages/Keyguard/res/values/strings.xml b/packages/Keyguard/res/values/strings.xml index cba122f3c8bd..d1e84f5ee3bc 100644 --- a/packages/Keyguard/res/values/strings.xml +++ b/packages/Keyguard/res/values/strings.xml @@ -56,6 +56,14 @@ is not fully charged, say that it's charging. --> <string name="keyguard_plugged_in">Charging</string> + <!-- When the lock screen is showing and the phone plugged in, and the battery + is not fully charged, and it's plugged into a fast charger, say that it's charging fast. --> + <string name="keyguard_plugged_in_charging_fast">Charging rapidly</string> + + <!-- When the lock screen is showing and the phone plugged in, and the battery + is not fully charged, and it's plugged into a slow charger, say that it's charging slowly. --> + <string name="keyguard_plugged_in_charging_slowly">Charging slowly</string> + <!-- When the lock screen is showing and the battery is low, warn user to plug in the phone soon. --> <string name="keyguard_low_battery">Connect your charger.</string> @@ -308,6 +316,15 @@ <!-- An explanation text that the password needs to be entered since the device has just been restarted. [CHAR LIMIT=80] --> <string name="kg_prompt_reason_restart_password">Password required when you restart device.</string> + <!-- An explanation text that the pattern needs to be solved since the user hasn't used strong authentication since quite some time. [CHAR LIMIT=80] --> + <string name="kg_prompt_reason_timeout_pattern">Pattern required for additional security.</string> + + <!-- An explanation text that the pin needs to be entered since the user hasn't used strong authentication since quite some time. [CHAR LIMIT=80] --> + <string name="kg_prompt_reason_timeout_pin">PIN required for additional security.</string> + + <!-- An explanation text that the password needs to be entered since the user hasn't used strong authentication since quite some time. [CHAR LIMIT=80] --> + <string name="kg_prompt_reason_timeout_password">Password required for additional security.</string> + <!-- An explanation text that the pattern needs to be solved since profiles have just been switched. [CHAR LIMIT=80] --> <string name="kg_prompt_reason_switch_profiles_pattern">Pattern required when you switch profiles.</string> diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java index 8f792de32db9..b03871a4a50e 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardAbsKeyInputView.java @@ -40,6 +40,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout protected SecurityMessageDisplay mSecurityMessageDisplay; protected View mEcaView; protected boolean mEnableHaptics; + private boolean mDismissing; // To avoid accidental lockout due to events while the device in in the pocket, ignore // any passwords with length less than or equal to this length. @@ -67,6 +68,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout @Override public void reset() { // start fresh + mDismissing = false; resetPasswordText(false /* animate */); // if the user is currently locked out, enforce it. long deadline = mLockPatternUtils.getLockoutAttemptDeadline( @@ -113,6 +115,8 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout } protected void verifyPasswordAndUnlock() { + if (mDismissing) return; // already verified but haven't been dismissed; don't do it again. + final String entry = getPasswordText(); setPasswordEntryInputEnabled(false); if (mPendingLockCheck != null) { @@ -143,6 +147,7 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout private void onPasswordChecked(boolean matched, int timeoutMs, boolean isValidPassword) { if (matched) { + mDismissing = true; mCallback.reportUnlockAttempt(true, 0); mCallback.dismiss(true); } else { @@ -234,6 +239,12 @@ public abstract class KeyguardAbsKeyInputView extends LinearLayout } } + @Override + public void showMessage(String message, int color) { + mSecurityMessageDisplay.setNextMessageColor(color); + mSecurityMessageDisplay.setMessage(message, true /* important */); + } + protected abstract int getPromtReasonStringRes(int reason); // Cause a VIRTUAL_KEY vibration diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java index ff4e8154d0f5..ec2a173d52ea 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardHostView.java @@ -163,13 +163,18 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { * Show a string explaining why the security view needs to be solved. * * @param reason a flag indicating which string should be shown, see - * {@link KeyguardSecurityView#PROMPT_REASON_NONE} - * and {@link KeyguardSecurityView#PROMPT_REASON_RESTART} + * {@link KeyguardSecurityView#PROMPT_REASON_NONE}, + * {@link KeyguardSecurityView#PROMPT_REASON_RESTART} and + * {@link KeyguardSecurityView#PROMPT_REASON_TIMEOUT}. */ public void showPromptReason(int reason) { mSecurityContainer.showPromptReason(reason); } + public void showMessage(String message, int color) { + mSecurityContainer.showMessage(message, color); + } + /** * Dismisses the keyguard by going to the next screen or making it gone. * @@ -209,9 +214,12 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { /** * Authentication has happened and it's time to dismiss keyguard. This function * should clean up and inform KeyguardViewMediator. + * + * @param strongAuth whether the user has authenticated with strong authentication like + * pattern, password or PIN but not by trust agents or fingerprint */ @Override - public void finish() { + public void finish(boolean strongAuth) { // If there's a pending runnable because the user interacted with a widget // and we're leaving keyguard, then run it. boolean deferKeyguardDone = false; @@ -222,9 +230,9 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { } if (mViewMediatorCallback != null) { if (deferKeyguardDone) { - mViewMediatorCallback.keyguardDonePending(); + mViewMediatorCallback.keyguardDonePending(strongAuth); } else { - mViewMediatorCallback.keyguardDone(true); + mViewMediatorCallback.keyguardDone(strongAuth); } } } @@ -281,32 +289,6 @@ public class KeyguardHostView extends FrameLayout implements SecurityCallback { } /** - * Verify that the user can get past the keyguard securely. This is called, - * for example, when the phone disables the keyguard but then wants to launch - * something else that requires secure access. - * - * The result will be propogated back via {@link KeyguardViewCallback#keyguardDone(boolean)} - */ - public void verifyUnlock() { - SecurityMode securityMode = mSecurityContainer.getSecurityMode(); - if (securityMode == KeyguardSecurityModel.SecurityMode.None) { - if (mViewMediatorCallback != null) { - mViewMediatorCallback.keyguardDone(true); - } - } else if (securityMode != KeyguardSecurityModel.SecurityMode.Pattern - && securityMode != KeyguardSecurityModel.SecurityMode.PIN - && securityMode != KeyguardSecurityModel.SecurityMode.Password) { - // can only verify unlock when in pattern/password mode - if (mViewMediatorCallback != null) { - mViewMediatorCallback.keyguardDone(false); - } - } else { - // otherwise, go to the unlock screen, see if they can verify it - mSecurityContainer.verifyUnlock(); - } - } - - /** * Called before this view is being removed. */ public void cleanUp() { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java index 2951af915ff8..c8adf640f523 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardMessageArea.java @@ -39,15 +39,18 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { * lift-to-type from interrupting itself. */ private static final long ANNOUNCEMENT_DELAY = 250; + private static final int DEFAULT_COLOR = -1; private static final int SECURITY_MESSAGE_DURATION = 5000; private final KeyguardUpdateMonitor mUpdateMonitor; private final Handler mHandler; + private final int mDefaultColor; // Timeout before we reset the message to show charging/owner info long mTimeout = SECURITY_MESSAGE_DURATION; CharSequence mMessage; + private int mNextMessageColor = DEFAULT_COLOR; private final Runnable mClearMessageRunnable = new Runnable() { @Override @@ -78,10 +81,16 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { mUpdateMonitor.registerCallback(mInfoCallback); mHandler = new Handler(Looper.myLooper()); + mDefaultColor = getCurrentTextColor(); update(); } @Override + public void setNextMessageColor(int color) { + mNextMessageColor = color; + } + + @Override public void setMessage(CharSequence msg, boolean important) { if (!TextUtils.isEmpty(msg) && important) { securityMessageChanged(msg); @@ -151,6 +160,12 @@ class KeyguardMessageArea extends TextView implements SecurityMessageDisplay { CharSequence status = mMessage; setVisibility(TextUtils.isEmpty(status) ? INVISIBLE : VISIBLE); setText(status); + int color = mDefaultColor; + if (mNextMessageColor != DEFAULT_COLOR) { + color = mNextMessageColor; + mNextMessageColor = DEFAULT_COLOR; + } + setTextColor(color); } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java index 2db87b330077..3a7e6d0a9b54 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPasswordView.java @@ -115,6 +115,8 @@ public class KeyguardPasswordView extends KeyguardAbsKeyInputView switch (reason) { case PROMPT_REASON_RESTART: return R.string.kg_prompt_reason_restart_password; + case PROMPT_REASON_TIMEOUT: + return R.string.kg_prompt_reason_timeout_password; default: return 0; } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java index 4bd1a2ed29fc..9a91ca435db0 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPatternView.java @@ -15,10 +15,6 @@ */ package com.android.keyguard; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Rect; import android.os.AsyncTask; @@ -28,7 +24,6 @@ import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; -import android.view.RenderNodeAnimator; import android.view.View; import android.view.ViewGroup; import android.view.animation.AnimationUtils; @@ -337,11 +332,22 @@ public class KeyguardPatternView extends LinearLayout implements KeyguardSecurit mSecurityMessageDisplay.setMessage(R.string.kg_prompt_reason_restart_pattern, true /* important */); break; + case PROMPT_REASON_TIMEOUT: + mSecurityMessageDisplay.setMessage(R.string.kg_prompt_reason_timeout_pattern, + true /* important */); + break; default: + break; } } @Override + public void showMessage(String message, int color) { + mSecurityMessageDisplay.setNextMessageColor(color); + mSecurityMessageDisplay.setMessage(message, true /* important */); + } + + @Override public void startAppearAnimation() { enableClipping(false); setAlpha(1f); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java index 07947b182d46..f51e10fd0191 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardPinBasedInputView.java @@ -62,18 +62,21 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView return mPasswordEntry.requestFocus(direction, previouslyFocusedRect); } + @Override protected void resetState() { - mPasswordEntry.setEnabled(true); + setPasswordEntryEnabled(true); } @Override protected void setPasswordEntryEnabled(boolean enabled) { mPasswordEntry.setEnabled(enabled); + mOkButton.setEnabled(enabled); } @Override protected void setPasswordEntryInputEnabled(boolean enabled) { mPasswordEntry.setEnabled(enabled); + mOkButton.setEnabled(enabled); } @Override @@ -98,6 +101,8 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView switch (reason) { case PROMPT_REASON_RESTART: return R.string.kg_prompt_reason_restart_pin; + case PROMPT_REASON_TIMEOUT: + return R.string.kg_prompt_reason_timeout_pin; default: return 0; } @@ -184,6 +189,7 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView mDeleteButton = findViewById(R.id.delete_button); mDeleteButton.setVisibility(View.VISIBLE); mDeleteButton.setOnClickListener(new OnClickListener() { + @Override public void onClick(View v) { // check for time-based lockouts if (mPasswordEntry.isEnabled()) { @@ -193,6 +199,7 @@ public abstract class KeyguardPinBasedInputView extends KeyguardAbsKeyInputView } }); mDeleteButton.setOnLongClickListener(new View.OnLongClickListener() { + @Override public boolean onLongClick(View v) { // check for time-based lockouts if (mPasswordEntry.isEnabled()) { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java index 85da29837f54..77215a745d54 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityContainer.java @@ -54,7 +54,12 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe public boolean dismiss(boolean authenticated); public void userActivity(); public void onSecurityModeChanged(SecurityMode securityMode, boolean needsInput); - public void finish(); + + /** + * @param strongAuth wheher the user has authenticated with strong authentication like + * pattern, password or PIN but not by trust agents or fingerprint + */ + public void finish(boolean strongAuth); public void reset(); } @@ -282,7 +287,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe showWipeDialog(failedAttempts, userType); } } - monitor.reportFailedUnlockAttempt(); + monitor.reportFailedStrongAuthUnlockAttempt(); mLockPatternUtils.reportFailedPasswordAttempt(KeyguardUpdateMonitor.getCurrentUser()); if (timeoutMs > 0) { showTimeoutDialog(timeoutMs); @@ -308,6 +313,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe boolean showNextSecurityScreenOrFinish(boolean authenticated) { if (DEBUG) Log.d(TAG, "showNextSecurityScreenOrFinish(" + authenticated + ")"); boolean finish = false; + boolean strongAuth = false; if (mUpdateMonitor.getUserCanSkipBouncer( KeyguardUpdateMonitor.getCurrentUser())) { finish = true; @@ -323,6 +329,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe case Pattern: case Password: case PIN: + strongAuth = true; finish = true; break; @@ -346,7 +353,7 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe } } if (finish) { - mSecurityCallback.finish(); + mSecurityCallback.finish(strongAuth); } return finish; } @@ -518,6 +525,13 @@ public class KeyguardSecurityContainer extends FrameLayout implements KeyguardSe } } + + public void showMessage(String message, int color) { + if (mCurrentSecuritySelection != SecurityMode.None) { + getSecurityView(mCurrentSecuritySelection).showMessage(message, color); + } + } + @Override public void showUsabilityHint() { mSecurityViewFlipper.showUsabilityHint(); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java index 5658a7492d93..38302fb7ad71 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityView.java @@ -22,9 +22,18 @@ public interface KeyguardSecurityView { static public final int VIEW_REVEALED = 2; int PROMPT_REASON_NONE = 0; + + /** + * Strong auth is required because the device has just booted. + */ int PROMPT_REASON_RESTART = 1; /** + * Strong auth is required because the user hasn't used strong auth since a while. + */ + int PROMPT_REASON_TIMEOUT = 2; + + /** * Interface back to keyguard to tell it when security * @param callback */ @@ -77,6 +86,14 @@ public interface KeyguardSecurityView { void showPromptReason(int reason); /** + * Show a message on the security view with a specified color + * + * @param message the message to show + * @param color the color to use + */ + void showMessage(String message, int color); + + /** * Instruct the view to show usability hints, if any. * */ diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java index a0ff21b1fd51..6012c4501412 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSecurityViewFlipper.java @@ -139,6 +139,14 @@ public class KeyguardSecurityViewFlipper extends ViewFlipper implements Keyguard } @Override + public void showMessage(String message, int color) { + KeyguardSecurityView ksv = getSecurityView(); + if (ksv != null) { + ksv.showMessage(message, color); + } + } + + @Override public void showUsabilityHint() { KeyguardSecurityView ksv = getSecurityView(); if (ksv != null) { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java index aeac91215be6..2033159af720 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardSimPinView.java @@ -23,6 +23,7 @@ import com.android.internal.telephony.PhoneConstants; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.Configuration; import android.content.res.Resources; import android.app.AlertDialog; import android.app.AlertDialog.Builder; @@ -96,6 +97,12 @@ public class KeyguardSimPinView extends KeyguardPinBasedInputView { } @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + resetState(); + } + + @Override protected int getPromtReasonStringRes(int reason) { // No message on SIM Pin return 0; diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index c7adc986565f..57ee319f8ff3 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -29,46 +29,38 @@ import android.content.Intent; import android.content.IntentFilter; import android.database.ContentObserver; import android.graphics.Bitmap; - -import static android.os.BatteryManager.BATTERY_STATUS_FULL; -import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; -import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN; -import static android.os.BatteryManager.EXTRA_STATUS; -import static android.os.BatteryManager.EXTRA_PLUGGED; -import static android.os.BatteryManager.EXTRA_LEVEL; -import static android.os.BatteryManager.EXTRA_HEALTH; - +import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; +import android.hardware.fingerprint.FingerprintManager.AuthenticationCallback; +import android.hardware.fingerprint.FingerprintManager.AuthenticationResult; import android.media.AudioManager; import android.os.BatteryManager; import android.os.CancellationSignal; import android.os.Handler; import android.os.IRemoteCallback; import android.os.Message; -import android.os.PowerManager; import android.os.RemoteException; import android.os.SystemClock; import android.os.UserHandle; import android.provider.Settings; - -import com.android.internal.telephony.IccCardConstants; -import com.android.internal.telephony.IccCardConstants.State; -import com.android.internal.telephony.PhoneConstants; -import com.android.internal.telephony.TelephonyIntents; - -import android.hardware.fingerprint.FingerprintManager; -import android.hardware.fingerprint.FingerprintManager.AuthenticationCallback; -import android.hardware.fingerprint.FingerprintManager.AuthenticationResult; import android.telephony.ServiceState; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; +import android.util.ArraySet; import android.util.Log; import android.util.SparseBooleanArray; import android.util.SparseIntArray; import com.google.android.collect.Lists; +import com.android.internal.telephony.IccCardConstants; +import com.android.internal.telephony.IccCardConstants.State; +import com.android.internal.telephony.PhoneConstants; +import com.android.internal.telephony.TelephonyIntents; +import com.android.internal.widget.LockPatternUtils; + import java.io.FileDescriptor; import java.io.PrintWriter; import java.lang.ref.WeakReference; @@ -77,6 +69,15 @@ import java.util.HashMap; import java.util.List; import java.util.Map.Entry; +import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN; +import static android.os.BatteryManager.BATTERY_STATUS_FULL; +import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; +import static android.os.BatteryManager.EXTRA_HEALTH; +import static android.os.BatteryManager.EXTRA_LEVEL; +import static android.os.BatteryManager.EXTRA_MAX_CHARGING_CURRENT; +import static android.os.BatteryManager.EXTRA_PLUGGED; +import static android.os.BatteryManager.EXTRA_STATUS; + /** * Watches for updates that may be interesting to the keyguard, and provides * the up to date information as well as a registration for callbacks that care @@ -92,32 +93,24 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private static final String TAG = "KeyguardUpdateMonitor"; private static final boolean DEBUG = KeyguardConstants.DEBUG; private static final boolean DEBUG_SIM_STATES = KeyguardConstants.DEBUG_SIM_STATES; - private static final boolean DEBUG_FP_WAKELOCK = KeyguardConstants.DEBUG_FP_WAKELOCK; private static final int LOW_BATTERY_THRESHOLD = 20; - private static final long FINGERPRINT_WAKELOCK_TIMEOUT_MS = 15 * 1000; private static final String ACTION_FACE_UNLOCK_STARTED = "com.android.facelock.FACE_UNLOCK_STARTED"; private static final String ACTION_FACE_UNLOCK_STOPPED = "com.android.facelock.FACE_UNLOCK_STOPPED"; - private static final String FINGERPRINT_WAKE_LOCK_NAME = "wake-and-unlock wakelock"; - /** - * Mode in which we don't need to wake up the device when we get a fingerprint. - */ - private static final int FP_WAKE_NONE = 0; + private static final String ACTION_STRONG_AUTH_TIMEOUT = + "com.android.systemui.ACTION_STRONG_AUTH_TIMEOUT"; + private static final String USER_ID = "com.android.systemui.USER_ID"; - /** - * Mode in which we wake up the device, and directly dismiss Keyguard. Active when we acquire - * a fingerprint while the screen is off and the device was sleeping. - */ - private static final int FP_WAKE_DIRECT_UNLOCK = 1; + private static final String PERMISSION_SELF = "com.android.systemui.permission.SELF"; /** - * Mode in which we wake up the device, but play the normal dismiss animation. Active when we - * acquire a fingerprint pulsing in doze mode. - * */ - private static final int FP_WAKE_WAKE_TO_BOUNCER = 2; + * Milliseconds after unlocking with fingerprint times out, i.e. the user has to use a + * strong auth method like password, PIN or pattern. + */ + private static final long FINGERPRINT_UNLOCK_TIMEOUT_MS = 72 * 60 * 60 * 1000; // Callback messages private static final int MSG_TIME_UPDATE = 301; @@ -128,7 +121,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private static final int MSG_DEVICE_PROVISIONED = 308; private static final int MSG_DPM_STATE_CHANGED = 309; private static final int MSG_USER_SWITCHING = 310; - private static final int MSG_KEYGUARD_VISIBILITY_CHANGED = 311; private static final int MSG_KEYGUARD_RESET = 312; private static final int MSG_BOOT_COMPLETED = 313; private static final int MSG_USER_SWITCH_COMPLETE = 314; @@ -136,11 +128,32 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private static final int MSG_REPORT_EMERGENCY_CALL_ACTION = 318; private static final int MSG_STARTED_WAKING_UP = 319; private static final int MSG_FINISHED_GOING_TO_SLEEP = 320; + private static final int MSG_STARTED_GOING_TO_SLEEP = 321; private static final int MSG_KEYGUARD_BOUNCER_CHANGED = 322; private static final int MSG_FACE_UNLOCK_STATE_CHANGED = 327; private static final int MSG_SIM_SUBSCRIPTION_INFO_CHANGED = 328; private static final int MSG_AIRPLANE_MODE_CHANGED = 329; private static final int MSG_SERVICE_STATE_CHANGE = 330; + private static final int MSG_SCREEN_TURNED_ON = 331; + private static final int MSG_SCREEN_TURNED_OFF = 332; + + /** Fingerprint state: Not listening to fingerprint. */ + private static final int FINGERPRINT_STATE_STOPPED = 0; + + /** Fingerprint state: Listening. */ + private static final int FINGERPRINT_STATE_RUNNING = 1; + + /** + * Fingerprint state: Cancelling and waiting for the confirmation from FingerprintService to + * send us the confirmation that cancellation has happened. + */ + private static final int FINGERPRINT_STATE_CANCELLING = 2; + + /** + * Fingerprint state: During cancelling we got another request to start listening, so when we + * receive the cancellation done signal, we should start listening again. + */ + private static final int FINGERPRINT_STATE_CANCELLING_RESTARTING = 3; private static KeyguardUpdateMonitor sInstance; @@ -151,9 +164,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private int mRingMode; private int mPhoneState; private boolean mKeyguardIsVisible; + + /** + * If true, fingerprint was already authenticated and we don't need to start listening again + * until the Keyguard has been dismissed. + */ + private boolean mFingerprintAlreadyAuthenticated; + private boolean mGoingToSleep; private boolean mBouncer; private boolean mBootCompleted; - private boolean mUserHasAuthenticatedSinceBoot; // Device provisioning state private boolean mDeviceProvisioned; @@ -164,7 +183,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { // Password attempts private SparseIntArray mFailedAttempts = new SparseIntArray(); - private boolean mClockVisible; + /** Tracks whether strong authentication hasn't been used since quite some time per user. */ + private ArraySet<Integer> mStrongAuthNotTimedOut = new ArraySet<>(); + private final StrongAuthTracker mStrongAuthTracker = new StrongAuthTracker(); private final ArrayList<WeakReference<KeyguardUpdateMonitorCallback>> mCallbacks = Lists.newArrayList(); @@ -175,10 +196,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private boolean mDeviceInteractive; private boolean mScreenOn; private SubscriptionManager mSubscriptionManager; + private AlarmManager mAlarmManager; private List<SubscriptionInfo> mSubscriptionInfo; - private boolean mFingerprintDetectionRunning; private TrustManager mTrustManager; - private PowerManager mPowerManager; + private int mFingerprintRunningState = FINGERPRINT_STATE_STOPPED; private final Handler mHandler = new Handler() { @Override @@ -211,9 +232,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { case MSG_USER_SWITCH_COMPLETE: handleUserSwitchComplete(msg.arg1); break; - case MSG_KEYGUARD_VISIBILITY_CHANGED: - handleKeyguardVisibilityChanged(msg.arg1); - break; case MSG_KEYGUARD_RESET: handleKeyguardReset(); break; @@ -229,6 +247,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { case MSG_REPORT_EMERGENCY_CALL_ACTION: handleReportEmergencyCallAction(); break; + case MSG_STARTED_GOING_TO_SLEEP: + handleStartedGoingToSleep(msg.arg1); + break; case MSG_FINISHED_GOING_TO_SLEEP: handleFinishedGoingToSleep(msg.arg1); break; @@ -247,6 +268,12 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { case MSG_SERVICE_STATE_CHANGE: handleServiceStateChange(msg.arg1, (ServiceState) msg.obj); break; + case MSG_SCREEN_TURNED_ON: + handleScreenTurnedOn(); + break; + case MSG_SCREEN_TURNED_OFF: + handleScreenTurnedOff(); + break; } } }; @@ -266,8 +293,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private static int sCurrentUser; - private int mFpWakeMode; - public synchronized static void setCurrentUser(int currentUser) { sCurrentUser = currentUser; } @@ -368,18 +393,28 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } - private void onFingerprintAuthenticated(int userId, boolean wakeAndUnlocking) { + private void onFingerprintAuthenticated(int userId) { mUserFingerprintAuthenticated.put(userId, true); + + // If fingerprint unlocking is allowed, this event will lead to a Keyguard dismiss or to a + // wake-up (if Keyguard is not showing), so we don't need to listen until Keyguard is + // fully gone. + mFingerprintAlreadyAuthenticated = isUnlockingWithFingerprintAllowed(); for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { - cb.onFingerprintAuthenticated(userId, wakeAndUnlocking); + cb.onFingerprintAuthenticated(userId); } } } private void handleFingerprintAuthFailed() { - releaseFingerprintWakeLock(); + for (int i = 0; i < mCallbacks.size(); i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onFingerprintAuthFailed(); + } + } handleFingerprintHelp(-1, mContext.getString(R.string.fingerprint_not_recognized)); } @@ -387,53 +422,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { if (acquireInfo != FingerprintManager.FINGERPRINT_ACQUIRED_GOOD) { return; } - if (!mDeviceInteractive && !mScreenOn) { - releaseFingerprintWakeLock(); - mWakeLock = mPowerManager.newWakeLock( - PowerManager.PARTIAL_WAKE_LOCK, FINGERPRINT_WAKE_LOCK_NAME); - mWakeLock.acquire(); - mFpWakeMode = FP_WAKE_DIRECT_UNLOCK; - if (DEBUG_FP_WAKELOCK) { - Log.i(TAG, "fingerprint acquired, grabbing fp wakelock"); - } - mHandler.postDelayed(mReleaseFingerprintWakeLockRunnable, - FINGERPRINT_WAKELOCK_TIMEOUT_MS); - } else if (!mDeviceInteractive) { - mFpWakeMode = FP_WAKE_WAKE_TO_BOUNCER; - } else { - mFpWakeMode = FP_WAKE_NONE; - } - } - - private final Runnable mReleaseFingerprintWakeLockRunnable = new Runnable() { - @Override - public void run() { - if (DEBUG_FP_WAKELOCK) { - Log.i(TAG, "fp wakelock: TIMEOUT!!"); - } - releaseFingerprintWakeLock(); - } - }; - - private void releaseFingerprintWakeLock() { - if (mWakeLock != null) { - mHandler.removeCallbacks(mReleaseFingerprintWakeLockRunnable); - if (DEBUG_FP_WAKELOCK) { - Log.i(TAG, "releasing fp wakelock"); + for (int i = 0; i < mCallbacks.size(); i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onFingerprintAcquired(); } - mWakeLock.release(); - mWakeLock = null; } } private void handleFingerprintAuthenticated() { - if (mFpWakeMode == FP_WAKE_WAKE_TO_BOUNCER || mFpWakeMode == FP_WAKE_DIRECT_UNLOCK) { - if (DEBUG_FP_WAKELOCK) { - Log.i(TAG, "fp wakelock: Authenticated, waking up..."); - } - mPowerManager.wakeUp(SystemClock.uptimeMillis()); - } - releaseFingerprintWakeLock(); try { final int userId; try { @@ -446,9 +443,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { Log.d(TAG, "Fingerprint disabled by DPM for userId: " + userId); return; } - onFingerprintAuthenticated(userId, mFpWakeMode == FP_WAKE_DIRECT_UNLOCK); + onFingerprintAuthenticated(userId); } finally { - setFingerprintRunningDetectionRunning(false); + setFingerprintRunningState(FINGERPRINT_STATE_STOPPED); } } @@ -462,7 +459,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } private void handleFingerprintError(int msgId, String errString) { - setFingerprintRunningDetectionRunning(false); + if (msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED + && mFingerprintRunningState == FINGERPRINT_STATE_CANCELLING_RESTARTING) { + setFingerprintRunningState(FINGERPRINT_STATE_STOPPED); + startListeningForFingerprint(); + } else { + setFingerprintRunningState(FINGERPRINT_STATE_STOPPED); + } for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { @@ -471,9 +474,19 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } - private void setFingerprintRunningDetectionRunning(boolean running) { - if (running != mFingerprintDetectionRunning) { - mFingerprintDetectionRunning = running; + private void handleFingerprintLockoutReset() { + updateFingerprintListeningState(); + } + + private void setFingerprintRunningState(int fingerprintRunningState) { + boolean wasRunning = mFingerprintRunningState == FINGERPRINT_STATE_RUNNING; + boolean isRunning = fingerprintRunningState == FINGERPRINT_STATE_RUNNING; + mFingerprintRunningState = fingerprintRunningState; + + // Clients of KeyguardUpdateMonitor don't care about the internal state about the + // asynchronousness of the cancel cycle. So only notify them if the actualy running state + // has changed. + if (wasRunning != isRunning) { notifyFingerprintRunningStateChanged(); } } @@ -482,7 +495,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { - cb.onFingerprintRunningStateChanged(mFingerprintDetectionRunning); + cb.onFingerprintRunningStateChanged(isFingerprintDetectionRunning()); } } } @@ -501,7 +514,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } public boolean isFingerprintDetectionRunning() { - return mFingerprintDetectionRunning; + return mFingerprintRunningState == FINGERPRINT_STATE_RUNNING; } private boolean isTrustDisabled(int userId) { @@ -516,7 +529,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { final DevicePolicyManager dpm = (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE); return dpm != null && (dpm.getKeyguardDisabledFeatures(null, userId) - & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0; + & DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT) != 0 + || isSimPinSecure(); } public boolean getUserCanSkipBouncer(int userId) { @@ -533,7 +547,48 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } public boolean isUnlockingWithFingerprintAllowed() { - return mUserHasAuthenticatedSinceBoot; + return mStrongAuthTracker.isUnlockingWithFingerprintAllowed() + && !hasFingerprintUnlockTimedOut(sCurrentUser); + } + + public StrongAuthTracker getStrongAuthTracker() { + return mStrongAuthTracker; + } + + /** + * @return true if the user hasn't use strong authentication (pattern, PIN, password) since a + * while and thus can't unlock with fingerprint, false otherwise + */ + public boolean hasFingerprintUnlockTimedOut(int userId) { + return !mStrongAuthNotTimedOut.contains(userId); + } + + public void reportSuccessfulStrongAuthUnlockAttempt() { + mStrongAuthNotTimedOut.add(sCurrentUser); + scheduleStrongAuthTimeout(); + if (mFpm != null) { + byte[] token = null; /* TODO: pass real auth token once fp HAL supports it */ + mFpm.resetTimeout(token); + } + } + + private void scheduleStrongAuthTimeout() { + long when = SystemClock.elapsedRealtime() + FINGERPRINT_UNLOCK_TIMEOUT_MS; + Intent intent = new Intent(ACTION_STRONG_AUTH_TIMEOUT); + intent.putExtra(USER_ID, sCurrentUser); + PendingIntent sender = PendingIntent.getBroadcast(mContext, + sCurrentUser, intent, PendingIntent.FLAG_CANCEL_CURRENT); + mAlarmManager.set(AlarmManager.ELAPSED_REALTIME, when, sender); + notifyStrongAuthStateChanged(sCurrentUser); + } + + private void notifyStrongAuthStateChanged(int userId) { + for (int i = 0; i < mCallbacks.size(); i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onStrongAuthStateChanged(userId); + } + } } static class DisplayClientState { @@ -561,8 +616,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { final int plugged = intent.getIntExtra(EXTRA_PLUGGED, 0); final int level = intent.getIntExtra(EXTRA_LEVEL, 0); final int health = intent.getIntExtra(EXTRA_HEALTH, BATTERY_HEALTH_UNKNOWN); + final int maxChargingCurrent = intent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1); final Message msg = mHandler.obtainMessage( - MSG_BATTERY_UPDATE, new BatteryStatus(status, level, plugged, health)); + MSG_BATTERY_UPDATE, new BatteryStatus(status, level, plugged, health, + maxChargingCurrent)); mHandler.sendMessage(msg); } else if (TelephonyIntents.ACTION_SIM_STATE_CHANGED.equals(action)) { SimData args = SimData.fromIntent(intent); @@ -619,6 +676,25 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } }; + private final BroadcastReceiver mStrongAuthTimeoutReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (ACTION_STRONG_AUTH_TIMEOUT.equals(intent.getAction())) { + int userId = intent.getIntExtra(USER_ID, -1); + mStrongAuthNotTimedOut.remove(userId); + notifyStrongAuthStateChanged(userId); + } + } + }; + + private final FingerprintManager.LockoutResetCallback mLockoutResetCallback + = new FingerprintManager.LockoutResetCallback() { + @Override + public void onLockoutReset() { + handleFingerprintLockoutReset(); + } + }; + private FingerprintManager.AuthenticationCallback mAuthenticationCallback = new AuthenticationCallback() { @@ -649,7 +725,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { }; private CancellationSignal mFingerprintCancelSignal; private FingerprintManager mFpm; - private PowerManager.WakeLock mWakeLock; /** * When we receive a @@ -719,15 +794,22 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } public static class BatteryStatus { + public static final int CHARGING_UNKNOWN = -1; + public static final int CHARGING_SLOWLY = 0; + public static final int CHARGING_REGULAR = 1; + public static final int CHARGING_FAST = 2; + public final int status; public final int level; public final int plugged; public final int health; - public BatteryStatus(int status, int level, int plugged, int health) { + public final int maxChargingCurrent; + public BatteryStatus(int status, int level, int plugged, int health, int maxChargingCurrent) { this.status = status; this.level = level; this.plugged = plugged; this.health = health; + this.maxChargingCurrent = maxChargingCurrent; } /** @@ -758,6 +840,31 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { return level < LOW_BATTERY_THRESHOLD; } + public final int getChargingSpeed(int slowThreshold, int fastThreshold) { + return maxChargingCurrent <= 0 ? CHARGING_UNKNOWN : + maxChargingCurrent < slowThreshold ? CHARGING_SLOWLY : + maxChargingCurrent > fastThreshold ? CHARGING_FAST : + CHARGING_REGULAR; + } + } + + public class StrongAuthTracker extends LockPatternUtils.StrongAuthTracker { + + public boolean isUnlockingWithFingerprintAllowed() { + int userId = getCurrentUser(); + return isFingerprintAllowedForUser(userId); + } + + public boolean hasUserAuthenticatedSinceBoot() { + int userId = getCurrentUser(); + return (getStrongAuthForUser(userId) + & STRONG_AUTH_REQUIRED_AFTER_BOOT) == 0; + } + + @Override + public void onStrongAuthRequiredChanged(int userId) { + notifyStrongAuthStateChanged(userId); + } } public static KeyguardUpdateMonitor getInstance(Context context) { @@ -778,18 +885,52 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } - protected void handleFinishedGoingToSleep(int arg1) { + protected void handleStartedGoingToSleep(int arg1) { clearFingerprintRecognized(); final int count = mCallbacks.size(); for (int i = 0; i < count; i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { + cb.onStartedGoingToSleep(arg1); + } + } + mGoingToSleep = true; + mFingerprintAlreadyAuthenticated = false; + updateFingerprintListeningState(); + } + + protected void handleFinishedGoingToSleep(int arg1) { + mGoingToSleep = false; + final int count = mCallbacks.size(); + for (int i = 0; i < count; i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { cb.onFinishedGoingToSleep(arg1); } } updateFingerprintListeningState(); } + private void handleScreenTurnedOn() { + final int count = mCallbacks.size(); + for (int i = 0; i < count; i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onScreenTurnedOn(); + } + } + } + + private void handleScreenTurnedOff() { + final int count = mCallbacks.size(); + for (int i = 0; i < count; i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onScreenTurnedOff(); + } + } + } + /** * IMPORTANT: Must be called from UI thread. */ @@ -816,8 +957,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private KeyguardUpdateMonitor(Context context) { mContext = context; mSubscriptionManager = SubscriptionManager.from(context); - mPowerManager = context.getSystemService(PowerManager.class); + mAlarmManager = context.getSystemService(AlarmManager.class); mDeviceProvisioned = isDeviceProvisionedInSettingsDb(); + // Since device can't be un-provisioned, we only need to register a content observer // to update mDeviceProvisioned when we are... if (!mDeviceProvisioned) { @@ -825,7 +967,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } // Take a guess at initial SIM state, battery status and PLMN until we get an update - mBatteryStatus = new BatteryStatus(BATTERY_STATUS_UNKNOWN, 100, 0, 0); + mBatteryStatus = new BatteryStatus(BATTERY_STATUS_UNKNOWN, 100, 0, 0, 0); // Watch for interesting updates final IntentFilter filter = new IntentFilter(); @@ -878,53 +1020,69 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { e.printStackTrace(); } + IntentFilter strongAuthTimeoutFilter = new IntentFilter(); + strongAuthTimeoutFilter.addAction(ACTION_STRONG_AUTH_TIMEOUT); + context.registerReceiver(mStrongAuthTimeoutReceiver, strongAuthTimeoutFilter, + PERMISSION_SELF, null /* handler */); mTrustManager = (TrustManager) context.getSystemService(Context.TRUST_SERVICE); mTrustManager.registerTrustListener(this); + new LockPatternUtils(context).registerStrongAuthTracker(mStrongAuthTracker); mFpm = (FingerprintManager) context.getSystemService(Context.FINGERPRINT_SERVICE); updateFingerprintListeningState(); + if (mFpm != null) { + mFpm.addLockoutResetCallback(mLockoutResetCallback); + } } private void updateFingerprintListeningState() { boolean shouldListenForFingerprint = shouldListenForFingerprint(); - if (mFingerprintDetectionRunning && !shouldListenForFingerprint) { + if (mFingerprintRunningState == FINGERPRINT_STATE_RUNNING && !shouldListenForFingerprint) { stopListeningForFingerprint(); - } else if (!mFingerprintDetectionRunning && shouldListenForFingerprint) { + } else if (mFingerprintRunningState != FINGERPRINT_STATE_RUNNING + && shouldListenForFingerprint) { startListeningForFingerprint(); } } private boolean shouldListenForFingerprint() { - return mKeyguardIsVisible && !mSwitchingUser; + return (mKeyguardIsVisible || !mDeviceInteractive || mBouncer || mGoingToSleep) + && !mSwitchingUser && !mFingerprintAlreadyAuthenticated + && !isFingerprintDisabled(getCurrentUser()); } private void startListeningForFingerprint() { + if (mFingerprintRunningState == FINGERPRINT_STATE_CANCELLING) { + setFingerprintRunningState(FINGERPRINT_STATE_CANCELLING_RESTARTING); + return; + } if (DEBUG) Log.v(TAG, "startListeningForFingerprint()"); int userId = ActivityManager.getCurrentUser(); - if (isUnlockWithFingerPrintPossible(userId)) { - mUserHasAuthenticatedSinceBoot = mTrustManager.hasUserAuthenticatedSinceBoot( - ActivityManager.getCurrentUser()); + if (isUnlockWithFingerprintPossible(userId)) { if (mFingerprintCancelSignal != null) { mFingerprintCancelSignal.cancel(); } mFingerprintCancelSignal = new CancellationSignal(); mFpm.authenticate(null, mFingerprintCancelSignal, 0, mAuthenticationCallback, null, userId); - setFingerprintRunningDetectionRunning(true); + setFingerprintRunningState(FINGERPRINT_STATE_RUNNING); } } - public boolean isUnlockWithFingerPrintPossible(int userId) { + public boolean isUnlockWithFingerprintPossible(int userId) { return mFpm != null && mFpm.isHardwareDetected() && !isFingerprintDisabled(userId) && mFpm.getEnrolledFingerprints(userId).size() > 0; } private void stopListeningForFingerprint() { if (DEBUG) Log.v(TAG, "stopListeningForFingerprint()"); - if (isFingerprintDetectionRunning()) { + if (mFingerprintRunningState == FINGERPRINT_STATE_RUNNING) { mFingerprintCancelSignal.cancel(); mFingerprintCancelSignal = null; + setFingerprintRunningState(FINGERPRINT_STATE_CANCELLING); + } + if (mFingerprintRunningState == FINGERPRINT_STATE_CANCELLING_RESTARTING) { + setFingerprintRunningState(FINGERPRINT_STATE_CANCELLING); } - setFingerprintRunningDetectionRunning(false); } private boolean isDeviceProvisionedInSettingsDb() { @@ -964,6 +1122,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { * Handle {@link #MSG_DPM_STATE_CHANGED} */ protected void handleDevicePolicyManagerStateChanged() { + updateFingerprintListeningState(); for (int i = mCallbacks.size() - 1; i >= 0; i--) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { @@ -1181,18 +1340,22 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } /** - * Handle {@link #MSG_KEYGUARD_VISIBILITY_CHANGED} + * Notifies that the visibility state of Keyguard has changed. + * + * <p>Needs to be called from the main thread. */ - private void handleKeyguardVisibilityChanged(int showing) { - if (DEBUG) Log.d(TAG, "handleKeyguardVisibilityChanged(" + showing + ")"); - boolean isShowing = (showing == 1); - mKeyguardIsVisible = isShowing; + public void onKeyguardVisibilityChanged(boolean showing) { + if (DEBUG) Log.d(TAG, "onKeyguardVisibilityChanged(" + showing + ")"); + mKeyguardIsVisible = showing; for (int i = 0; i < mCallbacks.size(); i++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); if (cb != null) { - cb.onKeyguardVisibilityChangedRaw(isShowing); + cb.onKeyguardVisibilityChangedRaw(showing); } } + if (!showing) { + mFingerprintAlreadyAuthenticated = false; + } updateFingerprintListeningState(); } @@ -1201,9 +1364,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { */ private void handleKeyguardReset() { if (DEBUG) Log.d(TAG, "handleKeyguardReset"); - if (!isUnlockingWithFingerprintAllowed()) { - updateFingerprintListeningState(); - } + updateFingerprintListeningState(); } /** @@ -1220,6 +1381,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { cb.onKeyguardBouncerChanged(isBouncer); } } + updateFingerprintListeningState(); } /** @@ -1255,6 +1417,12 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { if (!nowPluggedIn && current.isBatteryLow() && current.level != old.level) { return true; } + + // change in charging current while plugged in + if (nowPluggedIn && current.maxChargingCurrent != old.maxChargingCurrent) { + return true; + } + return false; } @@ -1306,13 +1474,6 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } - public void sendKeyguardVisibilityChanged(boolean showing) { - if (DEBUG) Log.d(TAG, "sendKeyguardVisibilityChanged(" + showing + ")"); - Message message = mHandler.obtainMessage(MSG_KEYGUARD_VISIBILITY_CHANGED); - message.arg1 = showing ? 1 : 0; - message.sendToTarget(); - } - public void sendKeyguardReset() { mHandler.obtainMessage(MSG_KEYGUARD_RESET).sendToTarget(); } @@ -1373,7 +1534,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { return mFailedAttempts.get(sCurrentUser, 0); } - public void reportFailedUnlockAttempt() { + public void reportFailedStrongAuthUnlockAttempt() { mFailedAttempts.put(sCurrentUser, getFailedUnlockAttempts() + 1); } @@ -1453,6 +1614,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { mHandler.sendEmptyMessage(MSG_STARTED_WAKING_UP); } + public void dispatchStartedGoingToSleep(int why) { + mHandler.sendMessage(mHandler.obtainMessage(MSG_STARTED_GOING_TO_SLEEP, why, 0)); + } + public void dispatchFinishedGoingToSleep(int why) { synchronized(this) { mDeviceInteractive = false; @@ -1464,18 +1629,24 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { synchronized (this) { mScreenOn = true; } + mHandler.sendEmptyMessage(MSG_SCREEN_TURNED_ON); } public void dispatchScreenTurnedOff() { synchronized(this) { mScreenOn = false; } + mHandler.sendEmptyMessage(MSG_SCREEN_TURNED_OFF); } public boolean isDeviceInteractive() { return mDeviceInteractive; } + public boolean isGoingToSleep() { + return mGoingToSleep; + } + /** * Find the next SubscriptionId for a SIM in the given state, favoring lower slot numbers first. * @param state diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java index 0cdf99999bb9..bd6c51c3b89c 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java @@ -153,6 +153,12 @@ public class KeyguardUpdateMonitorCallback { public void onStartedWakingUp() { } /** + * Called when the device has started going to sleep. + * @param why see {@link #onFinishedGoingToSleep(int)} + */ + public void onStartedGoingToSleep(int why) { } + + /** * Called when the device has finished going to sleep. * @param why either {@link WindowManagerPolicy#OFF_BECAUSE_OF_ADMIN}, * {@link WindowManagerPolicy#OFF_BECAUSE_OF_USER}, or @@ -161,6 +167,16 @@ public class KeyguardUpdateMonitorCallback { public void onFinishedGoingToSleep(int why) { } /** + * Called when the screen has been turned on. + */ + public void onScreenTurnedOn() { } + + /** + * Called when the screen has been turned off. + */ + public void onScreenTurnedOff() { } + + /** * Called when trust changes for a user. */ public void onTrustChanged(int userId) { } @@ -176,12 +192,23 @@ public class KeyguardUpdateMonitorCallback { public void onTrustGrantedWithFlags(int flags, int userId) { } /** + * Called when a finger has been acquired. + * <p> + * It is guaranteed that either {@link #onFingerprintAuthenticated} or + * {@link #onFingerprintAuthFailed()} is called after this method eventually. + */ + public void onFingerprintAcquired() { } + + /** + * Called when a fingerprint couldn't be authenticated. + */ + public void onFingerprintAuthFailed() { } + + /** * Called when a fingerprint is recognized. * @param userId the user id for which the fingerprint was authenticated - * @param wakeAndUnlocking whether the authentication woke the device up and thus we'd like to - * dismiss the lockscreen before turning on the screen */ - public void onFingerprintAuthenticated(int userId, boolean wakeAndUnlocking) { } + public void onFingerprintAuthenticated(int userId) { } /** * Called when fingerprint provides help string (e.g. "Try again") @@ -207,4 +234,10 @@ public class KeyguardUpdateMonitorCallback { * Called when the fingerprint running state changed. */ public void onFingerprintRunningStateChanged(boolean running) { } + + /** + * Called when the state that the user hasn't used strong authentication since quite some time + * has changed. + */ + public void onStrongAuthStateChanged(int userId) { } } diff --git a/packages/Keyguard/src/com/android/keyguard/SecurityMessageDisplay.java b/packages/Keyguard/src/com/android/keyguard/SecurityMessageDisplay.java index b38cfd5f6aeb..ddb1f6ec48ca 100644 --- a/packages/Keyguard/src/com/android/keyguard/SecurityMessageDisplay.java +++ b/packages/Keyguard/src/com/android/keyguard/SecurityMessageDisplay.java @@ -17,11 +17,14 @@ package com.android.keyguard; public interface SecurityMessageDisplay { - public void setMessage(CharSequence msg, boolean important); - public void setMessage(int resId, boolean important); + void setNextMessageColor(int color); - public void setMessage(int resId, boolean important, Object... formatArgs); + void setMessage(CharSequence msg, boolean important); - public void setTimeout(int timeout_ms); + void setMessage(int resId, boolean important); + + void setMessage(int resId, boolean important, Object... formatArgs); + + void setTimeout(int timeout_ms); } diff --git a/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java b/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java index ff463c6c8312..8ab301125c04 100644 --- a/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java +++ b/packages/Keyguard/src/com/android/keyguard/ViewMediatorCallback.java @@ -28,12 +28,11 @@ public interface ViewMediatorCallback { /** * Report that the keyguard is done. - * @param authenticated Whether the user securely got past the keyguard. - * the only reason for this to be false is if the keyguard was instructed - * to appear temporarily to verify the user is supposed to get past the - * keyguard, and the user fails to do so. + * + * @param strongAuth whether the user has authenticated with strong authentication like + * pattern, password or PIN but not by trust agents or fingerprint */ - void keyguardDone(boolean authenticated); + void keyguardDone(boolean strongAuth); /** * Report that the keyguard is done drawing. @@ -48,8 +47,11 @@ public interface ViewMediatorCallback { /** * Report that the keyguard is dismissable, pending the next keyguardDone call. + * + * @param strongAuth whether the user has authenticated with strong authentication like + * pattern, password or PIN but not by trust agents or fingerprint */ - void keyguardDonePending(); + void keyguardDonePending(boolean strongAuth); /** * Report when keyguard is actually gone @@ -85,8 +87,9 @@ public interface ViewMediatorCallback { /** * @return one of the reasons why the bouncer needs to be shown right now and the user can't use * his normal unlock method like fingerprint or trust agents. See - * {@link KeyguardSecurityView#PROMPT_REASON_NONE} - * and {@link KeyguardSecurityView#PROMPT_REASON_RESTART}. + * {@link KeyguardSecurityView#PROMPT_REASON_NONE}, + * {@link KeyguardSecurityView#PROMPT_REASON_RESTART} and + * {@link KeyguardSecurityView#PROMPT_REASON_TIMEOUT}. */ int getBouncerPromptReason(); } diff --git a/packages/SettingsLib/res/values/dimens.xml b/packages/SettingsLib/res/values/dimens.xml index 1c4b05f466f5..3ad8f2122cb2 100644 --- a/packages/SettingsLib/res/values/dimens.xml +++ b/packages/SettingsLib/res/values/dimens.xml @@ -21,4 +21,6 @@ <!-- The translation for disappearing security views after having solved them. --> <dimen name="disappear_y_translation">-32dp</dimen> -</resources>
\ No newline at end of file + + <dimen name="circle_avatar_size">40dp</dimen> +</resources> diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index b03f10043af9..9b1f103edfaf 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -195,4 +195,34 @@ <!-- Content description of the WIFI signal when it is full for accessibility (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_wifi_signal_full">Wifi signal full.</string> + <!-- Label for kernel threads in battery usage --> + <string name="process_kernel_label">Android OS</string> + <!-- Title of data usage item that represents all uninstalled applications. [CHAR LIMIT=48] --> + <string name="data_usage_uninstalled_apps">Removed apps</string> + <!-- Title of data usage item that represents all uninstalled applications or removed users. [CHAR LIMIT=48] --> + <string name="data_usage_uninstalled_apps_users">Removed apps and users</string> + + <!-- Tethering controls, item title to go into the tethering settings --> + <!-- Tethering controls, item title to go into the tethering settings when only USB tethering is available [CHAR LIMIT=25]--> + <string name="tether_settings_title_usb">USB tethering</string> + <!-- Tethering controls, item title to go into the tethering settings when only Wifi tethering is available [CHAR LIMIT=25]--> + <string name="tether_settings_title_wifi">Portable hotspot</string> + <!-- Tethering controls, item title to go into the tethering settings when only Bluetooth tethering is available [CHAR LIMIT=25]--> + <string name="tether_settings_title_bluetooth">Bluetooth tethering</string> + <!-- Tethering controls, item title to go into the tethering settings when USB and Bluetooth tethering are available [CHAR LIMIT=25]--> + <string name="tether_settings_title_usb_bluetooth">Tethering</string> + <!-- Tethering controls, item title to go into the tethering settings when USB, Bluetooth and Wifi tethering are available [CHAR LIMIT=25]--> + <string name="tether_settings_title_all">Tethering & portable hotspot</string> + + <!-- Title for a work profile. [CHAR LIMIT=25] --> + <string name="managed_user_title">Work profile</string> + + <!-- Title for Guest user [CHAR LIMIT=35] --> + <string name="user_guest">Guest</string> + + <!-- Manage apps, individual app screen, substituted for the application's label when the app's label CAN NOT be determined.--> + <string name="unknown">Unknown</string> + + <!-- [CHAR LIMIT=NONE] Label of a running process that represents another user --> + <string name="running_process_item_user_label">User: <xliff:g id="user_name">%1$s</xliff:g></string> </resources> diff --git a/packages/SettingsLib/src/com/android/settingslib/AppItem.java b/packages/SettingsLib/src/com/android/settingslib/AppItem.java new file mode 100644 index 000000000000..1729e09a1d8c --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/AppItem.java @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib; + +import android.os.Parcel; +import android.os.Parcelable; +import android.util.SparseBooleanArray; + +public class AppItem implements Comparable<AppItem>, Parcelable { + public static final int CATEGORY_USER = 0; + public static final int CATEGORY_APP_TITLE = 1; + public static final int CATEGORY_APP = 2; + + public final int key; + public boolean restricted; + public int category; + + public SparseBooleanArray uids = new SparseBooleanArray(); + public long total; + + public AppItem() { + this.key = 0; + } + + public AppItem(int key) { + this.key = key; + } + + public AppItem(Parcel parcel) { + key = parcel.readInt(); + uids = parcel.readSparseBooleanArray(); + total = parcel.readLong(); + } + + public void addUid(int uid) { + uids.put(uid, true); + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(key); + dest.writeSparseBooleanArray(uids); + dest.writeLong(total); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public int compareTo(AppItem another) { + int comparison = Integer.compare(category, another.category); + if (comparison == 0) { + comparison = Long.compare(another.total, total); + } + return comparison; + } + + public static final Creator<AppItem> CREATOR = new Creator<AppItem>() { + @Override + public AppItem createFromParcel(Parcel in) { + return new AppItem(in); + } + + @Override + public AppItem[] newArray(int size) { + return new AppItem[size]; + } + }; +} diff --git a/packages/SettingsLib/src/com/android/settingslib/NetworkPolicyEditor.java b/packages/SettingsLib/src/com/android/settingslib/NetworkPolicyEditor.java new file mode 100644 index 000000000000..cf08f5000b8f --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/NetworkPolicyEditor.java @@ -0,0 +1,254 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib; + +import static android.net.NetworkPolicy.CYCLE_NONE; +import static android.net.NetworkPolicy.LIMIT_DISABLED; +import static android.net.NetworkPolicy.SNOOZE_NEVER; +import static android.net.NetworkPolicy.WARNING_DISABLED; +import static android.net.NetworkTemplate.MATCH_WIFI; +import static com.android.internal.util.Preconditions.checkNotNull; + +import android.net.NetworkPolicy; +import android.net.NetworkPolicyManager; +import android.net.NetworkTemplate; +import android.net.wifi.WifiInfo; +import android.os.AsyncTask; +import android.text.TextUtils; +import android.text.format.Time; + +import com.google.android.collect.Lists; + +import java.util.ArrayList; + +/** + * Utility class to modify list of {@link NetworkPolicy}. Specifically knows + * about which policies can coexist. This editor offers thread safety when + * talking with {@link NetworkPolicyManager}. + * + * @hide + */ +public class NetworkPolicyEditor { + // TODO: be more robust when missing policies from service + + public static final boolean ENABLE_SPLIT_POLICIES = false; + + private NetworkPolicyManager mPolicyManager; + private ArrayList<NetworkPolicy> mPolicies = Lists.newArrayList(); + + public NetworkPolicyEditor(NetworkPolicyManager policyManager) { + mPolicyManager = checkNotNull(policyManager); + } + + public void read() { + final NetworkPolicy[] policies = mPolicyManager.getNetworkPolicies(); + + boolean modified = false; + mPolicies.clear(); + for (NetworkPolicy policy : policies) { + // TODO: find better place to clamp these + if (policy.limitBytes < -1) { + policy.limitBytes = LIMIT_DISABLED; + modified = true; + } + if (policy.warningBytes < -1) { + policy.warningBytes = WARNING_DISABLED; + modified = true; + } + + mPolicies.add(policy); + } + + // when we cleaned policies above, write back changes + if (modified) writeAsync(); + } + + public void writeAsync() { + // TODO: consider making more robust by passing through service + final NetworkPolicy[] policies = mPolicies.toArray(new NetworkPolicy[mPolicies.size()]); + new AsyncTask<Void, Void, Void>() { + @Override + protected Void doInBackground(Void... params) { + write(policies); + return null; + } + }.execute(); + } + + public void write(NetworkPolicy[] policies) { + mPolicyManager.setNetworkPolicies(policies); + } + + public boolean hasLimitedPolicy(NetworkTemplate template) { + final NetworkPolicy policy = getPolicy(template); + return policy != null && policy.limitBytes != LIMIT_DISABLED; + } + + public NetworkPolicy getOrCreatePolicy(NetworkTemplate template) { + NetworkPolicy policy = getPolicy(template); + if (policy == null) { + policy = buildDefaultPolicy(template); + mPolicies.add(policy); + } + return policy; + } + + public NetworkPolicy getPolicy(NetworkTemplate template) { + for (NetworkPolicy policy : mPolicies) { + if (policy.template.equals(template)) { + return policy; + } + } + return null; + } + + public NetworkPolicy getPolicyMaybeUnquoted(NetworkTemplate template) { + NetworkPolicy policy = getPolicy(template); + if (policy != null) { + return policy; + } else { + return getPolicy(buildUnquotedNetworkTemplate(template)); + } + } + + @Deprecated + private static NetworkPolicy buildDefaultPolicy(NetworkTemplate template) { + // TODO: move this into framework to share with NetworkPolicyManagerService + final int cycleDay; + final String cycleTimezone; + final boolean metered; + + if (template.getMatchRule() == MATCH_WIFI) { + cycleDay = CYCLE_NONE; + cycleTimezone = Time.TIMEZONE_UTC; + metered = false; + } else { + final Time time = new Time(); + time.setToNow(); + cycleDay = time.monthDay; + cycleTimezone = time.timezone; + metered = true; + } + + return new NetworkPolicy(template, cycleDay, cycleTimezone, WARNING_DISABLED, + LIMIT_DISABLED, SNOOZE_NEVER, SNOOZE_NEVER, metered, true); + } + + public int getPolicyCycleDay(NetworkTemplate template) { + final NetworkPolicy policy = getPolicy(template); + return (policy != null) ? policy.cycleDay : -1; + } + + public void setPolicyCycleDay(NetworkTemplate template, int cycleDay, String cycleTimezone) { + final NetworkPolicy policy = getOrCreatePolicy(template); + policy.cycleDay = cycleDay; + policy.cycleTimezone = cycleTimezone; + policy.inferred = false; + policy.clearSnooze(); + writeAsync(); + } + + public long getPolicyWarningBytes(NetworkTemplate template) { + final NetworkPolicy policy = getPolicy(template); + return (policy != null) ? policy.warningBytes : WARNING_DISABLED; + } + + public void setPolicyWarningBytes(NetworkTemplate template, long warningBytes) { + final NetworkPolicy policy = getOrCreatePolicy(template); + policy.warningBytes = warningBytes; + policy.inferred = false; + policy.clearSnooze(); + writeAsync(); + } + + public long getPolicyLimitBytes(NetworkTemplate template) { + final NetworkPolicy policy = getPolicy(template); + return (policy != null) ? policy.limitBytes : LIMIT_DISABLED; + } + + public void setPolicyLimitBytes(NetworkTemplate template, long limitBytes) { + final NetworkPolicy policy = getOrCreatePolicy(template); + policy.limitBytes = limitBytes; + policy.inferred = false; + policy.clearSnooze(); + writeAsync(); + } + + public boolean getPolicyMetered(NetworkTemplate template) { + NetworkPolicy policy = getPolicy(template); + if (policy != null) { + return policy.metered; + } else { + return false; + } + } + + public void setPolicyMetered(NetworkTemplate template, boolean metered) { + boolean modified = false; + + NetworkPolicy policy = getPolicy(template); + if (metered) { + if (policy == null) { + policy = buildDefaultPolicy(template); + policy.metered = true; + policy.inferred = false; + mPolicies.add(policy); + modified = true; + } else if (!policy.metered) { + policy.metered = true; + policy.inferred = false; + modified = true; + } + + } else { + if (policy == null) { + // ignore when policy doesn't exist + } else if (policy.metered) { + policy.metered = false; + policy.inferred = false; + modified = true; + } + } + + // Remove legacy unquoted policies while we're here + final NetworkTemplate unquoted = buildUnquotedNetworkTemplate(template); + final NetworkPolicy unquotedPolicy = getPolicy(unquoted); + if (unquotedPolicy != null) { + mPolicies.remove(unquotedPolicy); + modified = true; + } + + if (modified) writeAsync(); + } + + /** + * Build a revised {@link NetworkTemplate} that matches the same rule, but + * with an unquoted {@link NetworkTemplate#getNetworkId()}. Used to work + * around legacy bugs. + */ + private static NetworkTemplate buildUnquotedNetworkTemplate(NetworkTemplate template) { + if (template == null) return null; + final String networkId = template.getNetworkId(); + final String strippedNetworkId = WifiInfo.removeDoubleQuotes(networkId); + if (!TextUtils.equals(strippedNetworkId, networkId)) { + return new NetworkTemplate( + template.getMatchRule(), template.getSubscriberId(), strippedNetworkId); + } else { + return null; + } + } +} diff --git a/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java b/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java index 58e5e29adeee..52941992c626 100644 --- a/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java +++ b/packages/SettingsLib/src/com/android/settingslib/TetherUtil.java @@ -25,6 +25,7 @@ import android.net.wifi.WifiManager; import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; +import android.telephony.CarrierConfigManager; public class TetherUtil { @@ -54,29 +55,7 @@ public class TetherUtil { public static boolean setWifiTethering(boolean enable, Context context) { final WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); - final ContentResolver cr = context.getContentResolver(); - /** - * Disable Wifi if enabling tethering - */ - int wifiState = wifiManager.getWifiState(); - if (enable && ((wifiState == WifiManager.WIFI_STATE_ENABLING) || - (wifiState == WifiManager.WIFI_STATE_ENABLED))) { - wifiManager.setWifiEnabled(false); - Settings.Global.putInt(cr, Settings.Global.WIFI_SAVED_STATE, 1); - } - - boolean success = wifiManager.setWifiApEnabled(null, enable); - /** - * If needed, restore Wifi on tether disable - */ - if (!enable) { - int wifiSavedState = Settings.Global.getInt(cr, Settings.Global.WIFI_SAVED_STATE, 0); - if (wifiSavedState == 1) { - wifiManager.setWifiEnabled(true); - Settings.Global.putInt(cr, Settings.Global.WIFI_SAVED_STATE, 0); - } - } - return success; + return wifiManager.setWifiApEnabled(null, enable); } public static boolean isWifiTetherEnabled(Context context) { @@ -84,6 +63,13 @@ public class TetherUtil { return wifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED; } + private static boolean isEntitlementCheckRequired(Context context) { + final CarrierConfigManager configManager = (CarrierConfigManager) context + .getSystemService(Context.CARRIER_CONFIG_SERVICE); + return configManager.getConfig().getBoolean(CarrierConfigManager + .KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL); + } + public static boolean isProvisioningNeeded(Context context) { // Keep in sync with other usage of config_mobile_hotspot_provision_app. // ConnectivityManager#enforceTetherChangePermission @@ -93,6 +79,10 @@ public class TetherUtil { || provisionApp == null) { return false; } + // Check carrier config for entitlement checks + if (isEntitlementCheckRequired(context) == false) { + return false; + } return (provisionApp.length == 2); } diff --git a/packages/SettingsLib/src/com/android/settingslib/Utils.java b/packages/SettingsLib/src/com/android/settingslib/Utils.java new file mode 100644 index 000000000000..621a09cdfa37 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/Utils.java @@ -0,0 +1,84 @@ +package com.android.settingslib; + +import android.content.Context; +import android.content.pm.UserInfo; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.Drawable; +import android.net.ConnectivityManager; +import android.os.UserManager; + +import com.android.internal.util.UserIcons; +import com.android.settingslib.drawable.CircleFramedDrawable; + +public final class Utils { + + /** + * Return string resource that best describes combination of tethering + * options available on this device. + */ + public static int getTetheringLabel(ConnectivityManager cm) { + String[] usbRegexs = cm.getTetherableUsbRegexs(); + String[] wifiRegexs = cm.getTetherableWifiRegexs(); + String[] bluetoothRegexs = cm.getTetherableBluetoothRegexs(); + + boolean usbAvailable = usbRegexs.length != 0; + boolean wifiAvailable = wifiRegexs.length != 0; + boolean bluetoothAvailable = bluetoothRegexs.length != 0; + + if (wifiAvailable && usbAvailable && bluetoothAvailable) { + return R.string.tether_settings_title_all; + } else if (wifiAvailable && usbAvailable) { + return R.string.tether_settings_title_all; + } else if (wifiAvailable && bluetoothAvailable) { + return R.string.tether_settings_title_all; + } else if (wifiAvailable) { + return R.string.tether_settings_title_wifi; + } else if (usbAvailable && bluetoothAvailable) { + return R.string.tether_settings_title_usb_bluetooth; + } else if (usbAvailable) { + return R.string.tether_settings_title_usb; + } else { + return R.string.tether_settings_title_bluetooth; + } + } + + /** + * Returns a label for the user, in the form of "User: user name" or "Work profile". + */ + public static String getUserLabel(Context context, UserInfo info) { + String name = info != null ? info.name : null; + if (info.isManagedProfile()) { + // We use predefined values for managed profiles + return context.getString(R.string.managed_user_title); + } else if (info.isGuest()) { + name = context.getString(R.string.user_guest); + } + if (name == null && info != null) { + name = Integer.toString(info.id); + } else if (info == null) { + name = context.getString(R.string.unknown); + } + return context.getResources().getString(R.string.running_process_item_user_label, name); + } + + /** + * Returns a circular icon for a user. + */ + public static Drawable getUserIcon(Context context, UserManager um, UserInfo user) { + if (user.isManagedProfile()) { + // We use predefined values for managed profiles + Bitmap b = BitmapFactory.decodeResource(context.getResources(), + com.android.internal.R.drawable.ic_corp_icon); + return CircleFramedDrawable.getInstance(context, b); + } + if (user.iconPath != null) { + Bitmap icon = um.getUserIcon(user.id); + if (icon != null) { + return CircleFramedDrawable.getInstance(context, icon); + } + } + return CircleFramedDrawable.getInstance(context, UserIcons.convertToBitmap( + UserIcons.getDefaultUserIcon(user.id, /* light= */ false))); + } +} diff --git a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java index b0429ef43cf9..e4b1ed8604ec 100644 --- a/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java +++ b/packages/SettingsLib/src/com/android/settingslib/bluetooth/CachedBluetoothDevice.java @@ -539,10 +539,10 @@ public final class CachedBluetoothDevice implements Comparable<CachedBluetoothDe * Otherwise, allow the connect on UUID change. */ if (!mProfiles.isEmpty() - && ((mConnectAttempted + timeout) > SystemClock.elapsedRealtime() - || (mConnectAttempted == 0))) { + && ((mConnectAttempted + timeout) > SystemClock.elapsedRealtime())) { connectWithoutResettingTimer(false); } + dispatchAttributesChanged(); } diff --git a/packages/SettingsLib/src/com/android/settingslib/drawable/CircleFramedDrawable.java b/packages/SettingsLib/src/com/android/settingslib/drawable/CircleFramedDrawable.java new file mode 100644 index 000000000000..278b57da0c28 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/drawable/CircleFramedDrawable.java @@ -0,0 +1,136 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.drawable; + +import android.content.Context; +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.ColorFilter; +import android.graphics.Paint; +import android.graphics.Path; +import android.graphics.PixelFormat; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Rect; +import android.graphics.RectF; +import android.graphics.drawable.Drawable; + +import com.android.settingslib.R; + +/** + * Converts the user avatar icon to a circularly clipped one. + * TODO: Move this to an internal framework class and share with the one in Keyguard. + */ +public class CircleFramedDrawable extends Drawable { + + private final Bitmap mBitmap; + private final int mSize; + private final Paint mPaint; + + private float mScale; + private Rect mSrcRect; + private RectF mDstRect; + + public static CircleFramedDrawable getInstance(Context context, Bitmap icon) { + Resources res = context.getResources(); + float iconSize = res.getDimension(R.dimen.circle_avatar_size); + + CircleFramedDrawable instance = new CircleFramedDrawable(icon, (int) iconSize); + return instance; + } + + public CircleFramedDrawable(Bitmap icon, int size) { + super(); + mSize = size; + + mBitmap = Bitmap.createBitmap(mSize, mSize, Bitmap.Config.ARGB_8888); + final Canvas canvas = new Canvas(mBitmap); + + final int width = icon.getWidth(); + final int height = icon.getHeight(); + final int square = Math.min(width, height); + + final Rect cropRect = new Rect((width - square) / 2, (height - square) / 2, square, square); + final RectF circleRect = new RectF(0f, 0f, mSize, mSize); + + final Path fillPath = new Path(); + fillPath.addArc(circleRect, 0f, 360f); + + canvas.drawColor(0, PorterDuff.Mode.CLEAR); + + // opaque circle matte + mPaint = new Paint(); + mPaint.setAntiAlias(true); + mPaint.setColor(Color.BLACK); + mPaint.setStyle(Paint.Style.FILL); + canvas.drawPath(fillPath, mPaint); + + // mask in the icon where the bitmap is opaque + mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + canvas.drawBitmap(icon, cropRect, circleRect, mPaint); + + // prepare paint for frame drawing + mPaint.setXfermode(null); + + mScale = 1f; + + mSrcRect = new Rect(0, 0, mSize, mSize); + mDstRect = new RectF(0, 0, mSize, mSize); + } + + @Override + public void draw(Canvas canvas) { + final float inside = mScale * mSize; + final float pad = (mSize - inside) / 2f; + + mDstRect.set(pad, pad, mSize - pad, mSize - pad); + canvas.drawBitmap(mBitmap, mSrcRect, mDstRect, null); + } + + public void setScale(float scale) { + mScale = scale; + } + + public float getScale() { + return mScale; + } + + @Override + public int getOpacity() { + return PixelFormat.TRANSLUCENT; + } + + @Override + public void setAlpha(int alpha) { + } + + @Override + public void setColorFilter(ColorFilter cf) { + } + + @Override + public int getIntrinsicWidth() { + return mSize; + } + + @Override + public int getIntrinsicHeight() { + return mSize; + } +} diff --git a/packages/SettingsLib/src/com/android/settingslib/net/ChartData.java b/packages/SettingsLib/src/com/android/settingslib/net/ChartData.java new file mode 100644 index 000000000000..e30aac575c67 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/net/ChartData.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.net; + +import android.net.NetworkStatsHistory; + +public class ChartData { + public NetworkStatsHistory network; + + public NetworkStatsHistory detail; + public NetworkStatsHistory detailDefault; + public NetworkStatsHistory detailForeground; +} diff --git a/packages/SettingsLib/src/com/android/settingslib/net/ChartDataLoader.java b/packages/SettingsLib/src/com/android/settingslib/net/ChartDataLoader.java new file mode 100644 index 000000000000..223c05546b7f --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/net/ChartDataLoader.java @@ -0,0 +1,145 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.net; + +import static android.net.NetworkStats.SET_DEFAULT; +import static android.net.NetworkStats.SET_FOREGROUND; +import static android.net.NetworkStats.TAG_NONE; +import static android.net.NetworkStatsHistory.FIELD_RX_BYTES; +import static android.net.NetworkStatsHistory.FIELD_TX_BYTES; +import static android.text.format.DateUtils.HOUR_IN_MILLIS; + +import android.content.AsyncTaskLoader; +import android.content.Context; +import android.net.INetworkStatsSession; +import android.net.NetworkStatsHistory; +import android.net.NetworkTemplate; +import android.os.Bundle; +import android.os.RemoteException; + +import com.android.settingslib.AppItem; + +/** + * Loader for historical chart data for both network and UID details. + */ +public class ChartDataLoader extends AsyncTaskLoader<ChartData> { + private static final String KEY_TEMPLATE = "template"; + private static final String KEY_APP = "app"; + private static final String KEY_FIELDS = "fields"; + + private final INetworkStatsSession mSession; + private final Bundle mArgs; + + public static Bundle buildArgs(NetworkTemplate template, AppItem app) { + return buildArgs(template, app, FIELD_RX_BYTES | FIELD_TX_BYTES); + } + + public static Bundle buildArgs(NetworkTemplate template, AppItem app, int fields) { + final Bundle args = new Bundle(); + args.putParcelable(KEY_TEMPLATE, template); + args.putParcelable(KEY_APP, app); + args.putInt(KEY_FIELDS, fields); + return args; + } + + public ChartDataLoader(Context context, INetworkStatsSession session, Bundle args) { + super(context); + mSession = session; + mArgs = args; + } + + @Override + protected void onStartLoading() { + super.onStartLoading(); + forceLoad(); + } + + @Override + public ChartData loadInBackground() { + final NetworkTemplate template = mArgs.getParcelable(KEY_TEMPLATE); + final AppItem app = mArgs.getParcelable(KEY_APP); + final int fields = mArgs.getInt(KEY_FIELDS); + + try { + return loadInBackground(template, app, fields); + } catch (RemoteException e) { + // since we can't do much without history, and we don't want to + // leave with half-baked UI, we bail hard. + throw new RuntimeException("problem reading network stats", e); + } + } + + private ChartData loadInBackground(NetworkTemplate template, AppItem app, int fields) + throws RemoteException { + final ChartData data = new ChartData(); + data.network = mSession.getHistoryForNetwork(template, fields); + + if (app != null) { + // load stats for current uid and template + final int size = app.uids.size(); + for (int i = 0; i < size; i++) { + final int uid = app.uids.keyAt(i); + data.detailDefault = collectHistoryForUid( + template, uid, SET_DEFAULT, data.detailDefault); + data.detailForeground = collectHistoryForUid( + template, uid, SET_FOREGROUND, data.detailForeground); + } + + if (size > 0) { + data.detail = new NetworkStatsHistory(data.detailForeground.getBucketDuration()); + data.detail.recordEntireHistory(data.detailDefault); + data.detail.recordEntireHistory(data.detailForeground); + } else { + data.detailDefault = new NetworkStatsHistory(HOUR_IN_MILLIS); + data.detailForeground = new NetworkStatsHistory(HOUR_IN_MILLIS); + data.detail = new NetworkStatsHistory(HOUR_IN_MILLIS); + } + } + + return data; + } + + @Override + protected void onStopLoading() { + super.onStopLoading(); + cancelLoad(); + } + + @Override + protected void onReset() { + super.onReset(); + cancelLoad(); + } + + /** + * Collect {@link NetworkStatsHistory} for the requested UID, combining with + * an existing {@link NetworkStatsHistory} if provided. + */ + private NetworkStatsHistory collectHistoryForUid( + NetworkTemplate template, int uid, int set, NetworkStatsHistory existing) + throws RemoteException { + final NetworkStatsHistory history = mSession.getHistoryForUid( + template, uid, set, TAG_NONE, FIELD_RX_BYTES | FIELD_TX_BYTES); + + if (existing != null) { + existing.recordEntireHistory(history); + return existing; + } else { + return history; + } + } +} diff --git a/packages/SettingsLib/src/com/android/settingslib/net/SummaryForAllUidLoader.java b/packages/SettingsLib/src/com/android/settingslib/net/SummaryForAllUidLoader.java new file mode 100644 index 000000000000..572bae1112da --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/net/SummaryForAllUidLoader.java @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.net; + +import android.content.AsyncTaskLoader; +import android.content.Context; +import android.net.INetworkStatsSession; +import android.net.NetworkStats; +import android.net.NetworkTemplate; +import android.os.Bundle; +import android.os.RemoteException; + +public class SummaryForAllUidLoader extends AsyncTaskLoader<NetworkStats> { + private static final String KEY_TEMPLATE = "template"; + private static final String KEY_START = "start"; + private static final String KEY_END = "end"; + + private final INetworkStatsSession mSession; + private final Bundle mArgs; + + public static Bundle buildArgs(NetworkTemplate template, long start, long end) { + final Bundle args = new Bundle(); + args.putParcelable(KEY_TEMPLATE, template); + args.putLong(KEY_START, start); + args.putLong(KEY_END, end); + return args; + } + + public SummaryForAllUidLoader(Context context, INetworkStatsSession session, Bundle args) { + super(context); + mSession = session; + mArgs = args; + } + + @Override + protected void onStartLoading() { + super.onStartLoading(); + forceLoad(); + } + + @Override + public NetworkStats loadInBackground() { + final NetworkTemplate template = mArgs.getParcelable(KEY_TEMPLATE); + final long start = mArgs.getLong(KEY_START); + final long end = mArgs.getLong(KEY_END); + + try { + return mSession.getSummaryForAllUid(template, start, end, false); + } catch (RemoteException e) { + return null; + } + } + + @Override + protected void onStopLoading() { + super.onStopLoading(); + cancelLoad(); + } + + @Override + protected void onReset() { + super.onReset(); + cancelLoad(); + } +} diff --git a/packages/SettingsLib/src/com/android/settingslib/net/UidDetail.java b/packages/SettingsLib/src/com/android/settingslib/net/UidDetail.java new file mode 100644 index 000000000000..5e4228126ee1 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/net/UidDetail.java @@ -0,0 +1,27 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.net; + +import android.graphics.drawable.Drawable; + +public class UidDetail { + public CharSequence label; + public CharSequence contentDescription; + public CharSequence[] detailLabels; + public CharSequence[] detailContentDescriptions; + public Drawable icon; +} diff --git a/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java b/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java new file mode 100644 index 000000000000..224b9679a9a2 --- /dev/null +++ b/packages/SettingsLib/src/com/android/settingslib/net/UidDetailProvider.java @@ -0,0 +1,194 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settingslib.net; + +import android.app.AppGlobals; +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.IPackageManager; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.UserInfo; +import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.net.ConnectivityManager; +import android.net.TrafficStats; +import android.os.UserManager; +import android.os.UserHandle; +import android.os.RemoteException; +import android.text.TextUtils; +import android.util.Log; +import android.util.SparseArray; + +import com.android.settingslib.R; +import com.android.settingslib.Utils; + +/** + * Return details about a specific UID, handling special cases like + * {@link TrafficStats#UID_TETHERING} and {@link UserInfo}. + */ +public class UidDetailProvider { + private static final String TAG = "DataUsage"; + private final Context mContext; + private final SparseArray<UidDetail> mUidDetailCache; + + public static final int OTHER_USER_RANGE_START = -2000; + + public static int buildKeyForUser(int userHandle) { + return OTHER_USER_RANGE_START - userHandle; + } + + public static boolean isKeyForUser(int key) { + return key <= OTHER_USER_RANGE_START; + } + + public static int getUserIdForKey(int key) { + return OTHER_USER_RANGE_START - key; + } + + public UidDetailProvider(Context context) { + mContext = context.getApplicationContext(); + mUidDetailCache = new SparseArray<UidDetail>(); + } + + public void clearCache() { + synchronized (mUidDetailCache) { + mUidDetailCache.clear(); + } + } + + /** + * Resolve best descriptive label for the given UID. + */ + public UidDetail getUidDetail(int uid, boolean blocking) { + UidDetail detail; + + synchronized (mUidDetailCache) { + detail = mUidDetailCache.get(uid); + } + + if (detail != null) { + return detail; + } else if (!blocking) { + return null; + } + + detail = buildUidDetail(uid); + + synchronized (mUidDetailCache) { + mUidDetailCache.put(uid, detail); + } + + return detail; + } + + /** + * Build {@link UidDetail} object, blocking until all {@link Drawable} + * lookup is finished. + */ + private UidDetail buildUidDetail(int uid) { + final Resources res = mContext.getResources(); + final PackageManager pm = mContext.getPackageManager(); + + final UidDetail detail = new UidDetail(); + detail.label = pm.getNameForUid(uid); + detail.icon = pm.getDefaultActivityIcon(); + + // handle special case labels + switch (uid) { + case android.os.Process.SYSTEM_UID: + detail.label = res.getString(R.string.process_kernel_label); + detail.icon = pm.getDefaultActivityIcon(); + return detail; + case TrafficStats.UID_REMOVED: + detail.label = res.getString(UserManager.supportsMultipleUsers() + ? R.string.data_usage_uninstalled_apps_users + : R.string.data_usage_uninstalled_apps); + detail.icon = pm.getDefaultActivityIcon(); + return detail; + case TrafficStats.UID_TETHERING: + final ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService( + Context.CONNECTIVITY_SERVICE); + detail.label = res.getString(Utils.getTetheringLabel(cm)); + detail.icon = pm.getDefaultActivityIcon(); + return detail; + } + + final UserManager um = (UserManager) mContext.getSystemService(Context.USER_SERVICE); + + // Handle keys that are actually user handles + if (isKeyForUser(uid)) { + final int userHandle = getUserIdForKey(uid); + final UserInfo info = um.getUserInfo(userHandle); + if (info != null) { + detail.label = Utils.getUserLabel(mContext, info); + detail.icon = Utils.getUserIcon(mContext, um, info); + return detail; + } + } + + // otherwise fall back to using packagemanager labels + final String[] packageNames = pm.getPackagesForUid(uid); + final int length = packageNames != null ? packageNames.length : 0; + try { + final int userId = UserHandle.getUserId(uid); + UserHandle userHandle = new UserHandle(userId); + IPackageManager ipm = AppGlobals.getPackageManager(); + if (length == 1) { + final ApplicationInfo info = ipm.getApplicationInfo(packageNames[0], + 0 /* no flags */, userId); + if (info != null) { + detail.label = info.loadLabel(pm).toString(); + detail.icon = um.getBadgedIconForUser(info.loadIcon(pm), + new UserHandle(userId)); + } + } else if (length > 1) { + detail.detailLabels = new CharSequence[length]; + detail.detailContentDescriptions = new CharSequence[length]; + for (int i = 0; i < length; i++) { + final String packageName = packageNames[i]; + final PackageInfo packageInfo = pm.getPackageInfo(packageName, 0); + final ApplicationInfo appInfo = ipm.getApplicationInfo(packageName, + 0 /* no flags */, userId); + + if (appInfo != null) { + detail.detailLabels[i] = appInfo.loadLabel(pm).toString(); + detail.detailContentDescriptions[i] = um.getBadgedLabelForUser( + detail.detailLabels[i], userHandle); + if (packageInfo.sharedUserLabel != 0) { + detail.label = pm.getText(packageName, packageInfo.sharedUserLabel, + packageInfo.applicationInfo).toString(); + detail.icon = um.getBadgedIconForUser(appInfo.loadIcon(pm), userHandle); + } + } + } + } + detail.contentDescription = um.getBadgedLabelForUser(detail.label, userHandle); + } catch (NameNotFoundException e) { + Log.w(TAG, "Error while building UI detail for uid "+uid, e); + } catch (RemoteException e) { + Log.w(TAG, "Error while building UI detail for uid "+uid, e); + } + + if (TextUtils.isEmpty(detail.label)) { + detail.label = Integer.toString(uid); + } + + return detail; + } +} diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index 37e0db0e7f43..b9daf5986be8 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -39,6 +39,7 @@ <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" /> + <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <!-- System tool permissions granted to the shell. --> <uses-permission android:name="android.permission.REAL_GET_TASKS" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> @@ -65,6 +66,7 @@ <uses-permission android:name="android.permission.READ_INPUT_STATE" /> <uses-permission android:name="android.permission.SET_ORIENTATION" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> + <uses-permission android:name="android.permission.MOVE_PACKAGE" /> <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.DELETE_CACHE_FILES" /> <uses-permission android:name="android.permission.DELETE_PACKAGES" /> diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index 677ab91a012f..372fa037eecf 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -108,6 +108,7 @@ <uses-permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" /> <uses-permission android:name="android.permission.TRUST_LISTENER" /> <uses-permission android:name="android.permission.USE_FINGERPRINT" /> + <uses-permission android:name="android.permission.RESET_FINGERPRINT_LOCKOUT" /> <!-- Needed for WallpaperManager.clear in ImageWallpaper.updateWallpaperLocked --> <uses-permission android:name="android.permission.SET_WALLPAPER"/> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_ellipse_path_1_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_ellipse_path_1_animation.xml new file mode 100755 index 000000000000..1c501658a2eb --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_ellipse_path_1_animation.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="600" + android:propertyName="strokeColor" + android:valueFrom="#FFF3511E" + android:valueTo="#FFFFFFFF" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="strokeAlpha" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="383" + android:propertyName="trimPathStart" + android:valueFrom="0.5001" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_3" /> + <objectAnimator + android:duration="383" + android:propertyName="trimPathEnd" + android:valueFrom="1.5" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_1" /> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_ellipse_path_2_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_ellipse_path_2_animation.xml new file mode 100755 index 000000000000..598255cb8397 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_ellipse_path_2_animation.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="316" + android:propertyName="pathData" + android:valueFrom="M 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" + android:valueTo="M 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="233" + android:propertyName="pathData" + android:valueFrom="M 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" + android:valueTo="M 0.0,-1.988645 c 1.09829830627,0.0 1.988645,0.890346693734 1.988645,1.988645 c 0.0,1.09829830627 -0.890346693734,1.988645 -1.988645,1.988645 c -1.09829830627,0.0 -1.988645,-0.890346693734 -1.988645,-1.988645 c 0.0,-1.09829830627 0.890346693734,-1.988645 1.988645,-1.988645 Z" + android:valueType="pathType" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_1" /> + </set> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFF3511E" + android:valueTo="#FFFFFFFF" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_exclamation_dot_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_exclamation_dot_animation.xml new file mode 100755 index 000000000000..7e0fa437f719 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_exclamation_dot_animation.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="133" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M -0.00391,5.333 c 0.00065,-0.22217 0.00326,-1.11083 0.00391,-1.333" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_0" /> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="83" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="83" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_lock_left_side_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_lock_left_side_animation.xml new file mode 100755 index 000000000000..f413cbf87c30 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_lock_left_side_animation.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="scaleX" + android:valueFrom="1.33333" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="183" + android:propertyName="scaleX" + android:valueFrom="1.33333" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="scaleY" + android:valueFrom="1.33333" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="183" + android:propertyName="scaleY" + android:valueFrom="1.33333" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_lock_right_side_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_lock_right_side_animation.xml new file mode 100755 index 000000000000..f413cbf87c30 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_lock_right_side_animation.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="scaleX" + android:valueFrom="1.33333" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="183" + android:propertyName="scaleX" + android:valueFrom="1.33333" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="scaleY" + android:valueFrom="1.33333" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="183" + android:propertyName="scaleY" + android:valueFrom="1.33333" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_lock_top_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_lock_top_animation.xml new file mode 100755 index 000000000000..2518041f3c1a --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_lock_top_animation.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="333" + android:propertyName="scaleX" + android:valueFrom="0.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleX" + android:valueFrom="0.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="333" + android:propertyName="scaleY" + android:valueFrom="0.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleY" + android:valueFrom="0.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_path_1_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_path_1_animation.xml new file mode 100755 index 000000000000..15f8d2ec3e42 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_path_1_animation.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="pathData" + android:valueFrom="M 0.02685546875,-4.96875 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 -0.00936889648438,3.9296875 -0.00936889648438,3.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0028076171875,0.0234375 -0.0028076171875,0.0234375 c 0.0,0.0 0.010498046875,-0.015625 0.010498046875,-0.015625 c 0.0,0.0 0.985595703125,0.0078125 0.985595703125,0.0078125 c 0.0,0.0 0.017578125,-6.015625 0.017578125,-6.015625 c 0.0,0.0 0.104400634766,0.0546875 -0.99560546875,0.0546875 Z" + android:valueTo="M 0.02685546875,-4.96875 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 -0.00936889648438,3.9296875 -0.00936889648438,3.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0028076171875,0.0234375 -0.0028076171875,0.0234375 c 0.0,0.0 0.010498046875,-0.015625 0.010498046875,-0.015625 c 0.0,0.0 0.985595703125,0.0078125 0.985595703125,0.0078125 c 0.0,0.0 0.017578125,-6.015625 0.017578125,-6.015625 c 0.0,0.0 0.104400634766,0.0546875 -0.99560546875,0.0546875 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="183" + android:propertyName="pathData" + android:valueFrom="M 0.02685546875,-4.96875 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 -0.00936889648438,3.9296875 -0.00936889648438,3.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0028076171875,0.0234375 -0.0028076171875,0.0234375 c 0.0,0.0 0.010498046875,-0.015625 0.010498046875,-0.015625 c 0.0,0.0 0.985595703125,0.0078125 0.985595703125,0.0078125 c 0.0,0.0 0.017578125,-6.015625 0.017578125,-6.015625 c 0.0,0.0 0.104400634766,0.0546875 -0.99560546875,0.0546875 Z" + android:valueTo="M 1.63623046875,-4.953125 c 0.0,0.0 -1.61499023438,0.0 -1.61499023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 0.0118713378906,7.9296875 0.0118713378906,7.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 1.61987304688,0.0 1.61987304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 -0.01123046875,-7.9296875 -0.01123046875,-7.9296875 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="316" + android:propertyName="pathData" + android:valueFrom="M 1.63623046875,-4.953125 c 0.0,0.0 -1.61499023438,0.0 -1.61499023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 0.0118713378906,7.9296875 0.0118713378906,7.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 1.61987304688,0.0 1.61987304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 -0.01123046875,-7.9296875 -0.01123046875,-7.9296875 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueTo="M 6.00561523438,-4.046875 c 0.0,0.0 -5.98999023438,0.0 -5.98999023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 5.98812866211,0.0 5.98812866211,0.0 c 0.0,0.0 0.00064086914062,10.0 0.00064086914062,10.0 c 0.0,0.0 -5.98840332031,0.0 -5.98840332031,0.0 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 5.99487304688,0.0 5.99487304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.0 0.0,-10.0 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_4" /> + </set> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFF3511E" + android:valueTo="#FFFFFFFF" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_path_2_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_path_2_animation.xml new file mode 100755 index 000000000000..aa81fcff0da5 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_path_2_animation.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="pathData" + android:valueFrom="M 0.0252990722656,-2.96914672852 c 0.0,0.0 -0.00390625,0.0160217285156 -0.00390625,0.0160217285156 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 0.005615234375,-0.015625 0.005615234375,-0.015625 c -1.10000610352,0.0 -1.01220703125,-0.0546875 -1.01220703125,-0.0546875 c 0.0,0.0 -0.017578125,6.015625 -0.017578125,6.015625 c 0.0,0.0 -0.0777893066406,-0.0078125 1.02221679688,-0.0078125 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 -0.002685546875,-0.0244140625 -0.002685546875,-0.0244140625 c 0.0,0.0 0.00390625,-0.0152587890625 0.00390625,-0.0152587890625 c 0.0,0.0 0.0104064941406,-3.92947387695 0.0104064941406,-3.92947387695 Z" + android:valueTo="M 0.0252990722656,-2.96914672852 c 0.0,0.0 -0.00390625,0.0160217285156 -0.00390625,0.0160217285156 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 0.005615234375,-0.015625 0.005615234375,-0.015625 c -1.10000610352,0.0 -1.01220703125,-0.0546875 -1.01220703125,-0.0546875 c 0.0,0.0 -0.017578125,6.015625 -0.017578125,6.015625 c 0.0,0.0 -0.0777893066406,-0.0078125 1.02221679688,-0.0078125 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 -0.002685546875,-0.0244140625 -0.002685546875,-0.0244140625 c 0.0,0.0 0.00390625,-0.0152587890625 0.00390625,-0.0152587890625 c 0.0,0.0 0.0104064941406,-3.92947387695 0.0104064941406,-3.92947387695 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="183" + android:propertyName="pathData" + android:valueFrom="M 0.0252990722656,-2.96914672852 c 0.0,0.0 -0.00390625,0.0160217285156 -0.00390625,0.0160217285156 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 0.005615234375,-0.015625 0.005615234375,-0.015625 c -1.10000610352,0.0 -1.01220703125,-0.0546875 -1.01220703125,-0.0546875 c 0.0,0.0 -0.017578125,6.015625 -0.017578125,6.015625 c 0.0,0.0 -0.0777893066406,-0.0078125 1.02221679688,-0.0078125 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 -0.002685546875,-0.0244140625 -0.002685546875,-0.0244140625 c 0.0,0.0 0.00390625,-0.0152587890625 0.00390625,-0.0152587890625 c 0.0,0.0 0.0104064941406,-3.92947387695 0.0104064941406,-3.92947387695 Z" + android:valueTo="M 0.0252990722656,-2.96975708008 c 0.0,0.0 -0.00390625,0.0166320800781 -0.00390625,0.0166320800781 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -1.63500976562,0.0 -1.63500976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.01123046875,7.9296875 0.01123046875,7.9296875 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 1.63500976562,0.0 1.63500976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 0.00390625,-0.015869140625 0.00390625,-0.015869140625 c 0.0,0.0 -0.0108337402344,-7.92947387695 -0.0108337402344,-7.92947387695 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="316" + android:propertyName="pathData" + android:valueFrom="M 0.0252990722656,-2.96975708008 c 0.0,0.0 -0.00390625,0.0166320800781 -0.00390625,0.0166320800781 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -1.63500976562,0.0 -1.63500976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.01123046875,7.9296875 0.01123046875,7.9296875 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 1.63500976562,0.0 1.63500976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 0.00390625,-0.015869140625 0.00390625,-0.015869140625 c 0.0,0.0 -0.0108337402344,-7.92947387695 -0.0108337402344,-7.92947387695 Z" + android:valueTo="M -5.9959564209,-2.04727172852 c 0.0,0.0 6.01173400879,0.00039672851562 6.01173400879,0.00039672851562 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -6.01000976562,0.0 -6.01000976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.0 0.0,10.0 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 6.01000976562,0.0 6.01000976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 -6.01171875,0.0003662109375 -6.01171875,0.0003662109375 c 0.0,0.0 0.00038146972656,-9.99978637695 0.00038146972656,-9.99978637695 Z" + android:valueType="pathType" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_4" /> + </set> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFF3511E" + android:valueTo="#FFFFFFFF" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_path_3_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_path_3_animation.xml new file mode 100755 index 000000000000..f94fe0a96974 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_path_3_animation.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="233" + android:propertyName="pathData" + android:valueFrom="M 5.01239013672,3.390625 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:valueTo="M 5.01239013672,3.390625 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="366" + android:propertyName="pathData" + android:valueFrom="M 5.01239013672,3.390625 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:valueTo="M 5.00619506836,-6.046875 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@interpolator/error_to_trustedstate_animation_interpolator_2" /> + </set> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFF3511E" + android:valueTo="#FFFFFFFF" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/error_to_trustedstate_rectangle_path_1_animation.xml b/packages/SystemUI/res/anim/error_to_trustedstate_rectangle_path_1_animation.xml new file mode 100755 index 000000000000..bcc8c4177426 --- /dev/null +++ b/packages/SystemUI/res/anim/error_to_trustedstate_rectangle_path_1_animation.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFF3511E" + android:valueTo="#FFFFFFFF" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/navbar_fade_in.xml b/packages/SystemUI/res/anim/navbar_fade_in.xml index e3429e68dd13..705173043fa3 100644 --- a/packages/SystemUI/res/anim/navbar_fade_in.xml +++ b/packages/SystemUI/res/anim/navbar_fade_in.xml @@ -19,4 +19,5 @@ android:fromAlpha="0.0" android:toAlpha="1.0" android:interpolator="@android:interpolator/linear_out_slow_in" + android:startDelay="32" android:duration="200"/> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_ellipse_path_1_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_ellipse_path_1_animation.xml new file mode 100755 index 000000000000..5cf48093a05e --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_ellipse_path_1_animation.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="600" + android:propertyName="strokeColor" + android:valueFrom="#FFFFFFFF" + android:valueTo="#FFF3511E" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="strokeAlpha" + android:valueFrom="0.5" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="166" + android:propertyName="trimPathOffset" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="433" + android:propertyName="trimPathOffset" + android:valueFrom="1.0" + android:valueTo="0.5" + android:valueType="floatType" + android:interpolator="@interpolator/trusted_state_to_error_animation_interpolator_2" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="166" + android:propertyName="trimPathStart" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="433" + android:propertyName="trimPathStart" + android:valueFrom="1.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@interpolator/trusted_state_to_error_animation_interpolator_0" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_ellipse_path_2_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_ellipse_path_2_animation.xml new file mode 100755 index 000000000000..a387f97730d0 --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_ellipse_path_2_animation.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="200" + android:propertyName="pathData" + android:valueFrom="M 0.0,-1.988645 c 1.09829830627,0.0 1.988645,0.890346693734 1.988645,1.988645 c 0.0,1.09829830627 -0.890346693734,1.988645 -1.988645,1.988645 c -1.09829830627,0.0 -1.988645,-0.890346693734 -1.988645,-1.988645 c 0.0,-1.09829830627 0.890346693734,-1.988645 1.988645,-1.988645 Z" + android:valueTo="M 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFFFFFFF" + android:valueTo="#FFF3511E" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="0.5" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_exclamation_dot_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_exclamation_dot_animation.xml new file mode 100755 index 000000000000..7a9fb3b3372d --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_exclamation_dot_animation.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="566" + android:propertyXName="translateX" + android:propertyYName="translateY" + android:pathData="M 0.0,4.0 c -0.00065,0.22217 -0.00326,1.11083 -0.00391,1.333" + android:interpolator="@interpolator/trusted_state_to_error_animation_interpolator_1" /> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="300" + android:propertyName="scaleX" + android:valueFrom="0.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleX" + android:valueFrom="0.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="300" + android:propertyName="scaleY" + android:valueFrom="0.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleY" + android:valueFrom="0.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_lock_left_side_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_lock_left_side_animation.xml new file mode 100755 index 000000000000..2a4753a2287a --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_lock_left_side_animation.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="200" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="200" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="200" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="200" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_lock_right_side_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_lock_right_side_animation.xml new file mode 100755 index 000000000000..2a4753a2287a --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_lock_right_side_animation.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="200" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="200" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="200" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="200" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="1.33333" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_lock_top_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_lock_top_animation.xml new file mode 100755 index 000000000000..1f601d34d9f7 --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_lock_top_animation.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="116" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleX" + android:valueFrom="1.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="116" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="16" + android:propertyName="scaleY" + android:valueFrom="1.0" + android:valueTo="0.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/linear" /> + </set> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_path_1_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_path_1_animation.xml new file mode 100755 index 000000000000..7b9be5c7ddf9 --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_path_1_animation.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="pathData" + android:valueFrom="M 6.00561523438,-4.046875 c 0.0,0.0 -5.98999023438,0.0 -5.98999023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 5.98812866211,0.0 5.98812866211,0.0 c 0.0,0.0 0.00064086914062,10.0 0.00064086914062,10.0 c 0.0,0.0 -5.98840332031,0.0 -5.98840332031,0.0 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 5.99487304688,0.0 5.99487304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.0 0.0,-10.0 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueTo="M 6.00561523438,-4.046875 c 0.0,0.0 -5.98999023438,0.0 -5.98999023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 5.98812866211,0.0 5.98812866211,0.0 c 0.0,0.0 0.00064086914062,10.0 0.00064086914062,10.0 c 0.0,0.0 -5.98840332031,0.0 -5.98840332031,0.0 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 5.99487304688,0.0 5.99487304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.0 0.0,-10.0 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="166" + android:propertyName="pathData" + android:valueFrom="M 6.00561523438,-4.046875 c 0.0,0.0 -5.98999023438,0.0 -5.98999023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 5.98812866211,0.0 5.98812866211,0.0 c 0.0,0.0 0.00064086914062,10.0 0.00064086914062,10.0 c 0.0,0.0 -5.98840332031,0.0 -5.98840332031,0.0 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 5.99487304688,0.0 5.99487304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.0 0.0,-10.0 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueTo="M 1.63623046875,-4.953125 c 0.0,0.0 -1.61499023438,0.0 -1.61499023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 0.00064086914062,10.625 0.00064086914062,10.625 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 1.61987304688,0.0 1.61987304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.625 0.0,-10.625 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="200" + android:propertyName="pathData" + android:valueFrom="M 1.63623046875,-4.953125 c 0.0,0.0 -1.61499023438,0.0 -1.61499023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 0.00064086914062,10.625 0.00064086914062,10.625 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 1.61987304688,0.0 1.61987304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.625 0.0,-10.625 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:valueTo="M 0.02685546875,-4.96875 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 -0.00936889648438,3.9296875 -0.00936889648438,3.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0028076171875,0.0234375 -0.0028076171875,0.0234375 c 0.0,0.0 0.010498046875,-0.015625 0.010498046875,-0.015625 c 0.0,0.0 0.985595703125,0.0078125 0.985595703125,0.0078125 c 0.0,0.0 0.017578125,-6.015625 0.017578125,-6.015625 c 0.0,0.0 0.104400634766,0.0546875 -0.99560546875,0.0546875 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFFFFFFF" + android:valueTo="#FFF3511E" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="0.5" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_path_2_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_path_2_animation.xml new file mode 100755 index 000000000000..8eb0c62da690 --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_path_2_animation.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <set + android:ordering="sequentially" > + <objectAnimator + android:duration="33" + android:propertyName="pathData" + android:valueFrom="M -5.9959564209,-2.04727172852 c 0.0,0.0 6.01173400879,0.00039672851562 6.01173400879,0.00039672851562 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -6.01000976562,0.0 -6.01000976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.0 0.0,10.0 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 6.01000976562,0.0 6.01000976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 -6.01171875,0.0003662109375 -6.01171875,0.0003662109375 c 0.0,0.0 0.00038146972656,-9.99978637695 0.00038146972656,-9.99978637695 Z" + android:valueTo="M -5.9959564209,-2.04727172852 c 0.0,0.0 6.01173400879,0.00039672851562 6.01173400879,0.00039672851562 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -6.01000976562,0.0 -6.01000976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.0 0.0,10.0 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 6.01000976562,0.0 6.01000976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 -6.01171875,0.0003662109375 -6.01171875,0.0003662109375 c 0.0,0.0 0.00038146972656,-9.99978637695 0.00038146972656,-9.99978637695 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/linear" /> + <objectAnimator + android:duration="166" + android:propertyName="pathData" + android:valueFrom="M -5.9959564209,-2.04727172852 c 0.0,0.0 6.01173400879,0.00039672851562 6.01173400879,0.00039672851562 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -6.01000976562,0.0 -6.01000976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.0 0.0,10.0 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 6.01000976562,0.0 6.01000976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 -6.01171875,0.0003662109375 -6.01171875,0.0003662109375 c 0.0,0.0 0.00038146972656,-9.99978637695 0.00038146972656,-9.99978637695 Z" + android:valueTo="M 0.0252990722656,-2.96975708008 c 0.0,0.0 -0.00390625,0.0166320800781 -0.00390625,0.0166320800781 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -1.63500976562,0.0 -1.63500976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.625 0.0,10.625 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 1.63500976562,0.0 1.63500976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 0.00390625,-0.015869140625 0.00390625,-0.015869140625 c 0.0,0.0 0.00039672851562,-10.624786377 0.00039672851562,-10.624786377 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="200" + android:propertyName="pathData" + android:valueFrom="M 0.0252990722656,-2.96975708008 c 0.0,0.0 -0.00390625,0.0166320800781 -0.00390625,0.0166320800781 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -1.63500976562,0.0 -1.63500976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.625 0.0,10.625 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 1.63500976562,0.0 1.63500976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 0.00390625,-0.015869140625 0.00390625,-0.015869140625 c 0.0,0.0 0.00039672851562,-10.624786377 0.00039672851562,-10.624786377 Z" + android:valueTo="M 0.0252990722656,-2.96914672852 c 0.0,0.0 -0.00390625,0.0160217285156 -0.00390625,0.0160217285156 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 0.005615234375,-0.015625 0.005615234375,-0.015625 c -1.10000610352,0.0 -1.01220703125,-0.0546875 -1.01220703125,-0.0546875 c 0.0,0.0 -0.017578125,6.015625 -0.017578125,6.015625 c 0.0,0.0 -0.0777893066406,-0.0078125 1.02221679688,-0.0078125 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 -0.002685546875,-0.0244140625 -0.002685546875,-0.0244140625 c 0.0,0.0 0.00390625,-0.0152587890625 0.00390625,-0.0152587890625 c 0.0,0.0 0.0104064941406,-3.92947387695 0.0104064941406,-3.92947387695 Z" + android:valueType="pathType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + </set> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFFFFFFF" + android:valueTo="#FFF3511E" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="0.5" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_path_3_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_path_3_animation.xml new file mode 100755 index 000000000000..2e867449b2f3 --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_path_3_animation.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="200" + android:propertyName="pathData" + android:valueFrom="M 5.00619506836,-6.046875 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:valueTo="M 5.01239013672,3.390625 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:valueType="pathType" + android:interpolator="@interpolator/trusted_state_to_error_animation_interpolator_3" /> + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFFFFFFF" + android:valueTo="#FFF3511E" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="0.5" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/anim/trusted_state_to_error_rectangle_path_1_animation.xml b/packages/SystemUI/res/anim/trusted_state_to_error_rectangle_path_1_animation.xml new file mode 100755 index 000000000000..46d571cac76d --- /dev/null +++ b/packages/SystemUI/res/anim/trusted_state_to_error_rectangle_path_1_animation.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<set + xmlns:android="http://schemas.android.com/apk/res/android" > + <objectAnimator + android:duration="600" + android:propertyName="fillColor" + android:valueFrom="#FFFFFFFF" + android:valueTo="#FFF3511E" + android:interpolator="@android:interpolator/fast_out_slow_in" /> + <objectAnimator + android:duration="600" + android:propertyName="fillAlpha" + android:valueFrom="0.5" + android:valueTo="1.0" + android:valueType="floatType" + android:interpolator="@android:interpolator/fast_out_slow_in" /> +</set> diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_land.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_land.png Binary files differdeleted file mode 100644 index 165ef4fb8a0f..000000000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_ime_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index f95f09fab9f8..000000000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_land.png Binary files differdeleted file mode 100644 index 860a906aa337..000000000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_home_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_land.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_land.png Binary files differdeleted file mode 100644 index bcb203e40f06..000000000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_menu_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_land.png Binary files differdeleted file mode 100644 index bab268e6a34d..000000000000 --- a/packages/SystemUI/res/drawable-hdpi/ic_sysbar_recent_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index 2f4dbbee5741..000000000000 --- a/packages/SystemUI/res/drawable-ldrtl-hdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index d04d84f5d76b..000000000000 --- a/packages/SystemUI/res/drawable-ldrtl-mdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index 1500ae58969b..000000000000 --- a/packages/SystemUI/res/drawable-ldrtl-xhdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index a7fec49f76a1..000000000000 --- a/packages/SystemUI/res/drawable-ldrtl-xxhdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_land.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_land.png Binary files differdeleted file mode 100644 index 0feb405f4c28..000000000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_ime_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index cabab0da4c36..000000000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_land.png Binary files differdeleted file mode 100644 index 16e1bf532cfa..000000000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_home_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_land.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_land.png Binary files differdeleted file mode 100644 index 94c9743f293f..000000000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_menu_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_land.png Binary files differdeleted file mode 100644 index 40375dec70f8..000000000000 --- a/packages/SystemUI/res/drawable-mdpi/ic_sysbar_recent_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_land.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_land.png Binary files differdeleted file mode 100644 index b7b8f989c4e8..000000000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_ime_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index 69b7449b78f5..000000000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_land.png Binary files differdeleted file mode 100644 index 57d243c94c1a..000000000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_home_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_land.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_land.png Binary files differdeleted file mode 100644 index 8a7ac4f9ab31..000000000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_menu_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_land.png Binary files differdeleted file mode 100644 index e53eaffa862f..000000000000 --- a/packages/SystemUI/res/drawable-xhdpi/ic_sysbar_recent_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_land.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_land.png Binary files differdeleted file mode 100644 index 695e7a464bfe..000000000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_ime_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index 88294c05fcb2..000000000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_land.png Binary files differdeleted file mode 100644 index 09d684a14e8e..000000000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_home_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_land.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_land.png Binary files differdeleted file mode 100644 index 62f44e892858..000000000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_menu_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_land.png Binary files differdeleted file mode 100644 index e31ea3282681..000000000000 --- a/packages/SystemUI/res/drawable-xxhdpi/ic_sysbar_recent_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_land.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_land.png Binary files differdeleted file mode 100644 index 24f12d717603..000000000000 --- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_ime_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_land.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_land.png Binary files differdeleted file mode 100644 index 51482f505e9f..000000000000 --- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_back_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_land.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_land.png Binary files differdeleted file mode 100644 index 46c7b189ddb7..000000000000 --- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_home_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_land.png b/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_land.png Binary files differdeleted file mode 100644 index 396ad7d2e39b..000000000000 --- a/packages/SystemUI/res/drawable-xxxhdpi/ic_sysbar_recent_land.png +++ /dev/null diff --git a/packages/SystemUI/res/drawable/error_to_trustedstate.xml b/packages/SystemUI/res/drawable/error_to_trustedstate.xml new file mode 100755 index 000000000000..6211edf2a9de --- /dev/null +++ b/packages/SystemUI/res/drawable/error_to_trustedstate.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="error_to_trustedstate" + android:width="32dp" + android:viewportWidth="32" + android:height="32dp" + android:viewportHeight="32" > + <group + android:name="error_to_trusted_state" + android:translateX="16" + android:translateY="16" > + <group + android:name="error_circle" > + <path + android:name="ellipse_path_1" + android:trimPathStart="0" + android:trimPathEnd="1" + android:trimPathOffset="0.0" + android:strokeColor="#FFF3511E" + android:strokeWidth="2" + android:pathData="M 0.0,-12.0 c 6.6274169976,0.0 12.0,5.3725830024 12.0,12.0 c 0.0,6.6274169976 -5.3725830024,12.0 -12.0,12.0 c -6.6274169976,0.0 -12.0,-5.3725830024 -12.0,-12.0 c 0.0,-6.6274169976 5.3725830024,-12.0 12.0,-12.0 Z" /> + </group> + <group + android:name="middle_ellipse" + android:translateY="2.9375" > + <path + android:name="ellipse_path_2" + android:fillColor="#FFF3511E" + android:pathData="M 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + <group + android:name="lock_right_side" + android:scaleX="1.33333" + android:scaleY="1.33333" > + <path + android:name="path_1" + android:pathData="M 0.02685546875,-4.96875 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 0.00375366210938,-0.015625 0.00375366210938,-0.015625 c 0.0,0.0 -0.00936889648438,3.9296875 -0.00936889648438,3.9296875 c 0.0,0.0 -0.0040283203125,0.015625 -0.0040283203125,0.015625 c 0.0,0.0 -0.0028076171875,0.0234375 -0.0028076171875,0.0234375 c 0.0,0.0 0.010498046875,-0.015625 0.010498046875,-0.015625 c 0.0,0.0 0.985595703125,0.0078125 0.985595703125,0.0078125 c 0.0,0.0 0.017578125,-6.015625 0.017578125,-6.015625 c 0.0,0.0 0.104400634766,0.0546875 -0.99560546875,0.0546875 Z" + android:fillColor="#FFF3511E" /> + </group> + <group + android:name="lock_left_side" + android:scaleX="1.33333" + android:scaleY="1.33333" > + <path + android:name="path_2" + android:pathData="M 0.0252990722656,-2.96914672852 c 0.0,0.0 -0.00390625,0.0160217285156 -0.00390625,0.0160217285156 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 0.005615234375,-0.015625 0.005615234375,-0.015625 c -1.10000610352,0.0 -1.01220703125,-0.0546875 -1.01220703125,-0.0546875 c 0.0,0.0 -0.017578125,6.015625 -0.017578125,6.015625 c 0.0,0.0 -0.0777893066406,-0.0078125 1.02221679688,-0.0078125 c 0.0,0.0 -0.005615234375,0.015625 -0.005615234375,0.015625 c 0.0,0.0 -0.002685546875,-0.0244140625 -0.002685546875,-0.0244140625 c 0.0,0.0 0.00390625,-0.0152587890625 0.00390625,-0.0152587890625 c 0.0,0.0 0.0104064941406,-3.92947387695 0.0104064941406,-3.92947387695 Z" + android:fillColor="#FFF3511E" /> + </group> + <group + android:name="lock_top" + android:scaleX="0" + android:scaleY="0" > + <path + android:name="path_3" + android:pathData="M 5.01239013672,3.390625 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:fillColor="#FFF3511E" /> + </group> + <group + android:name="exclamation_dot" + android:translateX="-0.00391" + android:translateY="5.333" > + <path + android:name="rectangle_path_1" + android:fillColor="#FFF3511E" + android:pathData="M -1.33871,-1.3335 l 2.67742,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,2.667 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.67742,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-2.667 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + </group> +</vector> diff --git a/packages/SystemUI/res/drawable/error_to_trustedstate_animation.xml b/packages/SystemUI/res/drawable/error_to_trustedstate_animation.xml new file mode 100755 index 000000000000..6befe13a1a1a --- /dev/null +++ b/packages/SystemUI/res/drawable/error_to_trustedstate_animation.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/error_to_trustedstate" > + <target + android:name="ellipse_path_1" + android:animation="@anim/error_to_trustedstate_ellipse_path_1_animation" /> + <target + android:name="ellipse_path_2" + android:animation="@anim/error_to_trustedstate_ellipse_path_2_animation" /> + <target + android:name="lock_right_side" + android:animation="@anim/error_to_trustedstate_lock_right_side_animation" /> + <target + android:name="path_1" + android:animation="@anim/error_to_trustedstate_path_1_animation" /> + <target + android:name="lock_left_side" + android:animation="@anim/error_to_trustedstate_lock_left_side_animation" /> + <target + android:name="path_2" + android:animation="@anim/error_to_trustedstate_path_2_animation" /> + <target + android:name="lock_top" + android:animation="@anim/error_to_trustedstate_lock_top_animation" /> + <target + android:name="path_3" + android:animation="@anim/error_to_trustedstate_path_3_animation" /> + <target + android:name="exclamation_dot" + android:animation="@anim/error_to_trustedstate_exclamation_dot_animation" /> + <target + android:name="rectangle_path_1" + android:animation="@anim/error_to_trustedstate_rectangle_path_1_animation" /> +</animated-vector> diff --git a/packages/SystemUI/res/drawable/trusted_state_to_error.xml b/packages/SystemUI/res/drawable/trusted_state_to_error.xml new file mode 100755 index 000000000000..534a9a54c3ea --- /dev/null +++ b/packages/SystemUI/res/drawable/trusted_state_to_error.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:name="trusted_state_to_error" + android:width="32dp" + android:viewportWidth="32" + android:height="32dp" + android:viewportHeight="32" > + <group + android:name="trusted_state_to_error_0" + android:translateX="16" + android:translateY="16" > + <group + android:name="error_circle" > + <path + android:name="ellipse_path_1" + android:trimPathStart="1" + android:trimPathOffset="1" + android:strokeColor="#FFFFFFFF" + android:strokeAlpha="0.5" + android:strokeWidth="2" + android:pathData="M 0.0,-12.0 c 6.6274169976,0.0 12.0,5.3725830024 12.0,12.0 c 0.0,6.6274169976 -5.3725830024,12.0 -12.0,12.0 c -6.6274169976,0.0 -12.0,-5.3725830024 -12.0,-12.0 c 0.0,-6.6274169976 5.3725830024,-12.0 12.0,-12.0 Z" /> + </group> + <group + android:name="middle_ellipse" + android:translateY="2.9375" > + <path + android:name="ellipse_path_2" + android:fillColor="#FFFFFFFF" + android:fillAlpha="0.5" + android:pathData="M 0.0,-1.988645 c 1.09829830627,0.0 1.988645,0.890346693734 1.988645,1.988645 c 0.0,1.09829830627 -0.890346693734,1.988645 -1.988645,1.988645 c -1.09829830627,0.0 -1.988645,-0.890346693734 -1.988645,-1.988645 c 0.0,-1.09829830627 0.890346693734,-1.988645 1.988645,-1.988645 Z" /> + </group> + <group + android:name="lock_right_side" > + <path + android:name="path_1" + android:pathData="M 6.00561523438,-4.046875 c 0.0,0.0 -5.98999023438,0.0 -5.98999023438,0.0 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 5.98812866211,0.0 5.98812866211,0.0 c 0.0,0.0 0.00064086914062,10.0 0.00064086914062,10.0 c 0.0,0.0 -5.98840332031,0.0 -5.98840332031,0.0 c 0.0,0.0 -0.0052490234375,2.0 -0.0052490234375,2.0 c 0.0,0.0 5.99487304688,0.0 5.99487304688,0.0 c 1.10000610352,0.0 2.0,-0.900024414062 2.0,-2.0 c 0.0,0.0 0.0,-10.0 0.0,-10.0 c 0.0,-1.09997558594 -0.899993896484,-2.0 -2.0,-2.0 Z" + android:fillColor="#FFFFFFFF" + android:fillAlpha="0.5" /> + </group> + <group + android:name="lock_left_side" > + <path + android:name="path_2" + android:pathData="M -5.9959564209,-2.04727172852 c 0.0,0.0 6.01173400879,0.00039672851562 6.01173400879,0.00039672851562 c 0.0,0.0 -0.00015258789062,-2.0 -0.00015258789062,-2.0 c 0.0,0.0 -6.01000976562,0.0 -6.01000976562,0.0 c -1.10000610352,0.0 -2.0,0.900024414062 -2.0,2.0 c 0.0,0.0 0.0,10.0 0.0,10.0 c 0.0,1.09997558594 0.899993896484,2.0 2.0,2.0 c 0.0,0.0 6.01000976562,0.0 6.01000976562,0.0 c 0.0,0.0 -0.000244140625,-2.0009765625 -0.000244140625,-2.0009765625 c 0.0,0.0 -6.01171875,0.0003662109375 -6.01171875,0.0003662109375 c 0.0,0.0 0.00038146972656,-9.99978637695 0.00038146972656,-9.99978637695 Z" + android:fillColor="#FFFFFFFF" + android:fillAlpha="0.5" /> + </group> + <group + android:name="lock_top" > + <path + android:name="path_3" + android:pathData="M 5.00619506836,-6.046875 c 0.0,-2.76000976562 -2.23999023438,-5.0 -5.0,-5.0 c -2.76000976562,0.0 -5.0,2.23999023438 -5.0,5.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,-1.71002197266 1.38999938965,-3.09997558594 3.10000610352,-3.09997558594 c 1.71000671387,0.0 3.10000610352,1.38995361328 3.10000610352,3.09997558594 c 0.0,0.0 0.0,2.0 0.0,2.0 c 0.0,0.0 1.89999389648,0.0 1.89999389648,0.0 c 0.0,0.0 0.0,-2.0 0.0,-2.0 Z" + android:fillColor="#FFFFFFFF" + android:fillAlpha="0.5" /> + </group> + <group + android:name="exclamation_dot" + android:translateY="4" + android:scaleX="0" + android:scaleY="0" > + <path + android:name="rectangle_path_1" + android:fillColor="#FFFFFFFF" + android:fillAlpha="0.5" + android:pathData="M -1.33871,-1.3335 l 2.67742,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,2.667 c 0.0,0.0 0.0,0.0 0.0,0.0 l -2.67742,0.0 c 0.0,0.0 0.0,0.0 0.0,0.0 l 0.0,-2.667 c 0.0,0.0 0.0,0.0 0.0,0.0 Z" /> + </group> + </group> +</vector> diff --git a/packages/SystemUI/res/drawable/trusted_state_to_error_animation.xml b/packages/SystemUI/res/drawable/trusted_state_to_error_animation.xml new file mode 100755 index 000000000000..5686d541c6d3 --- /dev/null +++ b/packages/SystemUI/res/drawable/trusted_state_to_error_animation.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector + xmlns:android="http://schemas.android.com/apk/res/android" + android:drawable="@drawable/trusted_state_to_error" > + <target + android:name="ellipse_path_1" + android:animation="@anim/trusted_state_to_error_ellipse_path_1_animation" /> + <target + android:name="ellipse_path_2" + android:animation="@anim/trusted_state_to_error_ellipse_path_2_animation" /> + <target + android:name="lock_right_side" + android:animation="@anim/trusted_state_to_error_lock_right_side_animation" /> + <target + android:name="path_1" + android:animation="@anim/trusted_state_to_error_path_1_animation" /> + <target + android:name="lock_left_side" + android:animation="@anim/trusted_state_to_error_lock_left_side_animation" /> + <target + android:name="path_2" + android:animation="@anim/trusted_state_to_error_path_2_animation" /> + <target + android:name="lock_top" + android:animation="@anim/trusted_state_to_error_lock_top_animation" /> + <target + android:name="path_3" + android:animation="@anim/trusted_state_to_error_path_3_animation" /> + <target + android:name="exclamation_dot" + android:animation="@anim/trusted_state_to_error_exclamation_dot_animation" /> + <target + android:name="rectangle_path_1" + android:animation="@anim/trusted_state_to_error_rectangle_path_1_animation" /> +</animated-vector> diff --git a/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_0.xml b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_0.xml new file mode 100755 index 000000000000..262cb88b48ac --- /dev/null +++ b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_0.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 l 0.254777070064,0.0 c 0.00007,0.0 0.447133757962,1.0 0.745222929936,1.0 L 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_1.xml b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_1.xml new file mode 100755 index 000000000000..9ecee94bc915 --- /dev/null +++ b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_1.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.00010,0.0 0.6,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_2.xml b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_2.xml new file mode 100755 index 000000000000..ae0b2d7740d5 --- /dev/null +++ b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_2.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.000100000000009,0.0 0.6,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_3.xml b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_3.xml new file mode 100755 index 000000000000..be7cc69ebda1 --- /dev/null +++ b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_3.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.00010,0.0 0.2,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_4.xml b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_4.xml new file mode 100755 index 000000000000..f8f978d7dc06 --- /dev/null +++ b/packages/SystemUI/res/interpolator/error_to_trustedstate_animation_interpolator_4.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.4,0.0 0.6,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_0.xml b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_0.xml new file mode 100755 index 000000000000..9ecee94bc915 --- /dev/null +++ b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_0.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.00010,0.0 0.6,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_1.xml b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_1.xml new file mode 100755 index 000000000000..87ef1d49d6ab --- /dev/null +++ b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_1.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 l 0.412907702984,0.0 c 0.00006,0.0 0.35225537821,1.0 0.587092297016,1.0 L 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_2.xml b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_2.xml new file mode 100755 index 000000000000..be7cc69ebda1 --- /dev/null +++ b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_2.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.00010,0.0 0.2,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_3.xml b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_3.xml new file mode 100755 index 000000000000..83af65a6e60e --- /dev/null +++ b/packages/SystemUI/res/interpolator/trusted_state_to_error_animation_interpolator_3.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +Copyright (C) 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<pathInterpolator + xmlns:android="http://schemas.android.com/apk/res/android" + android:pathData="M 0.0,0.0 c 0.4,0.0 0.9999,1.0 1.0,1.0" /> diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml index c92ba450be37..d58664f76ab4 100644 --- a/packages/SystemUI/res/layout/navigation_bar.xml +++ b/packages/SystemUI/res/layout/navigation_bar.xml @@ -213,7 +213,7 @@ android:layout_width="match_parent" android:layout_height="40dp" android:contentDescription="@string/accessibility_menu" - android:src="@drawable/ic_sysbar_menu_land" + android:src="@drawable/ic_sysbar_menu" android:scaleType="centerInside" android:layout_gravity="top" android:visibility="invisible" @@ -223,7 +223,7 @@ <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/recent_apps" android:layout_height="@dimen/navigation_key_width" android:layout_width="match_parent" - android:src="@drawable/ic_sysbar_recent_land" + android:src="@drawable/ic_sysbar_recent" android:scaleType="center" android:layout_weight="0" android:contentDescription="@string/accessibility_recent" @@ -237,7 +237,7 @@ <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home" android:layout_height="@dimen/navigation_key_width" android:layout_width="match_parent" - android:src="@drawable/ic_sysbar_home_land" + android:src="@drawable/ic_sysbar_home" android:scaleType="center" systemui:keyCode="3" systemui:keyRepeat="false" @@ -253,7 +253,7 @@ <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back" android:layout_height="@dimen/navigation_key_width" android:layout_width="match_parent" - android:src="@drawable/ic_sysbar_back_land" + android:src="@drawable/ic_sysbar_back" android:scaleType="center" systemui:keyCode="4" android:layout_weight="0" diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index d1f057901e3c..9c96cdc7378f 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Program Info"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Jou onlangse skerms verskyn hier"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Maak onlangse programme toe"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 skerm in Oorsig"</item> - <item quantity="other" msgid="5523506463832158203">"%d skerms in Oorsig"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d skerms in Oorsig</item> + <item quantity="one">1 skerm in Oorsig</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Geen kennisgewings"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Voortdurend"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Kennisgewings"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Laat USB-ontfouting toe?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Die rekenaar se RSA-sleutel-vingerafdruk is:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Laat altyd toe van hierdie rekenaar af"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-ontfouting word nie toegelaat nie"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Die gebruiker wat tans by hierdie toestel aangemeld is, kan nie USB-ontfouting aanskakel nie. Skakel na die primêre gebruiker “<xliff:g id="NAME">%s</xliff:g>” oor om hierdie kenmerk te gebruik."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoem om skerm te vul"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Strek om skerm te vul"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Stoor tans skermkiekie..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Deursoek"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Foon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Stembystand"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Ontsluit"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Ontsluit-knoppie, wag tans vir vingerafdruk"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Ontsluit sonder om jou vingerafdruk te gebruik"</string> <string name="unlock_label" msgid="8779712358041029439">"ontsluit"</string> <string name="phone_label" msgid="2320074140205331708">"maak foon oop"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"maak stembystand oop"</string> <string name="camera_label" msgid="7261107956054836961">"maak kamera oop"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Kies nuwe taakuitleg"</string> <string name="cancel" msgid="6442560571259935130">"Kanselleer"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data, twee stawe."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data, drie stawe."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datasein vol."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi af."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi is ontkoppel."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi een staaf."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi twee stawe."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi drie stawe."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi-sein vol."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Gekoppel aan <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Gekoppel aan <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Geen WiMAX nie."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX twee strepies."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX drie strepies."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-sein vol."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet is ontkoppel."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet gekoppel."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Geen sein nie."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nie gekoppel nie."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Geen stawe."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Geen SIM nie."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-verbinding."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Vliegtuigmodus."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Geen SIM-kaart nie."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Diensverskaffernetwerk verander tans."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Battery <xliff:g id="NUMBER">%d</xliff:g> persent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Stelselinstellings"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> verwerp."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Alle onlangse programme is toegemaak."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Begin tans <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Kennisgewing is toegemaak."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Kennisgewingskerm."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Vinnige instellings."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Sluitskerm."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Instellings"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Oorsig."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Maak toe"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Bevestig"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Gebruiker <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi afgeskakel."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Vliegtuigmodus afgeskakel."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Vliegtuigmodus aangeskakel."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Moenie steur nie aan, net prioriteit."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Moenie steur nie; volkome stilte."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Moenie steur nie aan, geen onderbrekings nie."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\'Moenie steur nie\' is aan, net wekkers."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Moenie steur nie af."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Moenie steur nie is afgeskakel."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Moenie steur nie"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Net prioriteit"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Net wekkers"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Volkome stilte"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Geen onderbrekings nie"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> toestelle)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth af"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nie gekoppel nie"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk nie"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi af"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Geen Wi-Fi-netwerke beskikbaar nie"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Geen gestoorde netwerke beskikbaar nie"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Saai uit"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Saai tans uit"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Onbenoemde toestel"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Soek"</string> <string name="description_direction_up" msgid="7169032478259485180">"Gly op vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Gly links vir <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Jy sal nie deur klanke en vibrasies gesteur word nie, afgesien van wekkers, onthounotas, gebeurtenisse en bellers wat jy spesifiseer."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Geen onderbrekings nie. Nie eens wekkers nie."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Jy sal nie deur klanke en vibrasies gesteur word nie, afgesien van wekkers, onthounotas, gebeurtenisse en bellers wat jy spesifiseer."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Pasmaak"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Dit blokkeer ALLE klanke en vibrasies, insluitend van wekkers, musiek, video\'s en speletjies af. Jy sal steeds foonoproepe kan maak."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Dit blokkeer ALLE klanke en vibrasies, insluitend van wekkers, musiek, video\'s en speletjies af."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Geen onderbrekings nie"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Net prioriteitonderbrekings"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Net wekkers"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Jou volgende wekker is om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Jou volgende wekker is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Jy sal nie jou wekker om <xliff:g id="ALARM_TIME">%s</xliff:g> hoor nie"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Minder dringende kennisgewings hieronder"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Raak weer om oop te maak"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Sleep op om te ontsluit"</string> - <string name="phone_hint" msgid="4872890986869209950">"Swiep vanaf ikoon vir foon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Swiep vanaf ikoon vir stembystand"</string> - <string name="camera_hint" msgid="7939688436797157483">"Swiep vanaf ikoon vir kamera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Totale stilte. Dit sal ook die skermlesers stilmaak."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Volkome stilte"</string> + <string name="phone_hint" msgid="3101468054914424646">"Sleep regs vir foon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Sleep links vir kamera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Geen onderbrekings"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Net prioriteit"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Net wekkers"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Volkome\nstilte"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Alles"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Geen\nonderbrekings nie"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Net\nprioriteit"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Net\nwekkers"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laai tans (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> tot vol)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Wissel gebruiker"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Wissel gebruiker, huidige gebruiker <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Huidige gebruiker <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Wys profiel"</string> <string name="user_add_user" msgid="5110251524486079492">"Voeg gebruiker by"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nuwe gebruiker"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Begin van voor af"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, gaan voort"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gasgebruiker"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Verwyder gasgebruiker om programme en data uit te vee"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Verwyder gas om programme en data uit te vee"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"VERWYDER GAS"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Voeg nuwe gebruiker by?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Wanneer jy \'n nuwe gebruiker byvoeg, moet daardie persoon hul spasie opstel.\n\nEnige gebruiker kan programme vir al die ander gebruikers opdateer."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Deaktiveer VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Ontkoppel VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Jou toestel word bestuur deur <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJou administrateur kan instellings, korporatiewe toegang, programme, data wat met jou toestel geassosieer word, en jou toestel se ligginginligting monitor en bestuur. Kontak jou administrateur vir meer inligting."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Jy het \'n program toestemming gegee om \'n VPN-verbinding op te stel.\n\nHierdie program kan jou toestel- en netwerkaktiwiteit monitor, insluitend e-posse, programme en webwerwe."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Jou werkprofiel word bestuur deur <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJou administrateur kan jou netwerkaktiwiteit, insluitend e-posse, programme en veilige webwerwe, monitor.\n\nKontak jou administrateur vir meer inligting."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Jou toestel word bestuur deur:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nJou werkprofiel word bestuur deur:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nJou administrateur kan jou toestel en netwerkaktiwiteit, insluitend e-posse, programme en veilige webwerwe, monitor.\n\nKontak jou administrateur vir meer inligting."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Jy het \'n program toestemming gegee om \'n VPN-verbinding op te stel.\n\nHierdie program kan jou toestel en netwerkaktiwiteit, insluitend e-posse, programme en veilige webwerwe, monitor."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Jou toestel word bestuur deur <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJou administrateur kan instellings, korporatiewe toegang, programme, data wat met jou toestel geassosieer word, en jou toestel se ligginginligting monitor en bestuur.\n\nJy is aan \'n VPN gekoppel wat jou netwerkaktiwiteit, insluitend e-posse, programme en webwerwe, kan monitor.\n\nKontak jou administrateur vir meer inligting."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Jou werkprofiel word deur <xliff:g id="ORGANIZATION">%1$s</xliff:g> bestuur.\n\nJou administrateur is in staat om jou netwerkaktiwiteit, insluitend e-posse, programme en webwerwe, te monitor.\n\nKontak jou administrateur vir meer inligting.\n\nJy is ook aan \'n VPN gekoppel wat jou netwerkaktiwiteit kan monitor."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Jy is gekoppel aan <xliff:g id="APPLICATION">%1$s</xliff:g>, wat jou netwerkaktiwiteit, insluitend e-posse, programme en webwerwe, kan monitor."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Jy is gekoppel aan <xliff:g id="APPLICATION">%1$s</xliff:g>, wat jou persoonlike netwerkaktiwiteit, insluitend e-posse, programme en webwerwe, kan monitor."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Jou werkprofiel word deur <xliff:g id="ORGANIZATION">%1$s</xliff:g> bestuur. Dit is gekoppel aan <xliff:g id="APPLICATION">%2$s</xliff:g>, wat jou werknetwerkaktiwiteit, insluitend e-posse, programme en webwerwe, kan monitor.\n\nKontak jou administrateur vir meer inligting."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Jou werkprofiel word deur <xliff:g id="ORGANIZATION">%1$s</xliff:g> bestuur. Dit is gekoppel aan <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, wat jou werknetwerkaktiwiteit, insluitend e-posse, programme en webwerwe, kan monitor.\n\nJy is ook gekoppel aan <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, wat jou persoonlike netwerkaktiwiteit kan monitor."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Jou toestel word bestuur deur <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nJou administrateur kan instelings, korporatiewe toegang, programme, data wat met jou toestel geassosieer word en jou toestel se ligginginligting monitor en bestuur.\n\nJy is gekoppel aan <xliff:g id="APPLICATION">%2$s</xliff:g>, wat jou netwerkaktiwiteit, insluitend e-posse, programme en webwerwe, kan monitor.\n\nVir meer inligting, kontak jou administrateur."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Jou werkprofiel word bestuur deur <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJou administrateur kan jou netwerkaktiwiteit, insluitend e-posse, programme en veilige webwerwe, monitor.\n\nKontak jou administrateur vir meer inligting.\n\nJy is ook aan \'n VPN gekoppel wat jou netwerkaktiwiteit kan monitor."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Jou toestel word bestuur deur <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nJou werkprofiel word bestuur deur:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nJou administrateur kan jou netwerkaktiwiteit, insluitend e-posse, programme en veilige webwerwe, monitor.\n\nKontak jou administrateur vir meer inligting.\n\nJy is ook aan \'n VPN gekoppel wat jou persoonlike netwerkaktiwiteit kan monitor"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Toestel sal gesluit bly totdat jy dit handmatig ontsluit"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Kry kennisgewings vinniger"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Sien hulle voordat jy ontsluit"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Sien alles"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Versteek alles"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Beëindig nou"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Vou uit"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Vou in"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skerm is vasgespeld"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Dit hou dit in sig totdat jy dit ontspeld. Raak en hou Terug en Oorsig op dieselfde tyd om te ontspeld."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Dit hou dit in sig totdat jy ontspeld. Raak en hou Oorsig om te ontspeld."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Weier"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is die volumedialoog"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Raak om die oorspronklike terug te stel."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Jy gebruik tans jou werkprofiel"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Stelsel-UI-ontvanger"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Wys persentasie van ingebedde battery"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Wys batteryvlakpersentasie binne die statusbalkikoon wanneer dit nie laai nie"</string> - <string name="quick_settings" msgid="10042998191725428">"Kitsinstellings"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusbalk"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demonstrasiemodus"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Aktiveer demonstrasiemodus"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Wys demonstrasiemodus"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Wekker"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Werkprofiel"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Vliegtuigmodus"</string> - <string name="add_tile" msgid="2995389510240786221">"Voeg teël by"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Uitsaaiteël"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Jy sal nie jou volgende wekker <xliff:g id="WHEN">%1$s</xliff:g> hoor nie tensy jy dit voor die tyd afskakel"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Jy sal nie jou volgende wekker <xliff:g id="WHEN">%1$s</xliff:g> hoor nie"</string> - <string name="alarm_template" msgid="3980063409350522735">"om <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"op <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Kitsinstellings, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Warmkol"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Werkprofiel"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Pret vir party mense, maar nie vir almal nie"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Stelsel-UI-ontvanger gee jou ekstra maniere om die Android-gebruikerkoppelvlak in te stel en te pasmaak. Hierdie eksperimentele kenmerke kan in toekomstige uitreikings verander, breek of verdwyn. Gaan versigtig voort."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Hierdie eksperimentele kenmerke kan in toekomstige weergawes verander, breek of verdwyn. Gaan versigtig voort."</string> - <string name="got_it" msgid="2239653834387972602">"Het dit"</string> - <string name="tuner_toast" msgid="603429811084428439">"Geluk! Stelsel-UI-ontvanger is by Instellings gevoeg"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Verwyder uit Instellings"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Verwyder Stelsel-UI-ontvanger uit Instellings en staak die gebruik van al sy kenmerke?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Jy is in die Work-profiel"</string> </resources> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 0858f0b90a6c..198747ce37cb 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"የትግበራ መረጃ"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"የቅርብ ጊዜ ማያ ገጾችዎ እዚህ ይታያሉ"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"የቅርብ ጊዜ መተግበሪያዎችን ሰርዝ"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ማያ ገጽ በአጠቃላይ እይታ ውስጥ"</item> - <item quantity="other" msgid="5523506463832158203">"%d ማያ ገጾች በአጠቃላይ እይታ ውስጥ"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d ማያ ገጾች በአጠቃላይ እይታ ውስጥ</item> + <item quantity="other">%d ማያ ገጾች በአጠቃላይ እይታ ውስጥ</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ምንም ማሳወቂያዎች የሉም"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"በመካሄድ ላይ ያለ"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"ማሳወቂያዎች"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"የUSB ማረሚያ ይፈቀድ?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"የኮምፒውተሩ RSA ቁልፍ ጣት አሻራ ይሄ ነው፦\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ሁልጊዜ ከዚህ ኮምፒውተር ፍቀድ"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"የዩኤስቢ እርማት አይፈቀድም"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"አሁን ወደዚህ መሣሪያ የገባው ተጠቃሚ የዩኤስቢ እርማትን ማብራት አይችልም። ይህን ባህሪ ለመጠቀም ወደ ዋና ተጠቃሚ «<xliff:g id="NAME">%s</xliff:g>» ይቀይሩ።"</string> <string name="compat_mode_on" msgid="6623839244840638213">"ማያ እንዲሞላ አጉላ"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ማያ ለመሙለት ሳብ"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ቅጽበታዊ ገጽ እይታ በማስቀመጥ ላይ..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ፈልግ"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ካሜራ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ስልክ"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"የድምጽ እርዳታ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ክፈት"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"የማስከፈቻ አዝራር፣ የጣት አሻራን በመጠበቅ ላይ"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"የጣት አሻራዎን ሳይጠቀሙ ይክፈቱ"</string> <string name="unlock_label" msgid="8779712358041029439">"ክፈት"</string> <string name="phone_label" msgid="2320074140205331708">"ስልክ ክፈት"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"የድምጽ ረዳትን ክፈት"</string> <string name="camera_label" msgid="7261107956054836961">"ካሜራ ክፈት"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"የአዲስ ተግባር አቀማመጥን ይምረጡ"</string> <string name="cancel" msgid="6442560571259935130">"ይቅር"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"የውሂብ ሁለት አሞሌዎች።"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"የውሂብ ሦስት አሞሌዎች።"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"የውሂብ አመልካች ሙሉ ነው።"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi ጠፍቷል።"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"የWifi ግንኙነት ተቋርጧል።"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"አንድ የWiFi አሞሌ።"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"ሁለት የWiFi አሞሌዎች።"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"ሦስት የWiFi አሞሌዎች።"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"የWiFi ምልክት ሙሉ ነው።"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"ከ<xliff:g id="WIFI">%s</xliff:g> ጋር ተገናኝቷል።"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"ከ<xliff:g id="BLUETOOTH">%s</xliff:g> ጋር ተገናኝቷል።"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ምንም WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX ሁለት አሞሌዎች።"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX ሦስት አሞሌዎች።"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX አመልካች ሙሉ ነው።"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ኤተርኔት ተነቅሏል።"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ኤተርኔት ተገናኝቷል።"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"ምንም ምልክት የለም።"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"አልተገናኘም።"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"ዜሮ አሞሌዎች።"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"ምንም SIM የለም።"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ብሉቱዝ ማያያዝ።"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"የአውሮፕላን ሁነታ።"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"ምንም SIM ካርድ የለም።"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"የአገልግሎት አቅራቢ አውታረ መረብን በመቀየር ላይ።"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"የባትሪ <xliff:g id="NUMBER">%d</xliff:g> መቶኛ።"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"የስርዓት ቅንብሮች"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ተሰናብቷል::"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"ሁሉም የቅርብ ጊዜ ማመልከቻዎች ተሰናብተዋል።"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> በመጀመር ላይ።"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ማሳወቂያ ተወግዷል።"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"የማሳወቂያ ጥላ።"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ፈጣን ቅንብሮች።"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ማያ ገጽ ቆልፍ።"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ቅንብሮች"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"አጠቃላይ እይታ።"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"ዝጋ"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"አረጋግጥ"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ተጠቃሚ <xliff:g id="USER">%s</xliff:g>።"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>።"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi ጠፍቷል።"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"የአውሮፕላን ሁነታ ጠፍቷል።"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"የአውሮፕላን ሁነታ በርቷል።"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"አትረብሽ በርቷል፣ ቅድሚያ የሚሰጠው ብቻ።"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"አትረብሽ በርቷል፣ ሙሉ ለሙሉ ጸጥታ።"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"አትረብሽ በርቷል፣ ምንም ማቋረጦች የሉም።"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"አትረብሽ በርቷል፣ ማንቂያዎች ብቻ።"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"አትረብሽ ጠፍቷል።"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"አትረብሽ ጠፍቷል።"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"አትረብሽ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ቅድሚያ የሚሰጠው ብቻ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ማንቂያዎች ብቻ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"ሙሉ ለሙሉ ጸጥታ"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ምንም ማቋረጦች የሉም"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ብሉቱዝ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ብሉቱዝ (<xliff:g id="NUMBER">%d</xliff:g> መሣሪያዎች)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ብሉቱዝ ጠፍቷል"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"አልተገናኘም"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ምንም አውታረ መረብ የለም"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ጠፍቷል"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ምንም የWi-Fi አውታረ መረቦች የሉም"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"ምንም የተቀመጡ አውታረ መረቦች አይገኙም"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"ውሰድ"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"በመውሰድ ላይ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ያልተሰየመ መሳሪያ"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ፍለጋ"</string> <string name="description_direction_up" msgid="7169032478259485180">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ላይ አንሸራትት።"</string> <string name="description_direction_left" msgid="7207478719805562165">"ለ<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ወደ ግራ አንሸራትት።"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"እርስዎ ከገለጿቸው ማንቂያዎች፣ አስታዋሾች፣ ክስተቶች እና ደዋዮች በስተቀር በድምጾች እና ንዝረቶች አይረበሹም።"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ምንም ማቋረጦች የሉም። ማንቂያዎችም እንኳ።"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"እርስዎ ከገለጿቸው ማንቂያዎች፣ አስታዋሾች፣ ክስተቶች እና ደዋዮች በስተቀር በድምጾች እና ንዝረቶች አይረበሹም።"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"አብጅ"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ይሄ ማንቂያዎችን፣ ሙዚቃን፣ ቪዲዮዎችን እና ጨዋታዎችንም ጨምሮ ሁሉንም ድምጾች እና ንዝረቶች ያጠፋል። አሁንም የድምጽ ጥሪዎችን ማድረግ ይችላሉ።"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"ይሄ ማንቂያዎችን፣ ሙዚቃን፣ ቪዲዮዎችን እና ጨዋታዎችንም ጨምሮ ሁሉንም ድምጾች እና ንዝረቶች ያጠፋል።"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"ምንም ማቋረጦች የሉም"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"ቅድሚያ የሚሰጣቸው ማቋረጦች ብቻ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ማንቂያዎች ብቻ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"ቀጣዩ ማንቂያ ደውልዎ በ<xliff:g id="ALARM_TIME">%s</xliff:g> ነው"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ቀጣዩ ማንቂያ ደውልዎ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> ነው"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"በ<xliff:g id="ALARM_TIME">%s</xliff:g> ያለውን ማንቂያ ደውልዎን አይሰሙትም"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"በጣም አስቸካይ ያልሆኑ ማሳወቂያዎች ከታች"</string> <string name="notification_tap_again" msgid="8524949573675922138">"ለመክፈት ዳግም ይንኩ"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"ለማስከፈት ወደ ላይ ያንሸራትቱ"</string> - <string name="phone_hint" msgid="4872890986869209950">"ለስልክ ከአዶ ላይ ጠረግ ያድርጉ"</string> - <string name="voice_hint" msgid="8939888732119726665">"ለድምጽ ረዳት ከአዶ ጠረግ ያድርጉ"</string> - <string name="camera_hint" msgid="7939688436797157483">"ለካሜራ ከአዶ ላይ ጠረግ ያድርጉ"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"አጠቃላይ ጸጥታ። ይህ በተጨማሪ ማያ ገጽ አንባቢን ፀጥ ያደርጋል።"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"ሙሉ ለሙሉ ጸጥታ"</string> + <string name="phone_hint" msgid="3101468054914424646">"ለስልክ ወደቀኝ ያንሸራትቱ"</string> + <string name="camera_hint" msgid="5241441720959174226">"ለካሜራ ወደግራ ያንሸራትቱ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ምንም ማቋረጦች የሉም"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ቅድሚያ የሚሰጠው ብቻ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"ማንቂያዎች ብቻ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"ሙሉ ለሙሉ\nጸጥታ"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"ሁሉም"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ምንም\nመቆራረጦች የሉም"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ቅድሚያ ተሰጪ\nብቻ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ማንቂያዎች\nብቻ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ሃይል በመሙላት ላይ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> እስከሚሞላ ድረስ)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ተጠቃሚ ቀይር"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ተጠቃሚ ይለውጡ፣ የአሁን ተጠቃሚ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"የአሁን ተጠቃሚ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"መገለጫ አሳይ"</string> <string name="user_add_user" msgid="5110251524486079492">"ተጠቃሚ አክል"</string> <string name="user_new_user_name" msgid="426540612051178753">"አዲስ ተጠቃሚ"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"እንደገና ጀምር"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"አዎ፣ ቀጥል"</string> <string name="guest_notification_title" msgid="1585278533840603063">"የእንግዳ ተጠቃሚ"</string> - <string name="guest_notification_text" msgid="335747957734796689">"መተግበሪያዎችና ውሂብ ለመሰረዝ እንግዳ ተጣቀሚን ያስወግዱ"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"መተግበሪያዎችን እና ውሂብን ለመሰረዝ እንግዳን ያስወግዱ"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"እንግዳን አስወግድ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"አዲስ ተጠቃሚ ይታከል?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"እርስዎ አንድ አዲስ ተጠቃሚ ሲያክሉ ያ ሰው የራሱ ቦታ ማዘጋጀት አለበት።\n\nማንኛውም ተጠቃሚ መተግበሪያዎችን ለሌሎች ተጠቃሚዎች ሁሉ ሊያዘምን ይችላል።"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN አሰናክል"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"የVPN ግንኙነት አቋርጥ"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"የእርስዎ መሣሪያ የሚቀናበረው በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው።\n\nየእርስዎ አስተዳዳሪ ቅንብሮችን፣ የኮርፖሬት መዳረሻ፣ መተግበሪያዎችን፣ ከመሣሪያዎ ጋር የተጎዳኘ ውሂብን፣ እና የመሣሪያዎ የአካባቢ መረጃን መከታተል እና ማቀናበር ይችላሉ። ተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"አንድ መተግበሪያ የVPN ግንኙነት እንዲያዋቅር ፍቃድ ሰጥተውታል።\n\nይህ መተግበሪያ ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችንም ጨምሮ የመሣሪያዎን እና የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላል።"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"የስራ መገለጫዎ በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው የሚቀናበረው።\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህነንታቸው የተጠበቁ ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብ እንቅስቃሴዎን የመከታተል ችሎታ አለው።\n\nተጨማሪ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"የእርስዎ መሣሪያ የሚቀናበረው በ፦\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>።\nየስራ መገለጫዎ የሚቀናበረው በ፦\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>።\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችንም ጨምሮ የመሣሪያ እና የአውታረ መረብ እንቅስቃሴውን መከታተል ይችላሉ።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"አንድ መተግበሪያ የVPN ግንኙነት እንዲያዋቅር ፈቅደውለታል።\n\nይህ መተግበሪያ ኢሚይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችንም ጨምሮ የመሣሪያዎን እና የአውታረ መረብ እንቅስቃሴዎን መከታተል ይችላሉ።"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"የእርስዎ መሣሪያ የሚቀናበረው በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው።\n\nየእርስዎ አስተዳዳሪ ቅንብሮችን፣ የኮርፖሬት መዳረሻ፣ መተግበሪያዎችን፣ ከመሣሪያዎ ጋር የተጎዳኘ ውሂብን እና የመሣሪያዎን የአካባቢ መረጃ መከታተል እና ማቀናበር ይችላል።\n\nከአንድ VPN ጋር ተገናኝተዋል፣ ይሄ ደግሞ ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብዎን እንቅስቃሴ መከታተል ይችላል።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"የስራ መገለጫዎ በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው የሚተዳደረው።\n\nየእርስዎ አስተዳዳሪ ቅንብሮችን፣ የኮርፖሬት መዳረሻን፣ መተግበሪያዎችን፣ ከመሣሪያዎ ጋር የተጎዳኘ ውሂብን እና የመሣሪያዎ የአካባቢ መረጃን መከታተል እና ማቀናበር ይችላል።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።\n\nእንዲሁም የአውታረ መረብ ግንኙነትዎን መከታተል ከሚችል አንድ VPN ጋር ተገናኝተዋል።"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"እርስዎ ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችለው <xliff:g id="APPLICATION">%1$s</xliff:g> ጋር ተገናኝተዋል።"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"እርስዎ ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችንም ጨምሮ የግል የአውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችለው <xliff:g id="APPLICATION">%1$s</xliff:g> ጋር ተገናኝተዋል።"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"የስራ መገለጫዎ በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው እየተዳደረ ያለው። ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችለው <xliff:g id="APPLICATION">%2$s</xliff:g> ጋር ተገናኝተዋል።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"የስራ መገለጫዎ በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው እየተዳደረ ያለው። ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችለው <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ጋር ተገናኝተዋል።\n\nእንዲሁም የግል አውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችለው <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ጋርም ተገናኝተዋል።"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"የእርስዎ መሣሪያ በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው የሚተዳደረው።\n\nየእርስዎ አስተዳዳሪ ቅንብሮችን፣ የኮርፖሬት መዳረሻን፣ መተግበሪያዎችን፣ ከመሣሪያዎ ጋር የተጎዳኘ ውሂብን እና የመሣሪያዎ የአካባቢ መረጃን መከታተል እና ማቀናበር ይችላል።\n\nእርስዎ ኢሜይሎችን፣ መተግበሪያዎችን እና ድር ጣቢያዎችን ጨምሮ የአውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችለው <xliff:g id="APPLICATION">%2$s</xliff:g> ጋር ተገናኝተዋል።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"የስራ መገለጫዎ በ<xliff:g id="ORGANIZATION">%1$s</xliff:g> ነው የሚቀናበረው።\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብ እንቅስቃሴዎን የመከታተል ችሎታ አለው።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።\n\nእንዲሁም የአውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችል VPN ጋርም ተገናኝተዋል።"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"የእርስዎ መሣሪያ በ<xliff:g id="ORGANIZATION_0">%1$s</xliff:g> ነው የሚቀናበረው።\nየስራ መገለጫዎ የሚቀናበረው በ፦\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>።\n\nየእርስዎ አስተዳዳሪ ኢሜይሎችን፣ መተግበሪያዎችን እና ደህንነታቸው የተጠበቁ ድር ጣቢያዎችንም ጨምሮ የአውታረ መረብ እንቅስቃሴዎን የመከታተል ብቃት አለው።\n\nተጨማሪ መረጃ ለማግኘት አስተዳዳሪዎን ያነጋግሩ።\n\nእንዲሁም የግል አውታረ መረብ እንቅስቃሴዎን መከታተል ከሚችል VPN ጋርም ተገናኝተዋል"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"እራስዎ እስኪከፍቱት ድረስ መሣሪያ እንደተቆለፈ ይቆያል"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"ማሳወቂያዎችን ፈጥነው ያግኙ"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ከመክፈትዎ በፊት ይመልከቷቸው"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"ሁሉንም ይመልከቱ"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"ሁሉንም ደብቅ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>። <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"አሁን ጨርስ"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"አስፋ"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ሰብስብ"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ማያ ገጽ ተሰክቷል"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ይህ እስከሚነቅሉት ድረስ ድረስ በዕይታ ውስጥ እንዲቆይ ያደርገዋል። ለመንቀል በተመሳሳይ ጊዜ ተመለስን እና አጠቃላይ ዕይታን አንድ ላይ ነክተው ይያዙ።"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"ይህ እስከሚነቅሉት ድረስ በዕይታ ውስጥ ያቆየዋል። እንዲነቀል ለማድረግ አጠቃላይ ዕይታን ነካ አድርገው ይያዙት።"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ከልክል"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> የድምጽ መጠን መገናኛው ነው"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"የመጀመሪያውን ወደነበረበት ለመመለስ ይንኩ።"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"የስራ መገለጫዎን እየተጠቀሙ ነው"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"የስርዓት በይነገጽ መቃኛ"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"የተቀላቀለ የባትሪ አጠቃቀም መቶኛ አሳይ"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ኃይል በማይሞላበት ጊዜ በሁነታ አሞሌ አዶ ውስጥ የባትሪ ደረጃ መቶኛን አሳይ"</string> - <string name="quick_settings" msgid="10042998191725428">"ፈጣን ቅንብሮች"</string> - <string name="status_bar" msgid="4877645476959324760">"የሁኔታ አሞሌ"</string> - <string name="demo_mode" msgid="2389163018533514619">"የቅንጭብ ማሳያ ሁነታ"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"የማሳያ ሁነታውን ያንቁ"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ማሳያ ሁነታን አሳይ"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ኤተርኔት"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"ማንቂያ"</string> - <string name="status_bar_work" msgid="6022553324802866373">"የስራ መገለጫ"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"የአውሮፕላን ሁነታ"</string> - <string name="add_tile" msgid="2995389510240786221">"ሰቅ ያክሉ"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ሰቅ አሰራጭ"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"ከዚያ በፊት ይህንን ካላጠፉት በቀር የእርስዎን ቀጣይ ማንቂያ <xliff:g id="WHEN">%1$s</xliff:g> አይሰሙም"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"የእርስዎን ቀጣይ ማንቂያ <xliff:g id="WHEN">%1$s</xliff:g> አይሰሙም"</string> - <string name="alarm_template" msgid="3980063409350522735">"በ<xliff:g id="WHEN">%1$s</xliff:g> ላይ"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"በ<xliff:g id="WHEN">%1$s</xliff:g> ላይ"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"ፈጣን ቅንብሮች፣ <xliff:g id="TITLE">%s</xliff:g>።"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"መገናኛ ነጥብ"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"የስራ መገለጫ"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"ለአንዳንዶች አስደሳች ቢሆንም ለሁሉም አይደለም"</string> - <string name="tuner_warning" msgid="8730648121973575701">"የስርዓት በይነገጽ መቃኛ የAndroid ተጠቃሚ በይነገጹን የሚነካኩበት እና የሚያበጁበት ተጨማሪ መንገዶች ይሰጠዎታል። እነዚህ የሙከራ ባህሪዎች ወደፊት በሚኖሩ ልቀቶች ላይ ሊለወጡ፣ ሊሰበሩ ወይም ሊጠፉ ይችላሉ። ከጥንቃቄ ጋር ወደፊት ይቀጥሉ።"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"እነዚህ የሙከራ ባህሪዎች ወደፊት በሚኖሩ ልቀቶች ላይ ሊለወጡ፣ ሊሰበሩ ወይም ሊጠፉ ይችላሉ። ከጥንቃቄ ጋር ወደፊት ይቀጥሉ።"</string> - <string name="got_it" msgid="2239653834387972602">"ገባኝ"</string> - <string name="tuner_toast" msgid="603429811084428439">"እንኳን ደስ ያለዎት! የስርዓት በይነገጽ መቃኛ ወደ ቅንብሮች ታክሏል"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"ከቅንብሮች አስወግድ"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ከቅንብሮች ላይ የስርዓት በይነገጽ መቃኛ ተወግዶ ሁሉም ባህሪዎቹን መጠቀም ይቁም?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"እርስዎ በስራ መገለጫ ውስጥ ነዎት"</string> </resources> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index a2a51ebd460e..dceeb21f1029 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -25,10 +25,14 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"معلومات التطبيق"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"تظهر شاشاتك المعروضة مؤخرًا هنا"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"إزالة التطبيقات الحديثة"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"شاشة واحدة في النظرة عامة"</item> - <item quantity="other" msgid="5523506463832158203">"%d من الشاشات في النظرة عامة"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="zero"> لا توجد أية شاشات (%d) في النظرة العامة</item> + <item quantity="two">شاشتان (%d) في النظرة العامة</item> + <item quantity="few">%d شاشات في النظرة العامة</item> + <item quantity="many">%d شاشة في النظرة العامة</item> + <item quantity="other">%d من الشاشات في النظرة العامة</item> + <item quantity="one">شاشة واحدة في النظرة العامة</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ليس هناك أي اشعارات"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"مستمر"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"الإشعارات"</string> @@ -63,8 +67,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"هل تريد السماح بتصحيح أخطاء USB؟"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"الملف المرجعي الرئيسي لـ RSA في هذا الكمبيوتر هو:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"السماح دائمًا من هذا الكمبيوتر"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"لا يُسمح بتصحيح أخطاء USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"لا يمكن للمستخدم الذي يسجّل دخوله حاليًا إلى هذا الجهاز تشغيل تصحيح أخطاء USB. لاستخدام هذه الميزة، يمكنك التبديل إلى المستخدم الأساسي \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"تكبير/تصغير لملء الشاشة"</string> <string name="compat_mode_off" msgid="4434467572461327898">"توسيع بملء الشاشة"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"جارٍ حفظ لقطة الشاشة..."</string> @@ -85,13 +87,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"بحث"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"الكاميرا"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"الهاتف"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"المساعد الصوتي"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"إلغاء القفل"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"زر إلغاء القفل، في انتظار بصمة إصبع"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"إلغاء القفل دون استخدام بصمة إصبعك"</string> <string name="unlock_label" msgid="8779712358041029439">"إلغاء القفل"</string> <string name="phone_label" msgid="2320074140205331708">"فتح الهاتف"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"فتح المساعد الصوتي"</string> <string name="camera_label" msgid="7261107956054836961">"فتح الكاميرا"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"تحديد تنسيق جديد للمهمة"</string> <string name="cancel" msgid="6442560571259935130">"إلغاء"</string> @@ -114,6 +112,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"إشارة البيانات تتكون من شريطين."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"إشارة البيانات تتكون من ثلاثة أشرطة."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"إشارة البيانات كاملة."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"تم إيقاف Wi-Fi."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"تم قطع اتصال Wi-Fi."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"إشارة Wi-Fi تتكون من شريط واحد."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"إشارة Wi-Fi تتكون من شريطين."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"إشارة Wi-Fi تتكون من ثلاثة أشرطة."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"إشارة Wi-Fi كاملة."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"متصل بـ <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"متصل بـ <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ليس هناك WiMAX."</string> @@ -121,8 +125,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"شريطا WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"أشرطة WiMAX الثلاثة."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"إشارة WiMAX كاملة."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"تم قطع اتصال Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"تم إنشاء اتصال Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"ليست هناك إشارة."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"غير متصل."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"ليست هناك أشرطة."</string> @@ -148,7 +150,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"ليست هناك شريحة SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ربط البلوتوث."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"وضع الطائرة."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"ليس هناك شريحة SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"جارٍ تغيير شبكة مشغِّل شبكة الجوّال."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"مستوى البطارية <xliff:g id="NUMBER">%d</xliff:g> في المائة."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"إعدادات النظام."</string> @@ -165,14 +166,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"تمت إزالة <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"تم تجاهل كل التطبيقات المستخدمة مؤخرًا."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"جارٍ بدء <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"تم تجاهل الإشعار."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"مركز الإشعارات."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"الإعدادات السريعة."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"شاشة التأمين."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"الإعدادات"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"النظرة عامة."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"إغلاق"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"تأكيد"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"المستخدم <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"تم إيقاف Wifi."</string> @@ -184,7 +184,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"تم إيقاف وضع الطائرة."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"تم تشغيل وضع الطائرة."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"تم تشغيل الرجاء عدم الإزعاج، الأولوية فقط."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"تم تشغيل الرجاء عدم الإزعاج، كتم الصوت تمامًا."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"تم تشغيل \"الرجاء عدم الإزعاج\"، ممنوع الإزعاج."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"تم تشغيل الرجاء عدم الإزعاج، التنبيهات فقط."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"تم تعطيل \"الرجاء عدم الإزعاج\"."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"تم تعطيل \"الرجاء عدم الإزعاج\"."</string> @@ -239,7 +239,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"الرجاء عدم الإزعاج"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"الأولوية فقط"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"التنبيهات فقط"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"كتم الصوت تمامًا"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"عدم الإزعاج"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوتوث"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"بلوتوث (<xliff:g id="NUMBER">%d</xliff:g> من الأجهزة)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"إيقاف البلوتوث"</string> @@ -264,7 +264,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"ليست متصلة"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"لا تتوفر شبكة"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"إيقاف Wi-Fi"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"لا تتوفر أية شبكة Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"لا تتوفر أية شبكة محفوظة"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"إرسال"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"جارٍ الإرسال"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"جهاز لا يحمل اسمًا"</string> @@ -306,28 +306,31 @@ <string name="description_target_search" msgid="3091587249776033139">"بحث"</string> <string name="description_direction_up" msgid="7169032478259485180">"تمرير لأعلى لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"تمرير لليسار لـ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"لن يتم إزعاجك بأصوات أو اهتزاز، عدا من التنبيهات والتذكيرات والأحداث والمتصلين الذين تحددهم."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"عدم المقاطعة، ولا بالتنبيهات كذلك."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"لن يتم إزعاجك بأصوات الاهتزاز، عدا من التنبيهات والتذكيرات والأحداث والمتصلين الذين تحددهم."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"تخصيص"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"سيؤدي هذا إلى حظر جميع الأصوات والاهتزازات، بما في ذلك ما يرد من التنبيهات والموسيقى والفيديو والألعاب. إلا أنه سيظل بإمكانك إجراء مكالمات هاتفية."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"سيؤدي هذا إلى حظر جميع الأصوات والاهتزازات، بما في ذلك ما يرد من التنبيهات والموسيقى والفيديو والألعاب."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"بدون مقاطعات"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"المقاطعات ذات الأولوية فقط"</string> + <string name="zen_alarms" msgid="5055668280767657759">"التنبيهات فقط"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"التنبيه المقبل في <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"التنبيه المقبل في <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"لن تسمع المنبهات في <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"الإشعارات الأقل إلحاحًا أدناه"</string> <string name="notification_tap_again" msgid="8524949573675922138">"المس مرة أخرى للفتح"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"مرر سريعًا لأعلى لإلغاء القفل"</string> - <string name="phone_hint" msgid="4872890986869209950">"يمكنك التمرير سريعًا من الرمز لتشغيل الهاتف"</string> - <string name="voice_hint" msgid="8939888732119726665">"يمكنك التمرير سريعًا من الرمز لتشغيل المساعد الصوتي"</string> - <string name="camera_hint" msgid="7939688436797157483">"يمكنك التمرير سريعًا من الرمز لتشغيل الكاميرا"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"صمت تام. سيؤدي هذا أيضًا إلى كتم صوت تطبيقات قراءة الشاشة."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"كتم الصوت تمامًا"</string> + <string name="phone_hint" msgid="3101468054914424646">"مرر سريعًا إلى اليسار لفتح الهاتف"</string> + <string name="camera_hint" msgid="5241441720959174226">"مرر سريعًا إلى اليمين لفتح الكاميرا"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"عدم الإزعاج"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"الأولوية فقط"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"التنبيهات فقط"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"كتم الصوت\nتمامًا"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"الكل"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"عدم\nالإزعاج"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"الأولوية \nفقط"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"التنبيهات\nفقط"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"جارٍ الشحن (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> حتى الامتلاء)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"تبديل المستخدم"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"تبديل المستخدم، المستخدم الحالي <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"المستخدم الحالي <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"عرض الملف الشخصي"</string> <string name="user_add_user" msgid="5110251524486079492">"إضافة مستخدم"</string> <string name="user_new_user_name" msgid="426540612051178753">"مستخدم جديد"</string> @@ -342,7 +345,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"البدء من جديد"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"نعم، متابعة."</string> <string name="guest_notification_title" msgid="1585278533840603063">"مستخدم ضيف"</string> - <string name="guest_notification_text" msgid="335747957734796689">"لحذف التطبيقات والبيانات، عليك إزالة حساب الضيف"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"إزالة الضيف لحذف التطبيقات والبيانات"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"إزالة الضيف"</string> <string name="user_add_user_title" msgid="4553596395824132638">"هل تريد إضافة مستخدم جديد؟"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"عند إضافة مستخدم جديد، يلزمه إعداد مساحته.\n\nعلمًا بأنه يُمكن لأي مستخدم تحديث التطبيقات لجميع المستخدمين الآخرين."</string> @@ -364,15 +367,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"تعطيل الشبكة الظاهرية الخاصة"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"قطع الاتصال بشبكة VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"تتم إدارة جهازك عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nيمكن للمشرف مراقبة وإدارة كل من الإعدادات والدخول إلى الشركة والتطبيقات والبيانات المرتبطة بجهازك ومعلومات الموقع لجهازك. للمزيد من المعلومات، اتصل بالمشرف."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"لقد منحت تطبيقًا الإذن لإعداد اتصال شبكة ظاهرية خاصة (VPN).\n\nيمكن لهذا التطبيق مراقبة أنشطتك على الجهاز والشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"تتم إدارة ملفك الشخصي للعمل عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nيستطيع المشرف مراقبة أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nللمزيد من المعلومات، اتصل بالمشرف."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"تتم إدارة جهازك عن طريق:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nتتم إدارة ملفك الشخصي للعمل عن طريق:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nيمكن للمشرف مراقبة جهازك وأنشطة الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nللمزيد من المعلومات، اتصل بالمشرف."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"لقد منحت تطبيقًا إذنًا لإعداد اتصال شبكة ظاهرية خاصة (VPN).\n\nيمكن لهذا التطبيق مراقبة جهازك وأنشطة الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"تتم إدارة جهازك عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nيمكن للمشرف مراقبة وإدارة كل من الإعدادات والدخول إلى الشركة والتطبيقات والبيانات المرتبطة بجهازك ومعلومات الموقع لجهازك.\n\nأنت متصل بشبكة ظاهرية خاصة (VPN)، يمكنها مراقبة أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب.\n\nللمزيد من المعلومات، اتصل بالمشرف."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"تتم إدارة ملفك الشخصي للعمل عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nبإمكان المشرف مراقبة أنشطتك على الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب.\n\nللمزيد من المعلومات، اتصل بالمشرف.\n\nأنت متصل أيضًا بشبكة ظاهرية خاصة (VPN)، يمكنها مراقبة أنشطتك على الشبكة."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"شبكة ظاهرية خاصة"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"أنت متصل بـ <xliff:g id="APPLICATION">%1$s</xliff:g>، الذي يمكنه مراقبة أنشطتك على الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"أنت متصل بـ <xliff:g id="APPLICATION">%1$s</xliff:g>، الذي يمكنه مراقبة أنشطتك الشخصية على الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"تتم إدارة ملفك الشخصي للعمل عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>. وهذا الملف الشخصي للعمل متصل بـ <xliff:g id="APPLICATION">%2$s</xliff:g>، الذي يمكنه مراقبة أنشطتك على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب.\n\nللمزيد من المعلومات، اتصل بالمشرف."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"تتم إدارة ملفك الشخصي للعمل عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>. وهذا الملف الشخصي للعمل متصل بـ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>، الذي يمكنه مراقبة أنشطتك على شبكة العمل، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب.\n\nأنت متصل أيضًا بـ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>، الذي يمكنه مراقبة أنشطتك الشخصية على الشبكة."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"تتم إدارة جهازك عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nيمكن للمشرف مراقبة وإدارة كل من الإعدادات والوصول إلى الشركة والتطبيقات والبيانات المرتبطة بجهازك ومعلومات الموقع لجهازك.\n\nأنت متصل بـ <xliff:g id="APPLICATION">%2$s</xliff:g>، الذي يمكنه مراقبة أنشطتك على الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب.\n\nللمزيد من المعلومات، اتصل بالمشرف."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"تتم إدارة ملفك الشخصي للعمل عن طريق <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nيستطيع المشرف مراقبة أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nللمزيد من المعلومات، اتصل بالمشرف.\n\nأنت متصل أيضًا بشبكة ظاهرية خاصة (VPN)، يمكنها مراقبة أنشطة الشبكة."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"تتم إدارة جهازك عن طريق <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nتتم إدارة ملفك الشخصي للعمل عن طريق:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nيستطيع المشرف مراقبة أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية والتطبيقات ومواقع الويب الآمنة.\n\nللمزيد من المعلومات، اتصل بالمشرف.\n\nأنت متصل أيضًا بشبكة ظاهرية خاصة (VPN)، يمكنها مراقبة أنشطة شبكتك الشخصية"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"سيظل الجهاز مقفلاً إلى أن يتم إلغاء قفله يدويًا"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"الحصول على الإشعارات بشكل أسرع"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"الاطلاع عليها قبل إلغاء القفل"</string> @@ -381,9 +381,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"عرض الكل"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"إخفاء الكل"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"إنهاء الآن"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"توسيع"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"تصغير"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"تم تثبيت الشاشة"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"يساعد هذا على استمرار العرض حتى يتم إلغاء التثبيت. ويمكنك لمس \"رجوع\" و\"عرض عام\" مع الاستمرار في وقت واحد لإلغاء التثبيت."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"يساعد هذا على استمرار العرض حتى يتم إلغاء التثبيت. ويمكنك لمس \"عرض عام\" مع الاستمرار في وقت واحد لإلغاء التثبيت."</string> @@ -397,33 +394,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"رفض"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> هو مربع حوار مستوى الصوت"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"المس لاستعادة الإعداد الأصلي."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"أنت تستخدم ملفك الشخصي للعمل"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"أداة ضبط واجهة مستخدم النظام"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"عرض نسبة البطارية المدمجة"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"عرض نسبة مستوى البطارية داخل رمز شريط الحالة أثناء عدم الشحن"</string> - <string name="quick_settings" msgid="10042998191725428">"الإعدادات السريعة"</string> - <string name="status_bar" msgid="4877645476959324760">"شريط الحالة"</string> - <string name="demo_mode" msgid="2389163018533514619">"الوضع التجريبي"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"تمكين الوضع التجريبي"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"عرض الوضع التجريبي"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"إيثرنت"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"المنبه"</string> - <string name="status_bar_work" msgid="6022553324802866373">"الملف الشخصي للعمل"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"وضع الطائرة"</string> - <string name="add_tile" msgid="2995389510240786221">"إضافة فئة"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"إرسال فئة"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"لن تسمع المنبه القادم في <xliff:g id="WHEN">%1$s</xliff:g> إلا إذا أوقفت هذا قبل الموعد"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"لن تسمع المنبه القادم في <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"في <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"يوم <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"الإعدادات السريعة، <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"نقطة اتصال"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"الملف الشخصي للعمل"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"متعة للبعض وليس للجميع"</string> - <string name="tuner_warning" msgid="8730648121973575701">"توفر لك أداة ضبط واجهة مستخدم النظام طرقًا إضافية لتعديل واجهة مستخدم Android وتخصيصها. ويمكن أن تطرأ تغييرات على هذه الميزات التجريبية أو يمكن أن تتعطل هذه الميزات أو تختفي في الإصدارات المستقبلية. عليك متابعة الاستخدام مع توخي الحذر."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"يمكن أن تطرأ تغييرات على هذه الميزات التجريبية أو يمكن أن تتعطل هذه الميزات أو تختفي في الإصدارات المستقبلية. عليك متابعة الاستخدام مع توخي الحذر."</string> - <string name="got_it" msgid="2239653834387972602">"حسنًا"</string> - <string name="tuner_toast" msgid="603429811084428439">"تهانينا! تمت إضافة أداة ضبط واجهة مستخدم النظام إلى الإعدادات"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"إزالة من الإعدادات"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"هل تريد إزالة أداة ضبط واجهة مستخدم النظام من الإعدادات وإيقاف استخدام كل ميزاتها؟"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"أنت في الملف الشخصي للعمل"</string> </resources> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 3c3d174842c5..915cc1543bac 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Информация за приложението"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Скорошните ви екрани се показват тук"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Отхвърляне на скорошните приложения"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 екран в панела за общ преглед"</item> - <item quantity="other" msgid="5523506463832158203">"%d екрана в панела за общ преглед"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d екрана в панела за общ преглед</item> + <item quantity="one">1 екран в панела за общ преглед</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Няма известия"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"В момента"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Известия"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Да се разреши ли отстраняването на грешки през USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Отпечатъкът на RSA ключа на компютъра е:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Винаги да се разрешава от този компютър"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Отстраняването на грешки през USB не е разрешено"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Потребителят, който понастоящем е влязъл в това устройство, не може да включи функцията за отстраняване на грешки през USB. За да я използвате, превключете към основния потребител „<xliff:g id="NAME">%s</xliff:g>“."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Мащаб – запълва екрана"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Разпъване – запълва екрана"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Екранната снимка се запазва..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Търсене"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Гласова помощ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Отключване"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Бутон за отключване – изчаква се отпечатък"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Отключете, без да използвате отпечатъка си"</string> <string name="unlock_label" msgid="8779712358041029439">"отключване"</string> <string name="phone_label" msgid="2320074140205331708">"отваряне на телефона"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"отваряне на гласовата помощ"</string> <string name="camera_label" msgid="7261107956054836961">"отваряне на камерата"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Избиране на ново оформление за задачите"</string> <string name="cancel" msgid="6442560571259935130">"Отказ"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Данните са с две чертички."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Данните са с три чертички."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Сигналът за данни е пълен."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi е изключен."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Няма връзка с Wi-Fi."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi е с една чертичка."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi е с две чертички."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi е с три чертички."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Сигналът за Wi-Fi е пълен."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Има връзка с <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Има връзка с <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Няма WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX е с две чертички."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX е с три чертички."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Сигналът за WiMAX е пълен."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Връзката с Ethernet е прекратена."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Установена е връзка с Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Няма сигнал."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Няма връзка."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Нула чертички."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Няма SIM карта."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Тетъринг през Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Самолетен режим."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Няма SIM карта."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Промяна на мрежата на оператора."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> процента батерия."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Системни настройки."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Приложението <xliff:g id="APP">%s</xliff:g> е отхвърлено."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Всички скорошни приложения са отхвърлени."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> се стартира."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Известието е отхвърлено."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Падащ панел с известия."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Бързи настройки."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заключване на екрана."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Настройки"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Общ преглед."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Затваряне"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Потвърждаване"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Потребител: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Функцията за Wi-Fi се изключи."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Самолетният режим се изключи."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Самолетният режим се включи."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Настройката „Не безпокойте“ е включена – само с приоритет."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Настройката „Не безпокойте“ е включена в режим за пълна тишина."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Настройката „Не безпокойте“ е включена – без прекъсвания."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Настройката „Не безпокойте“ е включена в режим само с будилници."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Настройката „Не безпокойте“ е изключена."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Настройката „Не безпокойте“ е изключена."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не безпокойте"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Само с приоритет"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Само будилници"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Пълна тишина"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без прекъсвания"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> устройства)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth е изключен"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Няма връзка"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Няма мрежа"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi е изключен"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Няма налични Wi-Fi мрежи"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Няма налични запазени мрежи"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Предаване"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Предава се"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Устройство без име"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Търсене"</string> <string name="description_direction_up" msgid="7169032478259485180">"Плъзнете нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Плъзнете наляво за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Няма да бъдете обезпокоявани от звуци и вибрирания, различни от будилници, напомняния, събития и обаждания от посочени от вас контакти."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без прекъсвания. Дори без будилници."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Няма да бъдете обезпокоявани от звуци и вибрирания, различни от будилници, напомняния, събития и обаждания от посочени от вас контакти."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Персонализиране"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Този режим блокира ВСИЧКИ звуци и вибрирания, включително от будилници, музика, видеоклипове и игри. Пак ще можете да извършвате телефонни обаждания."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Този режим блокира ВСИЧКИ звуци и вибрирания, включително от будилници, музика, видеоклипове и игри."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекъсвания"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекъсвания"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Само будилници"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следващият ви будилник е в <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следващият ви будилник е в/ъв <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Няма да чуете будилника си в <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Ппоказване на по-малко спешните известия по-долу"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Докоснете отново за отваряне"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Плъзнете нагоре, за да отключите"</string> - <string name="phone_hint" msgid="4872890986869209950">"Плъзнете с пръст от иконата, за да използвате телефона"</string> - <string name="voice_hint" msgid="8939888732119726665">"Прекарайте пръст от иконата, за да получите гласова помощ"</string> - <string name="camera_hint" msgid="7939688436797157483">"Плъзнете с пръст от иконата, за да включите камерата"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Пълна тишина. Това ще заглуши и екранните четци."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Пълна тишина"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Прекарайте пръст нагоре, за да отключите"</string> + <string name="phone_hint" msgid="3101468054914424646">"Прекарайте пръст надясно, за да използвате телефона"</string> + <string name="camera_hint" msgid="5241441720959174226">"Прекарайте пръст наляво, за да включите камерата"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Без прекъсвания"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Само с приоритет"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Само будилници"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Пълна\nтишина"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Всички"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nпрекъсвания"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Само\nс приоритет"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Само\nбудилници"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарежда се (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> до пълно зареждане)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Превключване между потребителите"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Превключване на потребителя – текущият е <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Текущ потребител – <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Показване на потребителския профил"</string> <string name="user_add_user" msgid="5110251524486079492">"Добавяне на потребител"</string> <string name="user_new_user_name" msgid="426540612051178753">"Нов потребител"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Започване отначало"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, продължавам"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Гост"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Премахнете госта, за да се изтрият приложенията и данните"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Премахване на госта с цел изтриване на приложения и данни"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ПРЕМАХВАНЕ НА ГОСТА"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Да се добави ли нов потреб.?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Когато добавите нов потребител, той трябва да настрои работното си пространство.\n\nВсеки потребител може да актуализира приложенията за всички останали потребители."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Деактивиране на VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Прекратяване на връзката с VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Устройството ви се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава и управлява настройките, корпоративния достъп, приложенията и данните, свързани с устройството ви, включително информацията за местоположението му. За още подробности се свържете с администратора си."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Разрешихте на приложение да настрои връзка с виртуална частна мрежа (VPN).\n\nТова приложение може да наблюдава активността ви на устройството и в мрежата, включително имейли, приложения и уебсайтове."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Служебният ви потребителски профил се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава активността ви в мрежата, включително имейли, приложения и сигурни уебсайтове.\n\nЗа още информация се свържете с администратора си."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Устройството ви се управлява от:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nСлужебният ви потребителски профил се управлява от:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава активността ви на устройството и в мрежата, включително имейли, приложения и сигурни уебсайтове.\n\nЗа още информация се свържете с администратора си."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Разрешихте на приложение да настрои връзка с виртуална частна мрежа (VPN).\n\nТо може да наблюдава активността ви на устройството и в мрежата, включително имейли, приложения и сигурни уебсайтове."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Устройството ви се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава и управлява настройките, корпоративния достъп, приложенията и данните, свързани с устройството ви, включително информацията за местоположението му.\n\nСвързани сте с виртуална частна мрежа (VPN) и активността ви в нея може да се наблюдава, включително имейли, приложения и уебсайтове.\n\nЗа още информация се свържете с администратора си."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Служебният ви потребителски профил се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава активността ви в мрежата, включително имейли, приложения и уебсайтове.\n\nЗа още информация се свържете с администратора си.\n\nСъщо така е установена връзка с виртуална частна мрежа (VPN) и активността ви в нея може да се наблюдава."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Установена е връзка с приложението <xliff:g id="APPLICATION">%1$s</xliff:g>, което може да наблюдава активността ви в мрежата, включително имейли, приложения и уебсайтове."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Установена е връзка с приложението <xliff:g id="APPLICATION">%1$s</xliff:g>, което може да наблюдава личната ви активност в мрежата, включително имейли, приложения и уебсайтове."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Служебният ви потребителски профил се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Той е свързан с приложението <xliff:g id="APPLICATION">%2$s</xliff:g>, което може да наблюдава служебната ви активност в мрежата, включително имейли, приложения и уебсайтове.\n\nЗа още информация се свържете с администратора си."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Служебният ви потребителски профил се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Той е свързан с приложението <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, което може да наблюдава служебната ви активност в мрежата, включително имейли, приложения и уебсайтове.\n\nУстановена е връзка и с приложението <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, което може да наблюдава личната ви активност в мрежата."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Устройството ви се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава и управлява настройките, корпоративния достъп, приложенията и данните, свързани с устройството ви, включително информацията за местоположението му.\n\nУстановена е връзка с приложението <xliff:g id="APPLICATION">%2$s</xliff:g>, което може да наблюдава активността ви в мрежата, включително имейли, приложения и уебсайтове.\n\nЗа още информация се свържете с администратора си."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Служебният ви потребителски профил се управлява от <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава активността ви в мрежата, включително имейли, приложения и сигурни уебсайтове.\n\nЗа още информация се свържете с администратора си.\n\nСъщо така сте свързани с виртуална частна мрежа (VPN) и активността ви в нея може да се наблюдава."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Устройството ви се управлява от <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nСлужебният ви потребителски профил се управлява от:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистраторът ви може да наблюдава активността ви в мрежата, включително имейли, приложения и сигурни уебсайтове.\n\nЗа още информация се свържете с администратора си.\n\nСъщо така сте свързани с виртуална частна мрежа (VPN) и личната ви активност в нея може да се наблюдава."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Устройството ще остане заключено, докато не го отключите ръчно"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Получавайте известия по-бързо"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Вижте известията, преди да отключите"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Преглед на всичко"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Скриване на всичко"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Прекратяване сега"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Разгъване"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Свиване"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екранът е фиксиран"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Така екранът ще се показва, докато не го освободите. За да направите това, докоснете и задръжте бутона за връщане назад и този за общ преглед едновременно."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Така екранът ще се показва, докато не го освободите. За да направите това, докоснете и задръжте бутона за общ преглед."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Отказване"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> изпълнява ролята на диалоговия прозорец за силата на звука"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Докоснете, за да възстановите оригинала."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Използвате служебния си потребителски профил"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Тунер на системния потребителски интерфейс"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Показване на процента на вградената батерия"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Показване на процента на нивото на батерията в иконата на лентата на състоянието, когато не се зарежда"</string> - <string name="quick_settings" msgid="10042998191725428">"Бързи настройки"</string> - <string name="status_bar" msgid="4877645476959324760">"Лента на състоянието"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демонстрационен режим"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Активиране на демонстрационния режим"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Показване на демонстрационния режим"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Будилник"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Потребителски профил в Work"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Самолетен режим"</string> - <string name="add_tile" msgid="2995389510240786221">"Добавяне на плочка"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Плочка за излъчване"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Няма да чуете следващия си будилник в <xliff:g id="WHEN">%1$s</xliff:g>, освен ако не изключите настройката преди това"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Няма да чуете следващия си будилник в <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"в <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"в/ъв <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Бързи настройки (<xliff:g id="TITLE">%s</xliff:g>)."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Точка за достъп"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Потребителски профил в Work"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Забавно – но не за всички"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Тунерът на системния потребителски интерфейс ви предоставя допълнителни възможности за прецизиране и персонализиране на практическата работа с Android. Тези експериментални функции може да се променят, повредят или да изчезнат в бъдещите версии. Действайте внимателно."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Тези експериментални функции може да се променят, повредят или да изчезнат в бъдещите версии. Действайте внимателно."</string> - <string name="got_it" msgid="2239653834387972602">"Разбрах"</string> - <string name="tuner_toast" msgid="603429811084428439">"Поздравления! Тунерът на системния потребителски интерфейс е добавен към „Настройки“"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Премахване от „Настройки“"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Да се премахне ли от „Настройки“ тунерът на системния потребителски интерфейс и да се спре ли използването на всичките му функции?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Влезли сте в потребителски профил в Work"</string> </resources> diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml index 5477ab836431..0ad51bfc1e18 100644 --- a/packages/SystemUI/res/values-bn-rBD/strings.xml +++ b/packages/SystemUI/res/values-bn-rBD/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"অ্যাপ্লিকেশানের তথ্য"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"আপনার সাম্প্রতিক স্ক্রীনগুলো এখানে দেখা যাবে"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"সাম্প্রতিক অ্যাপ্লিকেশানগুলি খারিজ করুন"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"এক নজরে-এ ১টি স্ক্রীন"</item> - <item quantity="other" msgid="5523506463832158203">"এক নজরে-এ %dটি স্ক্রীন"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">ওভারভিউ-এ %dটি স্ক্রীন</item> + <item quantity="other">ওভারভিউ-এ %dটি স্ক্রীন</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"কোনো বিজ্ঞপ্তি নেই"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"চলতে-থাকা"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"বিজ্ঞপ্তিগুলি"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB ডিবাগিং মঞ্জুর করবেন?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"কম্পিউটারের RSA কী আঙ্গুলের ছাপ হল:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"এই কম্পিউটার থেকে সর্বদা অনুমতি দিন"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB ডিবাগিং অনুমোদিত নয়"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ব্যবহারকারি বর্তমানে এই ডিভাইসে সাইন ইন করে রয়েছেন তাই USB ডিবাগিং চালু করা যাবে না। এই বৈশিষ্ট্যটি ব্যবহার করতে, প্রাথমিক ব্যবহারকারি “<xliff:g id="NAME">%s</xliff:g>”-এ পাল্টান।"</string> <string name="compat_mode_on" msgid="6623839244840638213">"স্ক্রীণ পূরণ করতে জুম করুন"</string> <string name="compat_mode_off" msgid="4434467572461327898">"পূর্ণ স্ক্রীণে প্রসারিত করুন"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"স্ক্রীনশট সংরক্ষণ করা হচ্ছে..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"অনুসন্ধান করুন"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ক্যামেরা"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ফোন"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ভয়েস সহায়তা"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"আনলক করুন"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"আনলক বোতাম, আঙ্গুলের ছাপের জন্য প্রতীক্ষারত"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"আপনার আঙ্গুলের ছাপ ব্যবহার না করেই আনলক করুন"</string> <string name="unlock_label" msgid="8779712358041029439">"আনলক করুন"</string> <string name="phone_label" msgid="2320074140205331708">"ফোন খুলুন"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ভয়েস সহায়তা খুলুন"</string> <string name="camera_label" msgid="7261107956054836961">"ক্যামেরা খুলুন"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"নতুন কার্য লেআউট নির্বাচন করুন"</string> <string name="cancel" msgid="6442560571259935130">"বাতিল করুন"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"দুই দন্ড ডেটার সংকেত রয়েছে৷"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"তিন দন্ড ডেটার সংকেত৷"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"পূর্ণ ডেটার সংকেত রয়েছে৷"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi বন্ধ৷"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi এর সংযোগ বিচ্ছিন্ন হয়েছে৷"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi এ একটি দণ্ড৷"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi এ দুইটি দণ্ড৷"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi এ তিনটি দণ্ড৷"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi এ সম্পূর্ণ সিগন্যাল৷"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> এর সাথে সংযুক্ত।"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>এ সংযুক্ত হয়ে আছে।"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX অনুপলব্ধ৷"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX এ দুইটি দণ্ড৷"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX এ তিনটি দণ্ড৷"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX এ সম্পূর্ণ সিগন্যাল৷"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ইথারনেটের সংযোগ বিচ্ছিন্ন হয়েছে৷"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ইথারনেট সংযুক্ত হয়েছে৷"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"কোনো সিগন্যাল নেই৷"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"সংযুক্ত নয়৷"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"কোনো দণ্ড নেই৷"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"কোনো সিম নেই৷"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth টিথারিং৷"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"বিমান মোড৷"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"কোনো SIM কার্ড নেই।"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"পরিষেবা প্রদানকারীর নেটওয়ার্ক পরিবর্তিত হচ্ছে।"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> শতাংশ ব্যাটারি রয়েছে৷"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"সিস্টেম সেটিংস৷"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> খারিজ করা হয়েছে৷"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"সমস্ত সাম্প্রতিক অ্যাপ্লিকেশন খারিজ করা হয়েছে।"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> তারাঙ্কিত করা হচ্ছে।"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"বিজ্ঞপ্তি খারিজ করা হয়েছে৷"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"বিজ্ঞপ্তি শেড৷"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"দ্রুত সেটিংস৷"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"লক স্ক্রীন।"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"সেটিংস"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"এক নজরে৷"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"বন্ধ করুন"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"নিশ্চিত করুন"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ব্যবহারকারী <xliff:g id="USER">%s</xliff:g>৷"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>।"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"WiFi বন্ধ হয়েছে।"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"বিমান মোড বন্ধ হয়েছে।"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"বিমান মোড চালু হয়েছে।"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"“বিরক্ত করবেন না” চালু করবেন, শুধুমাত্র অগ্রাধিকার৷"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"“বিরক্ত করবেন না” চালু করবেন, একদম নিরব"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"“বিরক্ত করবেন না” চালু করবেন, কোন বাধা নয়"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"“বিরক্ত করবেন না” চালু করবেন, শুধুমাত্র অ্যালার্মগুলি৷"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"“বিরক্ত করবেন না” বন্ধ৷"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"বিরক্ত করবেন না বন্ধ রয়েছে৷"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"বিরক্ত করবেন না"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"শুধুমাত্র অগ্রাধিকার"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"শুধুমাত্র অ্যালার্মগুলি"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"একদম নিরব"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"কোনো বাধা নয়"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> টি ডিভাইস)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth বন্ধ"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"সংযুক্ত নয়"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"কোনো নেটওয়ার্ক নেই"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi বন্ধ"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"কোনো Wi-Fi নেটওয়ার্ক উপলব্ধ নেই"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"কোন সংরক্ষিত নেটওয়ার্ক উপলব্ধ নেই"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"কাস্ট করুন"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"কাস্ট করা হচ্ছে"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"নামবিহীন ডিভাইস"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"অনুসন্ধান করুন"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য উপরের দিকে স্লাইড করুন৷"</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> এর জন্য বাম দিকে স্লাইড করুন৷"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"আপনার নির্দিষ্ট অ্যালার্ম, অনুস্মারক, ইভেন্ট, এবং কলারগুলি ব্যতীত আপনাকে শব্দ এবং কম্পনগুলির দ্বারা বিরক্ত করা হবে না৷"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"কোনো ব্যাঘাত ছাড়াই। এমনকি অ্যালার্মও নয়।"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"আপনার নির্দিষ্ট অ্যালার্ম, অনুস্মারক, ইভেন্ট, এবং কলারগুলি ব্যতীত আপনাকে শব্দ এবং কম্পনগুলির দ্বারা বিরক্ত করা হবে না৷"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"কাস্টমাইজ করুন"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"এটি অ্যালার্ম, সংগীত, ভিডিও এবং গেমগুলি থেকে আসা সমস্ত রকমের ধ্বনি এবং কম্পনগুলিকে বন্ধ করে৷ আপনি এখনও ফোন কলগুলি করতে পারবেন৷"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"এটি অ্যালার্ম, সংগীত, ভিডিও এবং গেমগুলি থেকে আসা সমস্ত রকমের ধ্বনি এবং কম্পনগুলিকে বন্ধ করে৷"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"কোনো বাধা নয়"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"শুধুমাত্র প্রাধান্য বাধাগুলি"</string> + <string name="zen_alarms" msgid="5055668280767657759">"শুধুমাত্র অ্যালার্মগুলি"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"আপনার পরবর্তী অ্যালার্মের সময় <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"আপনার পরবর্তী অ্যালার্মের সময় <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> বাজলে আপনি অ্যালার্ম শুনতে পাবেন না"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"নিচে অপেক্ষাকৃত কম জরুরী বিজ্ঞপ্তিগুলি"</string> <string name="notification_tap_again" msgid="8524949573675922138">"খোলার জন্য আবার স্পর্শ করুন"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"আনলক করতে উপরের দিকে সোয়াইপ করুন"</string> - <string name="phone_hint" msgid="4872890986869209950">"ফোনের জন্য আইকন থেকে সোয়াইপ করুন"</string> - <string name="voice_hint" msgid="8939888732119726665">"ভয়েস সহায়তার জন্য আইকন থেকে সোয়াইপ করুন"</string> - <string name="camera_hint" msgid="7939688436797157483">"ক্যামেরার জন্য আইকন থেকে সোয়াইপ করুন"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"সম্পূর্ণই নীরব। এটি স্ক্রীন রিডারকেও নীরব করবে।"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"একদম নিরব"</string> + <string name="phone_hint" msgid="3101468054914424646">"ফোনের জন্য ডানদিকে সোয়াইপ করুন"</string> + <string name="camera_hint" msgid="5241441720959174226">"ক্যামেরার জন্য ডানদিকে সোয়াইপ করুন"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"কোনো বাধা নেই"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"শুধুমাত্র অগ্রাধিকার"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"শুধুমাত্র অ্যালার্মগুলি"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"একদম\nনিরব"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"সমস্ত"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"কোনো\nবাঁধাদান নেই"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"শুধুমাত্র\nঅগ্রাধিকার"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"শুধুমাত্র\nঅ্যালার্মগুলি"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"চার্জ হচ্ছে (পূর্ণ হতে <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> সময় বাকি)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ব্যবহারকারী পাল্টে দিন"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ব্যবহারকারী পাল্টান, বর্তমান ব্যবহারকারী <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"<xliff:g id="CURRENT_USER_NAME">%s</xliff:g> হল বর্তমান ব্যবহারকারী"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"প্রোফাইল দেখান"</string> <string name="user_add_user" msgid="5110251524486079492">"ব্যবহারকারী জুড়ুন"</string> <string name="user_new_user_name" msgid="426540612051178753">"নতুন ব্যবহারকারী"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"আবার শুরু করুন"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"হ্যাঁ, অবিরত থাকুন"</string> <string name="guest_notification_title" msgid="1585278533840603063">"অতিথি ব্যবহারকারী"</string> - <string name="guest_notification_text" msgid="335747957734796689">"অ্যাপ্লিকেশান এবং ডেটা মুছে ফেলার জন্য অতিথি ব্যবহারকারী সরান।"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"অ্যাপ্লিকেশানগুলি এবং ডেটা মুছে ফেলতে অতিথি সরান"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"অতিথি সরান"</string> <string name="user_add_user_title" msgid="4553596395824132638">"নতুন ব্যবহারকারীকে যোগ করবেন?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"আপনি একজন নতুন ব্যবহারকারী যোগ করলে তাকে তার জায়গা সেট আপ করে নিতে হবে৷\n\nযেকোনো ব্যবহারকারী অন্য সব ব্যবহারকারীর জন্য অ্যাপ্লিকেশান আপডেট করতে পারবেন৷"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN অক্ষম করুন"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN এর সংযোগ বিচ্ছিন্ন করুন"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার ডিভাইস পরিচালনা করে৷\n\nআপনার প্রশাসক আপনার ডিভাইসের সাথে সম্পর্কিত সেটিংস, কর্পোরেট অ্যাক্সেস, অ্যাপ্লিকেশানগুলি, ডেটা এবং ডিভাইসের অবস্থান সম্পর্কিত তথ্য নিরীক্ষণ ও পরিচালনা করতে পারেন৷ আরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"আপনি VPN সংযোগ সেট আপ করার জন্য একটি অ্যাপ্লিকেশানকে অনুমতি দিন৷\n\nএই অ্যাপ্লিকেশানটি ইমেল, অ্যাপ্লিকেশান ও ওয়েবসাইটগুলি সহ আপনার ডিভাইস এবং নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে।"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার কাজের প্রোফাইল পরিচালনা করে৷\n\nআপনার প্রশাসক ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে সক্ষম৷\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"আপনার ডিভাইস পরিচালনা করছে:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>৷\nআপনার কাজের প্রোফাইল পরিচালনা করছে:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>৷\n\nআপনার প্রশাসক ইমেল,অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারেন।\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সঙ্গে যোগাযোগ করুন।"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"আপনি VPN সংযোগ সেট আপ করার জন্য একটি অ্যাপ্লিকেশানকে অনুমতি দিন৷\n\nএই অ্যাপ্লিকেশানটি ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার ডিভাইস এবং নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে।"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার ডিভাইস পরিচালনা করে৷\n\nআপনার প্রশাসক আপনার ডিভাইসের সাথে সম্পর্কিত সেটিংস, কর্পোরেট অ্যাক্সেস, অ্যাপ্লিকেশান ডেটা এবং ডিভাইসের অবস্থান সম্পর্কিত তথ্য নিরীক্ষণ ও পরিচালনা করতে পারেন৷\n\nআপনি একটি VPN এর সাথে সংযুক্ত রয়েছেন যা ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার কাজের প্রোফাইল পরিচালনা করে৷\n\nআপনার প্রশাসক ইমেল, অ্যাপ্লিকেশান ও ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে সক্ষম৷\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷\n\nএছাড়াও আপনি একটি VPN, এর সাথে সংযুক্ত রয়েছেন যা আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"আপনি <xliff:g id="APPLICATION">%1$s</xliff:g> -এ সংযুক্ত হয়েছেন, যা ইমেল, অ্যাপ্লিকেশান এবং ওয়েবসাইটগুলি সমেত আপনার নেটওয়ার্ক কার্যকলাপ নিরীক্ষণ করতে পারে৷"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"আপনি <xliff:g id="APPLICATION">%1$s</xliff:g> -এ সংযুক্ত হয়েছেন, যা ইমেল, অ্যাপ্লিকেশান এবং ওয়েবসাইটগুলি সমেত আপনার ব্যক্তিগত নেটওয়ার্ক কার্যকলাপ নিরীক্ষণ করতে পারে৷"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার কাজের প্রোফাইল পরিচালনা করে৷ এটি <xliff:g id="APPLICATION">%2$s</xliff:g> -এ সংযুক্ত রয়েছে যা আপনার ইমেল, অ্যাপ্লিকেশান ও ওয়েবসাইটগুলি সহ আপনার কাজের নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার কাজের প্রোফাইল পরিচালনা করে৷ এটি <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> -এ সংযুক্ত রয়েছে যা আপনার ইমেল, অ্যাপ্লিকেশান ও ওয়েবসাইটগুলি সহ আপনার কাজের নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷\n\nএছাড়াও আপনি <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> এর সাথে সংযুক্ত রয়েছেন যা আপনার ব্যক্তিগত নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার ডিভাইস পরিচালনা করে৷\n\nআপনার প্রশাসক আপনার ডিভাইসের সাথে সম্পর্কিত সেটিংস, কর্পোরেট অ্যাক্সেস, অ্যাপ্লিকেশান ডেটা এবং ডিভাইসের অবস্থান সম্পর্কিত তথ্য নিরীক্ষণ ও পরিচালনা করতে পারেন৷\n\nআপনি <xliff:g id="APPLICATION">%2$s</xliff:g> এর সাথে সংযুক্ত রয়েছেন যা ইমেল, অ্যাপ্লিকেশান ও ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> আপনার কাজের প্রোফাইল পরিচালনা করে৷\n\nআপনার প্রশাসক ইমেল, অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে সক্ষম৷\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷\n\nএছাড়াও আপনি একটি VPN এর সাথে সংযুক্ত রয়েছেন যা আপনার নেটওয়ার্কের কার্যকলাপ নিরীক্ষণ করতে পারে৷"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"<xliff:g id="ORGANIZATION_0">%1$s</xliff:g> আপনার ডিভাইস পরিচালনা করে৷\nআপনার কাজের প্রোফাইল পরিচালনা করছে:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>৷\n\nআপনার প্রশাসক ইমেল,অ্যাপ্লিকেশান ও নিরাপদ ওয়েবসাইটগুলি সহ আপনার নেটওয়ার্ক ক্রিয়াকলাপ নিরীক্ষণ করতে সক্ষম।\n\nআরো তথ্যের জন্য, আপনার প্রশাসকের সাথে যোগাযোগ করুন৷\n\nএছাড়াও আপনি একটি VPN এর সাথে সংযুক্ত রয়েছেন যা আপনার নেটওয়ার্কের কার্যকলাপও নিরীক্ষণ করতে পারে।"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"আপনি নিজে আনলক না করা পর্যন্ত ডিভাইসটি লক হয়ে থাকবে"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"বিজ্ঞপ্তিগুলি আরো দ্রুত পান"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"আপনি আনলক করার আগে ওগুলো দেখুন"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"সবগুলি দেখুন"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"সবগুলি লুকান"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"এখন সমাপ্ত করুন"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"প্রসারিত করুন"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"সঙ্কুচিত করুন"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"স্ক্রীন পিন করা হয়েছে"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"এটি আপনার আনপিন না করা পর্যন্ত এটিকে দর্শনে রাখে৷ আনপিন করতে একই সময়ে ফিরুন এবং ওভারভিউ এ স্পর্শ করে ধরে রাখুন৷"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"এটি আপনার আনপিন না করা পর্যন্ত এটিকে দর্শনে রাখে৷ আনপিন করতে ওভারভিউ এ স্পর্শ করে ধরে রাখুন৷"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"প্রত্যাখ্যান করুন"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> হল ভলিউম ডায়লগ"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"আসলটি পুনঃস্থাপন করতে স্পর্শ করুন৷"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"আপনি আপনার কাজের প্রোফাইল ব্যবহার করছেন"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"সিস্টেম UI টিউনার"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"এম্বেড করা ব্যাটারির শতকরা হার দেখায়"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"যখন চার্জ করা হবে না তখন স্থিতি দন্ডের আইকনের ভিতরে ব্যাটারি স্তরের শতকার হার দেখায়"</string> - <string name="quick_settings" msgid="10042998191725428">"দ্রুত সেটিংস"</string> - <string name="status_bar" msgid="4877645476959324760">"স্থিতি দন্ড"</string> - <string name="demo_mode" msgid="2389163018533514619">"ডেমো মোড"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"ডেমো মোড সক্ষম করুন"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ডেমো মোড দেখান"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ইথারনেট"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"অ্যালার্ম"</string> - <string name="status_bar_work" msgid="6022553324802866373">"কাজের প্রোফাইল"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"বিমান মোড"</string> - <string name="add_tile" msgid="2995389510240786221">"টাইল যোগ করুন"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"সম্প্রচার টাইল"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"তার আগে আপনি এটিকে বন্ধ না করা পর্যন্ত আপনি পরবর্তী <xliff:g id="WHEN">%1$s</xliff:g> অ্যালার্ম শুনতে পাবেন না"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"আপনি আপনার পরবর্তী <xliff:g id="WHEN">%1$s</xliff:g> অ্যালার্ম শুনতে পাবেন না"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> -টায়"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> -তে"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"দ্রুত সেটিংস, <xliff:g id="TITLE">%s</xliff:g>৷"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"হটস্পট"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"কাজের প্রোফাইল"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"কিছু ব্যক্তির জন্য মজাদার কিন্তু সকলের জন্য নয়"</string> - <string name="tuner_warning" msgid="8730648121973575701">"এই পরীক্ষামূলক বৈশিষ্ট্যগুলি ভবিষ্যতের সংস্করণগুলির মধ্যে পরিবর্তিত, বিভাজিত এবং অদৃশ্য হয়ে যেতে পারে৷ সাবধানতার সাথে এগিয়ে যান৷ সিস্টেম UI টিউনার আপনাকে Android ব্যবহারকারী ইন্টারফেসের সূক্ষ্ম সমন্বয় এবং কাস্টমাইজ করার অতিরিক্ত উপায়গুলি প্রদান করে৷"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"এই পরীক্ষামূলক বৈশিষ্ট্যগুলি ভবিষ্যতের সংস্করণগুলির মধ্যে পরিবর্তিত, বিভাজিত এবং অদৃশ্য হয়ে যেতে পারে৷ সাবধানতার সাথে এগিয়ে যান৷"</string> - <string name="got_it" msgid="2239653834387972602">"বুঝেছি"</string> - <string name="tuner_toast" msgid="603429811084428439">"অভিনন্দন! সেটিংস -এ সিস্টেম UI টিউনার যোগ করা হয়েছে"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"সেটিংস থেকে সরান"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"সেটিংস থেকে সিস্টেম UI টিউনার সরাতে এবং এটির সমস্ত বৈশিষ্ট্য ব্যবহার করা বন্ধ করতে চান?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"আপনি কাজের প্রোফাইলে রয়েছেন"</string> </resources> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index ff8891021862..7888e4aff5d6 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -24,11 +24,11 @@ <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Elimina de la llista"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informació de l\'aplicació"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Aquí es mostren les teves pantalles recents."</string> - <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignora les aplicacions recents"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 pantalla a Visió general"</item> - <item quantity="other" msgid="5523506463832158203">"%d pantalles a Visió general"</item> - </plurals> + <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Omet les aplicacions recents"</string> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d pantalles en la visió general</item> + <item quantity="one">1 pantalla en la visió general</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Cap notificació"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Continu"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificacions"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Vols permetre la depuració USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"L\'empremta digital de la clau de l\'RSA de l\'equip és:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Dóna sempre permís des d\'aquest equip"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"No es permet la depuració USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"L\'usuari que té iniciada la sessió al dispositiu en aquest moment no pot activar la depuració USB. Per utilitzar aquesta funció, cal canviar a l\'usuari principal <xliff:g id="NAME">%s</xliff:g>."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom per omplir pantalla"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Estira per omplir pant."</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"S\'està desant captura de pantalla..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Cerca"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Càmera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telèfon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Assistència per veu"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloqueja"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botó de desbloqueig, esperant l\'empremta digital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloqueja sense utilitzar l\'empremta digital"</string> <string name="unlock_label" msgid="8779712358041029439">"desbloqueja"</string> <string name="phone_label" msgid="2320074140205331708">"obre el telèfon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"obre l\'assistència per veu"</string> <string name="camera_label" msgid="7261107956054836961">"obre la càmera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Selecciona el disseny de la tasca nova"</string> <string name="cancel" msgid="6442560571259935130">"Cancel·la"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Senyal de dades: dues barres."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Senyal de dades: tres barres."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Senyal de dades: complet."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi desactivada."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi desconnectada."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Senyal Wi-Fi: una barra."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Senyal Wi-Fi: dues barres."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Senyal Wi-Fi: tres barres."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Senyal Wi-Fi: complet."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"S\'ha connectat a <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"S\'ha connectat a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sense WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dues barres de WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Tres barres de WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Senyal de WiMAX plena."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"S\'ha desconnectat l\'Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"S\'ha connectat l\'Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Sense senyal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Sense connexió."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Cap barra."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"No hi ha cap targeta SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Ancoratge de Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode d\'avió."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"No hi ha cap targeta SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"S\'està canviant la xarxa de l\'operador de telefonia mòbil."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -163,18 +160,17 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Mode silenci."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ignora <xliff:g id="APP">%s</xliff:g>."</string> + <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Descarta <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"S\'ha omès <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"S\'han descartat totes les aplicacions recents."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"S\'està iniciant <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificació omesa."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Àrea de notificacions"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configuració ràpida."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla de bloqueig"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuració"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visió general"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Tanca"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirma"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuari <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"La xarxa Wi-Fi està desactivada."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"S\'ha desactivat el Mode d\'avió."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"S\'ha activat el Mode d\'avió."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"El mode No molesteu està activat (només amb prioritat)."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"El mode No molesteu està activat; silenci total."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"El mode No molesteu està activat (cap interrupció)."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"El mode No molesteu està activat (només alarmes)."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"El mode No molesteu està desactivat."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"S\'ha desactivat el mode No molesteu."</string> @@ -241,11 +237,11 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"No molesteu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Només amb prioritat"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Només alarmes"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silenci total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Cap interrupció"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositius)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desactivat"</string> - <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"No hi ha dispositius vinculats disponibles."</string> + <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"No hi ha dispositius emparellats disponibles."</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brillantor"</string> <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"Gira automàticament"</string> <string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"Rotació bloquejada"</string> @@ -266,11 +262,11 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Desconnectat"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hi ha cap xarxa"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desconnectada"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"No hi ha cap xarxa Wi-Fi disponible"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No hi ha cap xarxa desada disponible."</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Emet"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"En emissió"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositiu sense nom"</string> - <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"A punt per emetre"</string> + <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"A punt per a l\'emissió"</string> <string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"No hi ha cap dispositiu disponible."</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brillantor"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTOMÀTICA"</string> @@ -296,7 +292,7 @@ <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fixació de pantalla"</string> <string name="recents_search_bar_label" msgid="8074997400187836677">"cerca"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"No s\'ha pogut iniciar <xliff:g id="APP">%s</xliff:g>."</string> - <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Ignora totes les aplicacions"</string> + <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Descarta totes les aplicacions"</string> <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisió horitzontal"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisió vertical"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisió personalitzada"</string> @@ -306,30 +302,33 @@ <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"No s\'està carregant"</string> <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"És possible que la xarxa\nestigui controlada"</string> <string name="description_target_search" msgid="3091587249776033139">"Cerca"</string> - <string name="description_direction_up" msgid="7169032478259485180">"Llisca cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="description_direction_left" msgid="7207478719805562165">"Llisca cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"No t\'interromprà cap so ni cap vibració, tret dels que produeixin les alarmes, els recordatoris, els esdeveniments i les trucades de les persones que especifiquis."</string> + <string name="description_direction_up" msgid="7169032478259485180">"Fes lliscar el dit cap amunt per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> + <string name="description_direction_left" msgid="7207478719805562165">"Fes lliscar el dit cap a l\'esquerra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sense interrupcions (ni tan sols alarmes)"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"No t\'interromprà cap so ni vibració, tret dels que produeixin les alarmes, els recordatoris, els esdeveniments i les trucades de les persones que especifiquis."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalitza"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Es bloquejaran TOTS els sons i totes les vibracions, inclosos els de vídeos, jocs, alarmes i música. Tot i això, encara podràs fer trucades."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Es bloquejaran TOTS els sons i totes les vibracions, inclosos els de vídeos, jocs, alarmes i música."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Cap interrupció"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Només interrupcions amb prioritat"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Només alarmes"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"La propera alarma és a les <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Propera alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"No sentiràs l\'alarma a les <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificacions menys urgents a continuació"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Torna a tocar per obrir"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Llisca cap amunt per desbloquejar el teclat"</string> - <string name="phone_hint" msgid="4872890986869209950">"Llisca des de la icona per obrir el telèfon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Llisca des de la icona per obrir l\'assistent de veu"</string> - <string name="camera_hint" msgid="7939688436797157483">"Llisca des de la icona per obrir la càmera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silenci total. També se silenciaran els lectors de pantalla."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silenci total"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Fes lliscar el dit cap amunt per desbloquejar el teclat."</string> + <string name="phone_hint" msgid="3101468054914424646">"Fes lliscar el dit cap a la dreta per obrir el telèfon."</string> + <string name="camera_hint" msgid="5241441720959174226">"Fes lliscar el dit cap a l\'esquerra per obrir la càmera."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Cap interrupció"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Només amb prioritat"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Només alarmes"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silenci\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Totes"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sense\ninterrupcions"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Només\ninterr. prior."</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Només\nalarmes"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregant (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> per completar la càrrega)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Canvia d\'usuari"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Canvia l\'usuari. Usuari actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Usuari actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostra el perfil"</string> <string name="user_add_user" msgid="5110251524486079492">"Afegeix un usuari"</string> <string name="user_new_user_name" msgid="426540612051178753">"Usuari nou"</string> @@ -344,11 +343,11 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Torna a començar"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sí, continua"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Usuari convidat"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Per suprimir aplicacions i dades, elimina l\'usuari convidat"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Suprimeix el convidat per suprimir les aplicacions i les dades"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"SUPRIMEIX EL CONVIDAT"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Vols afegir un usuari nou?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Quan s\'afegeix un usuari nou, aquest usuari ha de configurar-se l\'espai.\n\nQualsevol usuari pot actualitzar les aplicacions de la resta d\'usuaris."</string> - <string name="battery_saver_notification_title" msgid="237918726750955859">"Estalvi de bateria activat"</string> + <string name="battery_saver_notification_title" msgid="237918726750955859">"Estalvi de bateria activada"</string> <string name="battery_saver_notification_text" msgid="820318788126672692">"Redueix el rendiment i l\'ús de les dades en segon pla."</string> <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desactiva l\'estalvi de bateria"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"Contingut amagat"</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Desactiva la VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Desconnecta la VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Administrador del dispositiu: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'administrador pot supervisar i gestionar la configuració, l\'accés corporatiu, les aplicacions i les dades associades amb aquest dispositiu, inclosa la informació d\'ubicació. Per obtenir més informació, contacta amb l\'administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Has donat permís a una aplicació per configurar una connexió VPN.\n\nAquesta aplicació pot supervisar el dispositiu i l\'activitat a la xarxa, com ara els correus electrònics, les aplicacions i els llocs web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Administrador del perfil professional: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'administrador pot supervisar l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs.\n\nPer obtenir més informació, contacta amb l\'administrador."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Administrador del dispositiu:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nAdministrador del perfil professional:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nL\'administrador pot supervisar el dispositiu i l\'activitat de xarxa, inclosos els correus electrònics, les aplicacions i els llocs webs segurs.\n\nPer obtenir més informació, contacta amb l\'administrador."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Has donat permís a una aplicació per configurar una connexió VPN.\n\nAquesta aplicació pot supervisar el dispositiu i l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Administrador del dispositiu: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'administrador pot supervisar i gestionar el següent: configuració, accés corporatiu, aplicacions i dades associades amb aquest dispositiu, inclosa la seva informació d\'ubicació.\n\nEstàs connectat a una VPN, que pot supervisar l\'activitat de la xarxa, com ara els correus, les aplicacions i els llocs web.\n\nPer obtenir més informació, contacta amb l\'administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> gestiona el perfil de Work.\n\nL\'administrador pot supervisar l\'activitat a la xarxa, com ara els correus electrònics, les aplicacions i els llocs web.\n\nPer obtenir més informació, contacta amb l\'administrador.\n\nA més, estàs connectat a una VPN, que pot supervisar l\'activitat a la xarxa."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Estàs connectat a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pot supervisar la teva activitat a la xarxa, com ara els correus electrònics, les aplicacions i els llocs web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Estàs connectat a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pot supervisar la teva activitat personal a la xarxa, com ara els correus electrònics, les aplicacions i els llocs web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> gestiona el teu perfil professional. Aquest perfil està connectat a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pot supervisar la teva activitat professional a la xarxa, com ara els correus electrònics, les aplicacions i els llocs web.\n\nPer obtenir més informació, contacta amb l\'administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> gestiona el teu perfil professional. Aquest perfil està connectat a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que pot supervisar la teva activitat professional a la xarxa, com ara els correus electrònics, les aplicacions i els llocs web.\n\nA més, estàs connectat a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que també pot supervisar la teva activitat personal a la xarxa."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> gestiona el dispositiu.\n\nL\'administrador pot supervisar i gestionar el següent: configuració, accés corporatiu, aplicacions i dades associades amb el dispositiu, inclosa la informació d\'ubicació.\n\nEstàs connectat a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pot supervisar l\'activitat a la xarxa, com ara els correus, les aplicacions i els llocs web.\n\nPer obtenir més informació, contacta amb l\'administrador."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Administrador del perfil professional: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'administrador pot supervisar l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs.\n\nPer obtenir més informació, contacta amb l\'administrador.\n\nA més, estàs connectat a una VPN, que pot supervisar l\'activitat personal a la xarxa."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Administrador del dispositiu:<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nAdministrador del perfil professional:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nL\'administrador pot supervisar l\'activitat de la xarxa, inclosos els correus electrònics, les aplicacions i els llocs web segurs.\n\nPer obtenir més informació, contacta amb l\'administrador.\n\nA més, estàs connectat a una VPN, que pot supervisar l\'activitat personal a la xarxa."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"El dispositiu continuarà bloquejat fins que no el desbloquegis manualment."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Obtén notificacions més ràpidament"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Mostra-les abans de desbloquejar"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Mostra-les totes"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Amaga-les totes"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Finalitza ara"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Amplia"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Replega"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"La pantalla està fixada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Continuarà a la visualització fins que n\'anul·lis la fixació. Per fer-ho, toca i mantén premuts els botons Enrere i Visió general a la vegada."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Continuarà a la visualització fins que n\'anul·lis la fixació. Per fer-ho, toca i mantén premut el botó Visió general."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Denega"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> és el diàleg de volum"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca per restaurar l\'original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Estàs utilitzant el perfil professional"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Personalitzador d\'interfície d\'usuari"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostra el percentatge de la bateria inserit"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostra el percentatge del nivell de bateria dins de la icona de la barra d\'estat quan no s\'estigui carregant"</string> - <string name="quick_settings" msgid="10042998191725428">"Configuració ràpida"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra d\'estat"</string> - <string name="demo_mode" msgid="2389163018533514619">"Mode de demostració"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Activa el mode de demostració"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostra el mode de demostració"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarma"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil professional"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Mode d\'avió"</string> - <string name="add_tile" msgid="2995389510240786221">"Afegeix un mosaic"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Mosaic d\'emissió"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Si no desactives aquesta opció abans, <xliff:g id="WHEN">%1$s</xliff:g> no sentiràs la pròxima alarma"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g> no sentiràs la pròxima alarma"</string> - <string name="alarm_template" msgid="3980063409350522735">"Hora: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"Dia: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configuració ràpida, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Zona Wi-Fi"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil professional"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversió per a uns quants, però no per a tothom"</string> - <string name="tuner_warning" msgid="8730648121973575701">"El Personalitzador d\'interfície d\'usuari presenta opcions addicionals per canviar i personalitzar la interfície d\'usuari d\'Android. És possible que aquestes funcions experimentals canviïn, deixin de funcionar o desapareguin en versions futures. Continua amb precaució."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"És possible que aquestes funcions experimentals canviïn, deixin de funcionar o desapareguin en versions futures. Continua amb precaució."</string> - <string name="got_it" msgid="2239653834387972602">"D\'acord"</string> - <string name="tuner_toast" msgid="603429811084428439">"Enhorabona! El Personalitzador d\'interfície d\'usuari s\'ha afegit a Configuració."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Treu de Configuració"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Vols suprimir el Personalitzador d\'interfície d\'usuari de Configuració i deixar d\'utilitzar-ne totes les funcions?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Estàs utilitzant el perfil professional"</string> </resources> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 4102ad2d7699..39fc403e44e3 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informace o aplikaci"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Zde budou zobrazeny vaše poslední obrazovky"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Zavřít nové aplikace"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 obrazovka v Přehledu"</item> - <item quantity="other" msgid="5523506463832158203">"Počet obrazovek v Přehledu: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="few">%d obrazovky v Přehledu</item> + <item quantity="many">%d obrazovky v Přehledu</item> + <item quantity="other">%d obrazovek v Přehledu</item> + <item quantity="one">1 obrazovka v Přehledu</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Žádná oznámení"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Probíhající"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Oznámení"</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Povolit ladění USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Digitální otisk RSA počítače je:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Vždy povolit z tohoto počítače"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Ladění USB není povoleno"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Uživatel aktuálně přihlášený k tomuto zařízení nemůže zapnout ladění USB. Chcete-li tuto funkci použít, přepněte na primárního uživatele <xliff:g id="NAME">%s</xliff:g>."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Přiblížit na celou obrazovku"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Na celou obrazovku"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Ukládání snímku obrazovky..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Hledat"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparát"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Hlasová asistence"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Odemknout"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Tlačítko odemčení, čekání na otisk prstu"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Odemknout bez otisku prstu"</string> <string name="unlock_label" msgid="8779712358041029439">"odemknout"</string> <string name="phone_label" msgid="2320074140205331708">"otevřít telefon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"otevřít hlasovou asistenci"</string> <string name="camera_label" msgid="7261107956054836961">"spustit fotoaparát"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Vybrat nové rozvržení úkolů"</string> <string name="cancel" msgid="6442560571259935130">"Zrušit"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dvě čárky signálu datové sítě."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tři čárky signálu datové sítě."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Plný signál datové sítě."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Síť Wi-Fi je vypnuta."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Síť Wi-Fi odpojena."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Jedna čárka signálu sítě Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Dvě čárky signálu sítě Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Tři čárky signálu sítě Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Plný signál sítě Wi-Fi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Připojeno k zařízení <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Připojeno k zařízení <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Žádný signál sítě WiMAX."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dvě čárky signálu sítě WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Tři čárky signálu sítě WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Plný signál sítě WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Síť ethernet je odpojena."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Síť ethernet je připojena."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Není signál."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nepřipojeno."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Žádná čárka."</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Žádná SIM karta."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Sdílené připojení přes Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Režim Letadlo."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Není vložena SIM karta"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Probíhá změna sítě operátora."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +166,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Aplikace <xliff:g id="APP">%s</xliff:g> byla odebrána."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Všechny naposledy použité aplikace byly odstraněny."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Spouštění aplikace <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Oznámení je zavřeno."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Panel oznámení."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Rychlé nastavení."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Obrazovka uzamčení"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavení"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Přehled"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Zavřít"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Potvrdit"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Uživatel <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Připojení Wi-Fi je vypnuto."</string> @@ -186,7 +184,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Režim Letadlo je vypnutý."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Režim Letadlo je zapnutý."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Stav Nerušit je zapnutý – pouze prioritní vyrušení."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Je zapnut režim Nerušit – úplné ticho."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Stav Nerušit je zapnutý – žádná vyrušení."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Nerušit, pouze budíky"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Stav Nerušit je vypnutý."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Stav Nerušit je vypnutý"</string> @@ -241,7 +239,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nerušit"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Pouze prioritní"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Pouze budíky"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Úplné ticho"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Žádná vyrušení"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> zařízení)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Rozhraní Bluetooth je vypnuto"</string> @@ -266,7 +264,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nepřipojeno"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žádná síť"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi vypnuta"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Žádné sítě Wi-Fi nejsou k dispozici"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nejsou dostupné žádné uložené sítě"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Odeslat"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Odesílání"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nepojmenované zařízení"</string> @@ -280,7 +278,7 @@ <string name="quick_settings_done" msgid="3402999958839153376">"Hotovo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Připojeno"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Připojování..."</string> - <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Sdílené připojení"</string> + <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Sdílení datového připojení"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Hotspot"</string> <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Oznámení"</string> <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Svítilna"</string> @@ -308,28 +306,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Vyhledávání"</string> <string name="description_direction_up" msgid="7169032478259485180">"Přejeďte prstem nahoru: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="7207478719805562165">"Přejeďte prstem doleva: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Nebudou vás rušit zvuky ani vibrace s výjimkou budíků, upozornění, událostí a volajících, které zadáte."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žádná vyrušení, dokonce ani budíky."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Nebudou vás rušit zvuky ani vibrace s výjimkou budíků, upozornění, událostí a volajících, které zadáte."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Přizpůsobit"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"V tomto režimu budou blokovány VŠECHNY zvuky a vibrace, včetně těch z budíků, hudby, videí a her. Telefonovat budete moci i nadále."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"V tomto režimu budou blokovány VŠECHNY zvuky a vibrace, včetně těch z budíků, hudby, videí a her."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Žádná vyrušení"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Pouze prioritní vyrušení"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Pouze budíky"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Další budík je nastaven na: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Další budík: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Neuslyšíte budík v <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Méně urgentní oznámení níže"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Otevřete opětovným klepnutím"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Zařízení odemknete přejetím prstem nahoru"</string> - <string name="phone_hint" msgid="4872890986869209950">"Telefon otevřete přejetím prstem od ikony"</string> - <string name="voice_hint" msgid="8939888732119726665">"Hlasovou asistenci otevřete přejetím prstem od ikony"</string> - <string name="camera_hint" msgid="7939688436797157483">"Fotoaparát otevřete přejetím prstem od ikony"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Úplné ticho. Budou ztlumeny i čtečky obrazovky."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Úplné ticho"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telefon otevřete přejetím prstem vpravo."</string> + <string name="camera_hint" msgid="5241441720959174226">"Fotoaparát otevřete přejetím prstem vlevo."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Žádná vyrušení"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Pouze prioritní"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Pouze budíky"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Úplné\nticho"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Vše"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nerušit\n"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Pouze\nprioritní"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Pouze\nbudíky"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nabíjení (plně nabito za <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Přepnout uživatele"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Přepnout uživatele, aktuální uživatel: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Aktuální uživatel <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Zobrazit profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Přidat uživatele"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nový uživatel"</string> @@ -344,7 +345,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Začít znovu"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ano, pokračovat"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Host"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Chcete-li smazat aplikace a data, odeberte hosta"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Chcete-li smazat aplikace a data, odstraňte hosta"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ODSTRANIT HOSTA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Přidat nového uživatele?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Když přidáte nového uživatele, musí si nastavit vlastní prostor.\n\nJakýkoli uživatel může aktualizovat aplikace všech ostatních uživatelů."</string> @@ -366,15 +367,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Deaktivovat VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Odpojit VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Toto zařízení spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrátor může sledovat a spravovat nastavení, firemní přístup, aplikace, data přidružená k tomuto zařízení a jeho polohu. O další informace požádejte svého administrátora."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Udělili jste aplikaci oprávnění k nastavení připojení VPN.\n\nTato aplikace může sledovat vaši aktivitu v zařízení a v síti, včetně e-mailů, aplikací a webů."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Váš pracovní profil spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrátor může monitorovat vaši síťovou aktivitu, včetně e-mailů, aplikací a zabezpečených webů.\n\nO další informace požádejte svého administrátora."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Toto zařízení je spravováno následující organizací:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nVáš pracovní profil je spravován následující organizací:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nAdministrátor může monitorovat vaše zařízení a síťovou aktivitu, včetně e-mailů, aplikací a zabezpečených webů.\n\nO další informace požádejte svého administrátora."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Udělili jste aplikaci oprávnění k nastavení připojení VPN.\n\nTato aplikace může sledovat vaši aktivitu v zařízení a v síti, včetně e-mailů, aplikací a zabezpečených webových stránek."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Toto zařízení spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrátor může sledovat a spravovat nastavení, firemní přístup, aplikace, data přidružená k tomuto zařízení a jeho polohu.\n\nJste připojeni k síti VPN, která může sledovat vaši osobní aktivitu v síti, včetně e-mailů, aplikací a webů.\n\nO další informace požádejte svého administrátora."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Váš pracovní profil spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrátor může monitorovat vaši síťovou aktivitu, včetně e-mailů, aplikací a webů.\n\nO další informace požádejte svého administrátora.\n\nJste také připojeni k síti VPN, která může sledovat vaši aktivitu v síti."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Jste připojeni k aplikaci <xliff:g id="APPLICATION">%1$s</xliff:g>, která může sledovat vaši aktivitu v síti, včetně e-mailů, aplikací a webů."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Jste připojeni k aplikaci <xliff:g id="APPLICATION">%1$s</xliff:g>, která může sledovat vaši osobní aktivitu v síti, včetně e-mailů, aplikací a webů."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Váš pracovní profil spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Je připojen k aplikaci <xliff:g id="APPLICATION">%2$s</xliff:g>, která může sledovat vaši aktivitu v síti, včetně e-mailů, aplikací a webů.\n\nO další informace požádejte svého administrátora."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Váš pracovní profil spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Je připojen k aplikaci <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, která může sledovat vaši aktivitu v síti, včetně e-mailů, aplikací a webů.\n\nTaké jste připojeni k aplikaci <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, která může sledovat vaši osobní aktivitu v síti."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Toto zařízení spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrátor může sledovat a spravovat nastavení, firemní přístup, aplikace, data přidružená k tomuto zařízení a informace o jeho poloze.\n\nJste připojeni k aplikaci <xliff:g id="APPLICATION">%2$s</xliff:g>, která může sledovat vaši osobní aktivitu v síti, včetně e-mailů, aplikací a webů.\n\nO další informace požádejte svého administrátora."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Váš pracovní profil spravuje organizace <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrátor může monitorovat vaši síťovou aktivitu, včetně e-mailů, aplikací a zabezpečených webů.\n\nO další informace požádejte svého administrátora.\n\nJste také připojeni k síti VPN, která může sledovat vaši aktivitu v síti."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Toto zařízení spravuje organizace <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVáš pracovní profil je spravován následující organizací:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nAdministrátor může monitorovat vaši síťovou aktivitu, včetně e-mailů, aplikací a zabezpečených webů.\n\nO další informace požádejte svého administrátora.\n\nJste také připojeni k síti VPN, která může sledovat vaši osobní aktivitu v síti."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Zařízení zůstane uzamčeno, dokud je ručně neodemknete"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Čtěte si oznámení rychleji"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Můžete si je přečíst před odemčením obrazovky."</string> @@ -383,9 +381,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Zobrazit vše"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skrýt vše"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Ukončit"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Rozbalit"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Sbalit"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Obrazovka je připnuta"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Obsah bude připnut v zobrazení, dokud jej neuvolníte. Chcete-li jej uvolnit, stiskněte a podržte současně tlačítka Zpět a Přehled."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Obsah bude připnut v zobrazení, dokud jej neuvolníte. Uvolníte jej stisknutím a podržením tlačítka Přehled."</string> @@ -399,33 +394,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmítnout"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je dialog hlasitosti"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Klepnutím obnovíte originál."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Používáte pracovní profil"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Nástroj na ladění uživatelského rozhraní systému"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Zobrazovat vložené procento nabití baterie"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Když neprobíhá nabíjení, zobrazit v ikoně na stavovém řádku procento nabití baterie"</string> - <string name="quick_settings" msgid="10042998191725428">"Rychlé nastavení"</string> - <string name="status_bar" msgid="4877645476959324760">"Stavový řádek"</string> - <string name="demo_mode" msgid="2389163018533514619">"Ukázkový režim"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Zapnout ukázkový režim"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Zobrazit ukázkový režim"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Budík"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Pracovní profil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Režim Letadlo"</string> - <string name="add_tile" msgid="2995389510240786221">"Přidat dlaždici"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Dlaždice s vysíláním"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Pokud tento režim nevypnete, svůj další budík <xliff:g id="WHEN">%1$s</xliff:g> neuslyšíte"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Svůj další budík <xliff:g id="WHEN">%1$s</xliff:g> neuslyšíte"</string> - <string name="alarm_template" msgid="3980063409350522735">"v <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"dne <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Rychlé nastavení <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Pracovní profil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Zábava, která není pro každého"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Nástroj na ladění uživatelského rozhraní systému vám nabízí další způsoby, jak si vyladit a přizpůsobit uživatelské rozhraní Android. Tyto experimentální funkce mohou v dalších verzích chybět, nefungovat nebo být změněny. Postupujte proto prosím opatrně."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Tyto experimentální funkce mohou v dalších verzích chybět, nefungovat nebo být změněny. Postupujte proto prosím opatrně."</string> - <string name="got_it" msgid="2239653834387972602">"Rozumím"</string> - <string name="tuner_toast" msgid="603429811084428439">"Úspěch! Do Nastavení byl přidán nástroj na ladění uživatelského rozhraní systému."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Odstranit z Nastavení"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Chcete nástroj na ladění uživatelského rozhraní systému odstranit z Nastavení a přestat používat všechny jeho funkce?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Nacházíte se v pracovním profilu"</string> </resources> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 30cb47e39006..2226a078a255 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Oplysninger om appen"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Dine seneste skærme vises her"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Luk de seneste apps"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Ét skærmbillede i Oversigt"</item> - <item quantity="other" msgid="5523506463832158203">"%d skærmbilleder i Oversigt"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d skærmbilleder i Oversigt</item> + <item quantity="other">%d skærmbilleder i Oversigt</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ingen underretninger"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"I gang"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Underretninger"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Vil du tillade USB-fejlretning?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Fingeraftrykket for computerens RSA-nøgle er:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Tillad altid fra denne computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-fejlretning er ikke tilladt"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Den bruger, der i øjeblikket er logget ind på denne enhed, kan ikke aktivere USB-fejlretning. Skift til den primære bruger \"<xliff:g id="NAME">%s</xliff:g>\" for at bruge denne funktion."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom til fuld skærm"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stræk til fuld skærm"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Gemmer skærmbillede..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Søg"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Lås op"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Knap til oplåsning. Venter på fingeraftryk"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Lås op uden at bruge dit fingeraftryk"</string> <string name="unlock_label" msgid="8779712358041029439">"lås op"</string> <string name="phone_label" msgid="2320074140205331708">"åbn telefon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"åbn voice assist"</string> <string name="camera_label" msgid="7261107956054836961">"åbn kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Vælg nyt opgavelayout"</string> <string name="cancel" msgid="6442560571259935130">"Annuller"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data to bjælker."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tre bjælker."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datasignal fuldt."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi slået fra."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi er afbrudt."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi én bjælke."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi to bjælker."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi tre bjælker."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi fuldt signal."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Tilsluttet <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Tilsluttet <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX to bjælker."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX tre bjælker."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-signal er fuldt."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet er ikke tilsluttet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet er tilsluttet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Intet signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Ikke tilsluttet."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nul bjælker."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Intet SIM-kort."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-netdeling."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flytilstand."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Der er ikke noget SIM-kort."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Mobilnetværket skiftes."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Batteri <xliff:g id="NUMBER">%d</xliff:g> procent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Systemindstillinger."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> er annulleret."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Alle de seneste applikationer er lukket."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> startes."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Underretningen er annulleret."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Underretningspanel."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hurtige indstillinger."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Låseskærm."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Indstillinger"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Oversigt."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Luk"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Bekræft"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Bruger <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi er slået fra."</string> @@ -183,12 +179,12 @@ <string name="accessibility_quick_settings_airplane_on" msgid="6406141469157599296">"Flytilstand er slået til."</string> <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Flytilstand er slået fra."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Flytilstand er slået til."</string> - <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Forstyr ikke\" er slået til, kun prioritet."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\"Forstyr ikke\" er slået til, total stilhed."</string> - <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Forstyr ikke\" er slået til, kun alarmer."</string> - <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Forstyr ikke\" er slået fra."</string> - <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Forstyr ikke\" er slået fra."</string> - <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Forstyr ikke\" er slået til."</string> + <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Vil ikke forstyrres\" er slået til, kun prioritet."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Vil ikke forstyrres\" er slået til, ingen afbrydelser."</string> + <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Vil ikke forstyrres\" er slået til, kun alarmer."</string> + <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Vil ikke forstyrres\" er slået fra."</string> + <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Vil ikke forstyrres\" er slået fra."</string> + <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Vil ikke forstyrres\" er slået til."</string> <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"Bluetooth er slået fra."</string> <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"Bluetooth er slået til."</string> <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"Opretter forbindelse til Bluetooth."</string> @@ -236,10 +232,10 @@ <string name="dessert_case" msgid="1295161776223959221">"Dessertcase"</string> <string name="start_dreams" msgid="7219575858348719790">"Dagdrøm"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Forstyr ikke"</string> + <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Vil ikke forstyrres"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Kun prioritet"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Kun Alarmer"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Total stilhed"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ingen afbrydelser"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheder)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth slået fra"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ikke forbundet"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Intet netværk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi slået fra"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Der er ingen tilgængelige Wi-Fi-netværk"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Der er ingen tilgængelige gemte netværk"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Caster"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Enhed uden navn"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Søgning"</string> <string name="description_direction_up" msgid="7169032478259485180">"Glid op for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Glid til venstre for at <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Du bliver ikke forstyrret af lyde og vibrationer undtagen fra de alarmer, påmindelser, begivenheder og opkaldere, som du angiver."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ingen afbrydelser. Ikke engang alarmer."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Du bliver ikke forstyrret af lyde og vibrationer undtagen fra de alarmer, påmindelser, begivenheder og opkaldere, som du angiver."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Tilpas"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Dette blokerer ALLE lyde og vibrationer, bl.a. fra alarmer, musik, videoer og spil. Du vil stadig kunne foretage telefonopkald."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Dette blokerer ALLE lyde og vibrationer, bl.a. fra alarmer, musik, videoer og spil."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Ingen afbrydelser"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Kun prioriterede afbrydelser"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Kun Alarmer"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Dit næste alarm er indstillet til kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Din næste alarm er indstillet til <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Du vil ikke kunne høre din alarm kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Mindre presserende underretninger nedenfor"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Tryk igen for at åbne"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Stryg opad for at låse op"</string> - <string name="phone_hint" msgid="4872890986869209950">"Stryg fra telefonikonet"</string> - <string name="voice_hint" msgid="8939888732119726665">"Stryg fra ikonet for voice assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Stryg fra kameraikonet"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Helt lydløs. Denne handling slukker også skærmlæsere."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Total stilhed"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Stryg for at låse op"</string> + <string name="phone_hint" msgid="3101468054914424646">"Stryg til højre for at bruge telefonen"</string> + <string name="camera_hint" msgid="5241441720959174226">"Stryg til venstre for at åbne kameraet"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Ingen afbrydelser"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Kun prioritet"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Kun Alarmer"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Total\nstilhed"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ingen\nafbrydelser"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Kun\nprioritet"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Kun\nalarmer"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Oplader (fuldt opladet om <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Skift bruger"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Skift bruger. Nuværende bruger er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Nuværende bruger: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Vis profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Tilføj bruger"</string> <string name="user_new_user_name" msgid="426540612051178753">"Ny bruger"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start forfra"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, fortsæt"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gæstebruger"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Fjern gæstebrugeren for at slette apps og data"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Fjern gæsten for at slette apps og data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"FJERN GÆST"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Vil du tilføje den nye bruger?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Når du tilføjer en ny bruger, skal personen konfigurere sit område.\n\nEnhver bruger kan opdatere apps for alle andre brugere."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Deaktiver VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Afbryd VPN-forbindelse"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Din enhed administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nDin administrator kan overvåge og administrere indstillinger, virksomhedsadgang, apps, data, der er knyttet til din enhed, og din enheds placeringsoplysninger. Kontakt din administrator, hvis du vil have flere oplysninger."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Du gav en app tilladelse til at konfigurere en VPN-forbindelse.\n\nDenne app kan overvåge din enhed og netværksaktivitet, bl.a. e-mails, apps og websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Din arbejdsprofil administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nDin administrator kan overvåge din netværksaktivitet, herunder e-mails, apps og sikre websites.\n\nKontakt din administrator, hvis du vil have flere oplysninger."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Din enhed administreres af:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nDin arbejdsprofil administreres af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nDin administrator kan overvåge din enhed og netværksaktivitet, herunder e-mails, apps og sikre websites.\n\nKontakt din administrator, hvis du vil have flere oplysninger."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Du har givet en app tilladelse til at oprette en VPN-forbindelse.\n\nDenne app kan overvåge din netværksaktivitet, herunder e-mails, apps og sikre websites."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Din enhed administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nDin administrator kan overvåge og administrere indstillinger, virksomhedsadgang, apps, data, der er knyttet til din enhed, og din enheds placeringsoplysninger.\n\nDu har forbindelse til et VPN, som kan overvåge din netværksaktivitet, herunder e-mails, apps og websites.\n\nKontakt din administrator, hvis du vil have flere oplysninger."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Din arbejdsprofil administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nDin administrator kan overvåge din netværksaktivitet, bl.a. e-mails, apps og websites.\n\nKontakt din administrator for at få flere oplysninger.\n\nDu er også forbundet til en VPN-forbindelse, som kan overvåge din netværksaktivitet."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Du har forbindelse til <xliff:g id="APPLICATION">%1$s</xliff:g>, som kan overvåge din netværksaktivitet, bl.a. e-mails, apps og websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Du har forbindelse til <xliff:g id="APPLICATION">%1$s</xliff:g>, som kan overvåge din private netværksaktivitet, bl.a. e-mails, apps og websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Din arbejdsprofil administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Den er forbundet til <xliff:g id="APPLICATION">%2$s</xliff:g>, som kan overvåge din arbejdsrelaterede netværksaktivitet, bl.a. e-mails, apps og websites.\n\nKontakt din administrator for at få flere oplysninger."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Din arbejdsprofil administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Den er forbundet til <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, som kan overvåge din arbejdsrelaterede netværksaktivitet, bl.a. e-mails, apps og websites.\n\nDu er også forbundet til <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, som kan overvåge din private netværksaktivitet."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Din enhed administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nDin administrator kan overvåge og administrere indstillinger, virksomhedens adgang, data tilknyttet din enhed og enhedens placeringsoplysninger.\n\nDu er forbundet til <xliff:g id="APPLICATION">%2$s</xliff:g>, som kan overvåge din netværksaktivitet, bl.a. e-mails, apps og websites.\n\nKontakt din administrator for at få flere oplysninger."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Din arbejdsprofil administreres af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nDin administrator kan overvåge din netværksaktivitet, herunder e-mails, apps og sikre websites.\n\nKontakt din administrator, hvis du vil have flere oplysninger.\n\nDu har også forbindelse til et VPN, som kan overvåge din netværksaktivitet."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Din enhed administreres af <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nDin arbejdsprofil administreres af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nDin administrator kan overvåge din netværksaktivitet, herunder e-mail, apps og sikre websites.\n\nKontakt din administrator, hvis du vil have flere oplysninger.\n\nDu har også forbindelse til et VPN, som kan overvåge din personlige netværksaktivitet."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Enheden vil forblive låst, indtil du manuelt låser den op"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Modtag underretninger hurtigere"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Se dem, før du låser op"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Se alle"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skjul alle"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Afslut nu"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Udvid"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Skjul"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skærmen er fastgjort"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Dette fastholder den i visningen, indtil du frigør den. Tryk på Tilbage og Oversigt på samme tid, og hold dem nede for at frigøre denne skærm."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Dette fastholder den i visningen, indtil du frigør den. Tryk på Oversigt, og hold den nede for at frigøre denne skærm."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Afvis"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er dialogboksen for lydstyrke"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tryk for at gendanne originalen."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Du bruger din arbejdsprofil"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Vis procent for det indbyggede batteri"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Vis procenttallet for batteriniveauet i ikonet for statusbjælken, når der ikke oplades"</string> - <string name="quick_settings" msgid="10042998191725428">"Hurtige indstillinger"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusbjælke"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demotilstand"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Aktivér Demotilstand"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Vis Demotilstand"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Arbejdsprofil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Flytilstand"</string> - <string name="add_tile" msgid="2995389510240786221">"Tilføj et felt"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Broadcast-ikon"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Du vil ikke kunne høre din næste alarm <xliff:g id="WHEN">%1$s</xliff:g>, medmindre du slår funktionen fra inden da"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Du vil ikke kunne høre din næste alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"på <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Hurtigindstillinger <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Arbejdsprofil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Sjovt for nogle, men ikke for alle"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner giver dig flere muligheder for at justere og tilpasse Android-brugerfladen. Disse eksperimentelle funktioner kan ændres, gå i stykker eller forsvinde i fremtidige udgivelser. Vær forsigtig, hvis du fortsætter."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Disse eksperimentelle funktioner kan ændres, gå i stykker eller forsvinde i fremtidige udgivelser. Vær forsigtig, hvis du fortsætter."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"System UI Tuner blev føjet til Indstillinger"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Fjern fra Indstillinger"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Vil du fjerne System UI Tuner fra Indstillinger og stoppe med at bruge alle dens funktioner?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Du er i arbejdsprofilen"</string> </resources> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 911cdc05c8cb..a0fe215846e9 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App-Info"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Hier sehen Sie Ihre zuletzt geöffneten Apps."</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Kürzlich geöffnete Apps schließen"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 Bildschirm in der Übersicht"</item> - <item quantity="other" msgid="5523506463832158203">"%d Bildschirme in der Übersicht"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d Bildschirme in der Übersicht</item> + <item quantity="one">1 Bildschirm in der Übersicht</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Keine Benachrichtigungen"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Aktuell"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Benachrichtigungen"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB-Debugging zulassen?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Der Fingerabdruck des RSA-Schlüssels für diesen Computer lautet: \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Von diesem Computer immer zulassen"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-Debugging nicht zulässig"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Der momentan auf diesem Gerät angemeldete Nutzer kann das USB-Debugging nicht aktivieren. Um diese Funktion zu aktivieren, wechseln Sie zum primären Nutzer \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom auf Bildschirmgröße"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Auf Bildschirmgröße anpassen"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Screenshot wird gespeichert..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Suchen"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonnummer"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Sprachassistent"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Entsperren"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Schaltfläche \"Entsperren\", auf Fingerabdruck warten"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Ohne Verwendung des Fingerabdrucks entsperren"</string> <string name="unlock_label" msgid="8779712358041029439">"Entsperren"</string> <string name="phone_label" msgid="2320074140205331708">"Telefon öffnen"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"Sprachassistent öffnen"</string> <string name="camera_label" msgid="7261107956054836961">"Kamera öffnen"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Neues Aufgabenlayout auswählen"</string> <string name="cancel" msgid="6442560571259935130">"Abbrechen"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Datensignal - zwei Balken"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Datensignal - drei Balken"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Volle Datensignalstärke"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"WLAN: aus"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"WLAN getrennt"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WLAN: ein Balken"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WLAN: zwei Balken"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WLAN: drei Balken"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Volle WLAN-Signalstärke"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Mit <xliff:g id="WIFI">%s</xliff:g> verbunden"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Mit <xliff:g id="BLUETOOTH">%s</xliff:g> verbunden"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Kein WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX - zwei Balken"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX - drei Balken"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Volle WiMAX-Signalstärke"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet nicht verbunden"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet verbunden"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Kein Signal"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nicht verbunden"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Kein Balken"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Keine SIM-Karte"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-Tethering"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flugmodus"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Keine SIM-Karte"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Netzwerk des Mobilfunkanbieters wird gewechselt"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> entfernt"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Alle kürzlich verwendeten Apps wurden entfernt."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> wird gestartet."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Benachrichtigung geschlossen"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Benachrichtigungsleiste"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Schnelleinstellungen"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Sperrbildschirm"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Einstellungen"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Übersicht"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Schließen"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Bestätigen"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Nutzer: <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"WLAN ist deaktiviert."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Der Flugmodus ist deaktiviert."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Der Flugmodus ist aktiviert."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Nicht stören\" an, nur wichtige Unterbrechungen"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Nicht stören, lautlos"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Nicht stören\" an, keine Unterbrechungen"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Nicht stören\" an, nur Wecker"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Nicht stören\" aus"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Nicht stören\" deaktiviert"</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nicht stören"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Nur wichtige Unterbrechungen"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Nur Wecker"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Lautlos"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Keine Unterbrechungen"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Geräte)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth aus"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nicht verbunden"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Kein Netz"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WLAN aus"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Keine WLAN-Netzwerke verfügbar"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Keine gespeicherten Netzwerke verfügbar"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Übertragen"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Wird übertragen"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unbenanntes Gerät"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Suche"</string> <string name="description_direction_up" msgid="7169032478259485180">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach oben schieben"</string> <string name="description_direction_left" msgid="7207478719805562165">"Zum <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> nach links schieben"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Klingeltöne und die Vibration werden deaktiviert, außer für Weckrufe, Erinnerungen, Termine sowie Anrufe von zuvor von Ihnen festgelegten Personen."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Keine Unterbrechungen. Auch keine Weckrufe."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Klingeltöne und die Vibration werden deaktiviert, außer für den Wecker, Erinnerungen, Termine sowie Anrufe von zuvor von Ihnen festgelegten Personen."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Anpassen"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Hierdurch werden alle Klingeltöne und Vibrationsalarme stummgeschaltet, auch für Weckrufe, Musik, Videos und Spiele. Anrufe können Sie jedoch weiterhin tätigen."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Hierdurch werden alle Klingeltöne und Vibrationsalarme stummgeschaltet, auch für Weckrufe, Musik, Videos und Spiele."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Keine Unterbrechungen"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Nur wichtige Unterbrechungen"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Nur Wecker"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Nächster Weckruf: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Nächster Weckruf: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Lautloser Weckruf um <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Weniger dringende Benachrichtigungen unten"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Zum Öffnen erneut berühren"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Zum Entsperren nach oben wischen"</string> - <string name="phone_hint" msgid="4872890986869209950">"Zum Öffnen des Telefons vom Symbol wegwischen"</string> - <string name="voice_hint" msgid="8939888732119726665">"Zum Öffnen des Sprachassistenten vom Symbol wegwischen"</string> - <string name="camera_hint" msgid="7939688436797157483">"Zum Öffnen der Kamera vom Symbol wegwischen"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Lautlos. Damit werden auch Screenreader stummgeschaltet."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Lautlos"</string> + <string name="phone_hint" msgid="3101468054914424646">"Zum Öffnen des Telefons nach rechts wischen"</string> + <string name="camera_hint" msgid="5241441720959174226">"Zum Öffnen der Kamera nach links wischen"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Keine Unterbrechungen"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Nur wichtige Unterbrechungen"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Nur Wecker"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Laut-\nlos"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Keine\nUnterbrechungen"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Nur\nwichtige"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Nur\nWecker"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Wird aufgeladen (voll in <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Nutzer wechseln"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Nutzer wechseln. Aktueller Nutzer: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Aktueller Nutzer <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Profil öffnen"</string> <string name="user_add_user" msgid="5110251524486079492">"Nutzer hinzufügen"</string> <string name="user_new_user_name" msgid="426540612051178753">"Neuer Nutzer"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Von vorn"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, weiter"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gastnutzer"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Zum Löschen von Apps und Daten Gastnutzer entfernen"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Entfernen Sie den Gast, um Apps und Daten zu löschen."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"Gast entfernen"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Neuen Nutzer hinzufügen?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Wenn Sie einen neuen Nutzer hinzufügen, muss dieser seinen Bereich einrichten.\n\nJeder Nutzer kann Apps für alle anderen Nutzer aktualisieren."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN deaktivieren"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN-Verbindung trennen"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Ihr Gerät wird verwaltet von <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nIhr Administrator kann die zu Ihrem Gerät gehörigen Einstellungen, Unternehmenszugriffsrechte, Apps und Daten überwachen und verwalten, einschließlich der Standortinformationen Ihres Geräts. Weitere Informationen erhalten Sie bei Ihrem Administrator."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Sie haben einer App gestattet, eine VPN-Verbindung einzurichten.\n\nDiese App kann Ihr Gerät und Ihre Netzwerkaktivitäten überwachen, einschließlich E-Mails, Apps und Websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Ihr Arbeitsprofil wird verwaltet von <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nIhr Administrator kann Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Ihr Gerät wird verwaltet von:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nIhr Arbeitsprofil wird verwaltet von:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nIhr Administrator kann Ihr Gerät und Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Sie haben einer App gestattet, eine VPN-Verbindung herzustellen.\n\nDiese App kann Ihr Gerät und Ihre Netzwerkaktivitäten überwachen, einschließlich E-Mails, Apps und sicherer Websites."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Ihr Gerät wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet.\n\nIhr Administrator kann die zu Ihrem Gerät gehörigen Einstellungen, Unternehmenszugriffsrechte, Apps und Daten überwachen und verwalten, einschließlich der Standortinformationen Ihres Geräts.\n\nSie sind zudem mit einem VPN verbunden, das Ihre persönliche Netzwerkaktivität überwachen kann, einschließlich E-Mails, Apps und Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Ihr Arbeitsprofil wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet.\n\nIhr Administrator kann Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator.\n\nSie sind zudem mit einem VPN verbunden, das Ihre persönliche Netzwerkaktivität überwachen kann."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Sie sind mit der App <xliff:g id="APPLICATION">%1$s</xliff:g> verbunden, die Ihre Netzwerkaktivität überwachen kann, einschließlich E-Mails, Apps und Websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Sie sind mit der App <xliff:g id="APPLICATION">%1$s</xliff:g> verbunden, die Ihre persönliche Netzwerkaktivität überwachen kann, einschließlich E-Mails, Apps und Websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Ihr Arbeitsprofil wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet. Das Profil ist mit der App <xliff:g id="APPLICATION">%2$s</xliff:g> verbunden, die Ihre geschäftlichen Netzwerkaktivitäten überwachen kann, einschließlich E-Mails, Apps und Websites.\n\nWeitere Informationen erhalten Sie von Ihrem Administrator."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Ihr Arbeitsprofil wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet. Das Profil ist mit der App <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> verbunden, die Ihre geschäftliche Netzwerkaktivität überwachen kann, einschließlich E-Mails, Apps und Websites.\n\nSie sind außerdem mit der App <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> verbunden, die Ihre persönliche Netzwerkaktivität überwachen kann."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Ihr Gerät wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet.\n\nIhr Administrator kann die zu Ihrem Gerät gehörigen Einstellungen, Unternehmenszugriffsrechte, Apps und Daten überwachen und verwalten, einschließlich der Standortinformationen Ihres Geräts.\n\nSie sind mit der App <xliff:g id="APPLICATION">%2$s</xliff:g> verbunden, die Ihre persönlichen Netzwerkaktivität überwachen kann, einschließlich E-Mails, Apps und Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Ihr Arbeitsprofil wird von <xliff:g id="ORGANIZATION">%1$s</xliff:g> verwaltet.\n\nIhr Administrator kann Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator.\n\nSie sind zudem mit einem VPN verbunden, das Ihre persönliche Netzwerkaktivität überwachen kann."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Ihr Gerät wird verwaltet von <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nIhr Arbeitsprofil wird verwaltet von:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nIhr Administrator kann Ihre Netzwerkaktivität überwachen, einschließlich E-Mails, Apps und sicherer Websites.\n\nWeitere Informationen erhalten Sie bei Ihrem Administrator.\n\nSie sind zudem mit einem VPN verbunden, das Ihre persönliche Netzwerkaktivität überwachen kann."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Das Gerät bleibt gesperrt, bis Sie es manuell entsperren."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Benachrichtigungen schneller erhalten"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Vor dem Entsperren anzeigen"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Alle anzeigen"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Alle ausblenden"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Jetzt beenden"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Maximieren"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Minimieren"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Bildschirm ist fixiert"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Der Bildschirm wird solange angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Zurück\" und \"Übersicht\" gleichzeitig, um die Fixierung aufzuheben."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Der Bildschirm wird solange angezeigt, bis Sie die Fixierung aufheben. Berühren und halten Sie \"Übersicht\", wenn Sie die Fixierung aufheben möchten."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ablehnen"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> regelt die Lautstärke."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Zum Wiederherstellen des Originals hier tippen"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Sie verwenden Ihr Arbeitsprofil."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Eingebettete Akku-Prozentzahl anzeigen"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Prozentzahl für Akkustand in Statusleistensymbol anzeigen, wenn das Gerät nicht geladen wird"</string> - <string name="quick_settings" msgid="10042998191725428">"Schnelleinstellungen"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusleiste"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demomodus"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Demomodus aktivieren"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Demomodus anzeigen"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Wecker"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Arbeitsprofil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Flugmodus"</string> - <string name="add_tile" msgid="2995389510240786221">"Kachel hinzufügen"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Broadcast-Kachel"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Sie erhalten einen lautlosen Weckruf <xliff:g id="WHEN">%1$s</xliff:g>, wenn Sie ihn nicht vorher ausschalten."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Lautloser Weckruf <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"um <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"am <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Schnelleinstellungen (<xliff:g id="TITLE">%s</xliff:g>)"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Arbeitsprofil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Für einige ein Vergnügen, aber nicht für alle"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Mit System UI Tuner erhalten Sie zusätzliche Möglichkeiten, die Android-Benutzeroberfläche anzupassen. Achtung: Diese Testfunktionen können sich ändern, abstürzen oder in zukünftigen Versionen verschwinden."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Achtung: Diese Testfunktionen können sich ändern, abstürzen oder in zukünftigen Versionen verschwinden."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Herzlichen Glückwunsch! System UI Tuner wurde \"Einstellungen\" hinzugefügt."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Aus \"Einstellungen\" entfernen"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"System UI Tuner aus \"Einstellungen\" entfernen und die Verwendung von allen zugehörigen Funktionen beenden?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Sie befinden sich im Arbeitsprofil."</string> </resources> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index f1b9b2b2acd2..5d3adf7b4158 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -20,15 +20,15 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="7164937344850004466">"UI συστήματ."</string> - <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Διαγραφή"</string> + <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Εκκαθάριση"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Κατάργηση από τη λίστα"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Πληροφορίες εφαρμογής"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Οι πρόσφατες οθόνες σας εμφανίζονται εδώ"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Παράβλεψη πρόσφατων εφαρμογών"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 οθόνη στην Επισκόπηση"</item> - <item quantity="other" msgid="5523506463832158203">"%d οθόνες στην Επισκόπηση"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d οθόνες στην Επισκόπηση</item> + <item quantity="one">1 οθόνη στην Επισκόπηση</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Δεν υπάρχουν ειδοποιήσεις"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Εν εξελίξει"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Ειδοποιήσεις"</string> @@ -41,7 +41,7 @@ <string name="battery_low_why" msgid="4553600287639198111">"Ρυθμίσεις"</string> <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Να ενεργοποιηθεί η εξοικονόμηση μπαταρίας;"</string> <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Ενεργοποίηση"</string> - <string name="battery_saver_start_action" msgid="5576697451677486320">"Ενερ. της εξοικ/σης μπαταρίας"</string> + <string name="battery_saver_start_action" msgid="5576697451677486320">"Ενεργοποίηση της εξοικονόμησης μπαταρίας"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Ρυθμίσεις"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Αυτόματη περιστροφή οθόνης"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Να επιτρέπεται ο εντοπισμός σφαλμάτων USB;"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Το μοναδικό χαρακτηριστικό του κλειδιού RSA είναι:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Να επιτρέπεται πάντα από αυτόν τον υπολογιστή"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Δεν επιτρέπεται ο εντοπισμός σφαλμάτων USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Ο χρήστης που είναι συνδεδεμένος αυτήν τη στιγμή σε αυτήν τη συσκευή δεν μπορεί να ενεργοποιήσει τον εντοπισμό σφαλμάτων USB. Για να χρησιμοποιήσετε αυτήν τη λειτουργία, κάντε εναλλαγή στον κύριο χρήστη \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Ζουμ σε πλήρη οθόνη"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Προβoλή σε πλήρη οθ."</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Αποθήκ. στιγμιότυπου οθόνης..."</string> @@ -79,19 +77,15 @@ <string name="use_ptp_button_title" msgid="7517127540301625751">"Προσάρτηση ως κάμερας (PTP)"</string> <string name="installer_cd_button_title" msgid="2312667578562201583">"Εγκατάστ. της εφαρμ. μεταφ.αρχείων Android για Mac"</string> <string name="accessibility_back" msgid="567011538994429120">"Πίσω"</string> - <string name="accessibility_home" msgid="8217216074895377641">"Αρχική οθόνη"</string> + <string name="accessibility_home" msgid="8217216074895377641">"Αρχική σελίδα"</string> <string name="accessibility_menu" msgid="316839303324695949">"Μενού"</string> <string name="accessibility_recent" msgid="5208608566793607626">"Επισκόπηση"</string> <string name="accessibility_search_light" msgid="1103867596330271848">"Αναζήτηση"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Φωτογραφική μηχανή"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Τηλέφωνο"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Φωνητική υποβοήθηση"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Ξεκλείδωμα"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Κουμπί ξεκλειδώματος, αναμονή για μοναδικό χαρακτηριστικό"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Ξεκλείδωμα χωρίς τη χρήση του μοναδικού χαρακτηριστικού σας"</string> <string name="unlock_label" msgid="8779712358041029439">"ξεκλείδωμα"</string> <string name="phone_label" msgid="2320074140205331708">"άνοιγμα τηλεφώνου"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"άνοιγμα φωνητικής υποβοήθησης"</string> <string name="camera_label" msgid="7261107956054836961">"άνοιγμα φωτογραφικής μηχανής"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Επιλέξτε τη νέα διάταξη εργασίας"</string> <string name="cancel" msgid="6442560571259935130">"Ακύρωση"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Δύο γραμμές δεδομένων."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Τρεις γραμμές δεδομένων."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Πλήρες σήμα δεδομένων."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi ανενεργό."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Το Wifi έχει αποσυνδεθεί."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Μία γραμμή WiFi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Δύο γραμμές WiFi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Τρεις γραμμές WiFi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Πλήρες σήμα WiFi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Συνδέθηκε στο <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Συνδέθηκε στο <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Δεν υπάρχει σήμα WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Σήμα WiMAX δύο γραμμές."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Σήμα WiMAX τρεις γραμμές."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Πλήρες σήμα WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Το Ethernet αποσυνδέθηκε."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Το Ethernet συνδέθηκε."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Δεν υπάρχει σήμα."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Δεν έχει συνδεθεί."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Μηδέν γραμμές."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Δεν υπάρχει SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Πρόσδεση Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Λειτουργία πτήσης."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Δεν υπάρχει κάρτα SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Αλλαγή δικτύου εταιρείας κινητής τηλεφωνίας."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Απορρίφθηκαν <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Έγινε παράβλεψη όλων των πρόσφατων εφαρμογών."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Έναρξη <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Η ειδοποίηση έχει απορριφθεί."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Πλαίσιο σκίασης ειδοποιήσεων."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Γρήγορες ρυθμίσεις."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Κλείδωμα οθόνης."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ρυθμίσεις"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Επισκόπηση."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Κλείσιμο"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Επιβεβαίωση"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Χρήστης <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Το Wi-fi απενεργοποιήθηκε."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Η λειτουργία πτήσης απενεργοποιήθηκε."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Ενεργή λειτουργία πτήσης."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Η λειτουργία \"Μην ενοχλείτε\" ενεργοποιήθηκε, μόνο προτεραιότητας."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Η λειτουργία \"Μην ενοχλείτε\" ενεργοποιήθηκε, πλήρης σίγαση."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Η λειτουργία \"Μην ενοχλείτε\" ενεργοποιήθηκε, χωρίς διακοπές."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Μην ενοχλείτε, μόνο ειδοποιήσεις."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Η λειτουργία \"Μην ενοχλείτε\" απενεργοποιήθηκε."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Η λειτουργία \"Μην ενοχλείτε\" απενεργοποιήθηκε."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Μην ενοχλείτε"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Μόνο προτεραιότητας"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Μόνο ειδοποιήσεις"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Πλήρης σίγαση"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Χωρίς διακοπές"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> συσκευές)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Απενεργοποιημένο Bluetooth"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Μη συνδεδεμένο"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Κανένα δίκτυο"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ανενεργό"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Δεν υπάρχουν διαθέσιμα δίκτυα Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Δεν υπάρχουν διαθέσιμα αποθηκευμένα δίκτυα"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Μετάδοση"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Μετάδοση"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Ανώνυμη συσκευή"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Αναζήτηση"</string> <string name="description_direction_up" msgid="7169032478259485180">"Κύλιση προς τα επάνω για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Κύλιση προς τα αριστερά για <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Δεν θα διακόπτεστε από ήχους και δονήσεις, με εξαίρεση τα ξυπνητήρια, τις υπενθυμίσεις, τα συμβάντα και τους καλούντες που έχετε ορίσει."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Χωρίς διακοπές. Ούτε ειδοποιήσεις,"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Δεν θα διακόπτεστε από ήχους και δονήσεις, με εξαίρεση τα ξυπνητήρια, τις υπενθυμίσεις, τα συμβάντα και τους καλούντες που έχετε ορίσει."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Προσαρμογή"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Αυτή η επιλογή αποκλείει όλους τους ήχους και τις δονήσεις, μεταξύ των οποίων των ξυπνητηριών, της μουσικής, των βίντεο και των παιχνιδιών. Θα εξακολουθείτε να είστε σε θέση να πραγματοποιήσετε τηλεφωνικές κλήσεις."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Αυτή η επιλογή αποκλείει όλους τους ήχους και τις δονήσεις, μεταξύ των οποίων των ξυπνητηριών, της μουσικής, των βίντεο και των παιχνιδιών."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Χωρίς διακοπές"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Μόνο διακοπές προτεραιότητας"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Μόνο ειδοποιήσεις"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Το επόμενο ξυπνητήρι είναι στις <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Το επόμενο ξυπνητήρι είναι στις <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Δεν θα ακούτε το ξυπνητήρι σας στις <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Λιγότερο επείγουσες ειδοποιήσεις παρακάτω"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Αγγίξτε ξανά για άνοιγμα"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Σύρετε για να ξεκλειδώσετε"</string> - <string name="phone_hint" msgid="4872890986869209950">"Σύρετε προς τα έξω για τηλέφωνο"</string> - <string name="voice_hint" msgid="8939888732119726665">"Σύρετε προς τα έξω για voice assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Σύρετε προς τα έξω για κάμερα"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Πλήρης σίγαση. Η ρύθμιση θα ισχύει και για τους αναγνώστες οθόνης."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Πλήρης σίγαση"</string> + <string name="phone_hint" msgid="3101468054914424646">"Σύρετε προς τα δεξιά για το τηλέφωνο"</string> + <string name="camera_hint" msgid="5241441720959174226">"Σύρετε αριστερά για τη φωτογραφική μηχανή"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Χωρίς διακοπές"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Μόνο προτεραιότητας"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Μόνο ειδοποιήσεις"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Πλήρης\nσίγαση"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Όλα"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Χωρίς\nδιακοπές"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Μόνο\nπροτεραιότητας"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Μόνο\nειδοποιήσεις"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Φόρτιση (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> για πλήρη φόρτιση)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Εναλλαγή χρήστη"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Εναλλαγή χρήστη, τρέχων χρήστης <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Τρέχων χρήστης <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Εμφάνιση προφίλ"</string> <string name="user_add_user" msgid="5110251524486079492">"Προσθήκη χρήστη"</string> <string name="user_new_user_name" msgid="426540612051178753">"Νέος χρήστης"</string> @@ -344,13 +343,13 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Έναρξη από την αρχή"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ναι, συνέχεια"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Χρήστης-επισκέπτης"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Για διαγρ. εφαρμ. και δεδομένων, καταργ. το χρήστη-επισκέπτη"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Κατάργηση επισκέπτη για διαγραφή εφαρμογών και δεδομένων"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ΚΑΤΑΡΓΗΣΗ ΕΠΙΣΚΕΠΤΗ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Προσθήκη νέου χρήστη;"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Κατά την προσθήκη ενός νέου χρήστη, αυτός θα πρέπει να ρυθμίσει το χώρο του.\n\nΟποιοσδήποτε χρήστης μπορεί να ενημερώσει τις εφαρμογές για όλους τους άλλους χρήστες."</string> <string name="battery_saver_notification_title" msgid="237918726750955859">"Η Εξοικονόμηση μπαταρίας είναι ενεργή"</string> <string name="battery_saver_notification_text" msgid="820318788126672692">"Μειώνει την απόδοση και τα δεδομένα παρασκηνίου"</string> - <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Απενερ. εξοικ/σης μπαταρίας"</string> + <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Απενεργοποίηση εξοικονόμησης μπαταρίας"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"Κρυφό περιεχόμενο"</string> <string name="media_projection_dialog_text" msgid="3071431025448218928">"Θα ξεκινήσει η καταγραφή του περιεχομένου που εμφανίζεται στην οθόνη σας από την εφαρμογή <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g>."</string> <string name="media_projection_remember_text" msgid="3103510882172746752">"Να μην εμφανιστεί ξανά"</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Απενεργοποίηση VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Αποσύνδεση VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Η διαχείριση αυτής της συσκευής γίνεται από <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nΟ διαχειριστής σας έχει τη δυνατότητα να παρακολουθεί και να διαχειρίζεται τις ρυθμίσεις, την εταιρική πρόσβαση, τις εφαρμογές και τα δεδομένα που σχετίζονται με αυτήν τη συσκευή, συμπεριλαμβανομένων των πληροφοριών τοποθεσίας της συσκευής σας. Για περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή σας."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Παραχωρήσατε σε μια εφαρμογή άδεια για τη ρύθμιση σύνδεσης VPN.\n\nΑυτή η εφαρμογή μπορεί να παρακολουθεί τη δραστηριότητα της συσκευής και του δικτύου σας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Η διαχείριση του προφίλ εργασίας γίνεται από <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nΟ διαχειριστής μπορεί να παρακολουθεί τη δραστηριότητα δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΓια πληροφορίες, επικοινωνήστε με το διαχειριστή."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Η διαχείριση της συσκευής γίνεται από:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nΗ διαχείριση του προφίλ εργασίας σας γίνεται από:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nΟ διαχειριστής μπορεί να παρακολουθεί τη συσκευή και τη δραστηριότητα δικτύου σας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Παραχωρήσατε σε μια εφαρμογή άδεια για τη δημιουργία σύνδεσης VPN.\n\nΑυτή η εφαρμογή μπορεί να παρακολουθεί τη δραστηριότητα της συσκευής σας και του δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Η διαχείριση αυτής της συσκευής γίνεται από <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nΟ διαχειριστής σας έχει τη δυνατότητα να παρακολουθεί και να διαχειρίζεται τις ρυθμίσεις, την εταιρική πρόσβαση, τις εφαρμογές και τα δεδομένα που σχετίζονται με αυτήν τη συσκευή, συμπεριλαμβανομένων των πληροφοριών τοποθεσίας της συσκευής σας.\n\nΕίστε επίσης συνδεδεμένοι σε ένα VPN, το οποίο μπορεί να παρακολουθεί τη δραστηριότητα δικτύου σας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων.\n\nΓια περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή σας."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Η διαχείριση του προφίλ εργασίας γίνεται από τον οργανισμό <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nΟ διαχειριστής έχει τη δυνατότητα παρακολούθησης της δραστηριότητας του δικτύου σας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων.\n\nΓια περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή.\n\nΕπίσης, είστε συνδεδεμένοι σε VPN, το οποίο μπορεί να παρακολουθεί τη δραστηριότητα του δικτύου σας."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Έχετε συνδεθεί στην εφαρμογή <xliff:g id="APPLICATION">%1$s</xliff:g>, η οποία μπορεί να παρακολουθεί τη δραστηριότητα του δικτύου σας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Έχετε συνδεθεί στην εφαρμογή <xliff:g id="APPLICATION">%1$s</xliff:g>, η οποία μπορεί να παρακολουθεί τη δραστηριότητα του προσωπικού σας δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Η διαχείριση του προφίλ εργασίας γίνεται από τον οργανισμό <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Είναι συνδεδεμένο στην εφαρμογή <xliff:g id="APPLICATION">%2$s</xliff:g>, η οποία μπορεί να παρακολουθεί τη δραστηριότητα του δικτύου εργασίας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων.\n\nΓια περισσότερες πληροφορίες, επικοινωνήστε με το διαχειριστή."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Η διαχείριση του προφίλ εργασίας γίνεται από τον οργανισμό <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Είναι συνδεδεμένο στην εφαρμογή <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, η οποία μπορεί να παρακολουθεί τη δραστηριότητα του δικτύου εργασίας, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ιστότοπων.\n\nΕπίσης, είστε συνδεδεμένοι στην εφαρμογή <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, η οποία μπορεί να παρακολουθεί τη δραστηριότητα του προσωπικού σας δικτύου."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Η διαχείριση της συσκευής γίνεται από <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nΟ διαχειριστής μπορεί να παρακολουθεί και να διαχειρίζεται ρυθμίσεις, εταιρική πρόσβαση, εφαρμογές, δεδομένα σχετικά με τη συσκευή και πληρ. τοποθεσίας της συσκευής.\n\nΕίστε συνδεδ. σε <xliff:g id="APPLICATION">%2$s</xliff:g> που μπορεί να παρακολουθεί τη δραστηρ. του δικτύου εργασίας, όπως μηνύματα ηλεκτρ. ταχυδρομείου, εφαρμογές και ιστότοπους.\n\nΓια περισ. πληροφορίες, επικοινωνήστε με το διαχειριστή."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Η διαχείριση του προφίλ εργασίας γίνεται από <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nΟ διαχειριστής μπορεί να παρακολουθεί τη δραστηριότητα δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΓια πληροφορίες, επικοινωνήστε με το διαχειριστή.\n\nΕίστε επίσης συνδεδεμένοι σε ένα VPN, το οποίο μπορεί να παρακολουθεί τη δραστηριότητα δικτύου σας."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Η διαχείριση της συσκευής σας γίνεται από <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nΗ διαχείριση του προφίλ εργασίας σας γίνεται από:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nΟ διαχειριστής μπορεί να παρακολουθεί τη δραστηριότητα δικτύου, συμπεριλαμβανομένων μηνυμάτων ηλεκτρονικού ταχυδρομείου, εφαρμογών και ασφαλών ιστότοπων.\n\nΓια πληροφορίες, επικοινωνήστε με το διαχειριστή σας.\n\nΕίστε επίσης συνδεδεμένοι σε ένα VPN, το οποίο μπορεί να παρακολουθεί τη δραστηριότητα δικτύου σας."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Η συσκευή θα παραμείνει κλειδωμένη έως ότου την ξεκλειδώσετε μη αυτόματα"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Λάβετε ειδοποιήσεις γρηγορότερα"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Εμφάνιση πριν το ξεκλείδωμα"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Εμφάνιση όλων"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Aπόκρυψη όλων"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Τερματισμός τώρα"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Ανάπτυξη"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Σύμπτυξη"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Η οθόνη καρφιτσώθηκε"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Με αυτόν τον τρόπο παραμένει σε προβολή έως ότου την ξεκαρφιτσώσετε. Αγγίξτε παρατεταμένα \"Επιστροφή\" και \"Επισκόπηση\" ταυτόχρονα για ξεκαρφίτσωμα."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Με αυτόν τον τρόπο παραμένει σε προβολή έως ότου την ξεκαρφιτσώσετε. Αγγίξτε παρατεταμένα \"Επισκόπηση\" για ξεκαρφίτσωμα."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Απόρριψη"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"Η εφαρμογή <xliff:g id="APP_NAME">%1$s</xliff:g> αποτελεί το παράθυρο διαλόγου ελέγχου έντασης"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Αγγίξτε για επαναφορά αρχικού."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Χρησιμοποιείτε το προφίλ εργασίας σας"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Εμφάνιση ποσοστού ενσωματωμένης μπαταρίας"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Εμφάνιση ποσοστού επιπέδου μπαταρίας μέσα στο εικονίδιο της γραμμής κατάστασης όταν δεν γίνεται φόρτιση"</string> - <string name="quick_settings" msgid="10042998191725428">"Γρήγορες ρυθμίσεις"</string> - <string name="status_bar" msgid="4877645476959324760">"Γραμμή κατάστασης"</string> - <string name="demo_mode" msgid="2389163018533514619">"Λειτουργία επίδειξης"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Ενεργοποίηση λειτουργίας επίδειξης"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Εμφάνιση λειτουργίας επίδειξης"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Ξυπνητήρι"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Προφίλ εργασίας"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Λειτουργία πτήσης"</string> - <string name="add_tile" msgid="2995389510240786221">"Προσθήκη πλακιδίου"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Μετάδοση πλακιδίου"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Δεν θα ακούσετε το επόμενο ξυπνητήρι σας <xliff:g id="WHEN">%1$s</xliff:g> εκτός κι αν το απενεργοποιήσετε νωρίτερα"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Δεν θα ακούσετε το επόμενο ξυπνητήρι σας <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"στις <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"στις <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Γρήγορες ρυθμίσεις, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Σημείο πρόσβασης Wi-Fi"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Προφίλ εργασίας"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Διασκέδαση για ορισμένους, αλλά όχι για όλους"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Το System UI Tuner σάς προσφέρει επιπλέον τρόπους για να τροποποιήσετε και να προσαρμόσετε τη διεπαφή χρήστη Android. Αυτές οι πειραματικές λειτουργίες ενδέχεται να τροποποιηθούν, να παρουσιάσουν σφάλματα ή να καταργηθούν σε μελλοντικές εκδόσεις. Συνεχίστε με προσοχή."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Αυτές οι πειραματικές λειτουργίες ενδέχεται να τροποποιηθούν, να παρουσιάσουν σφάλματα ή να καταργηθούν σε μελλοντικές εκδόσεις. Συνεχίστε με προσοχή."</string> - <string name="got_it" msgid="2239653834387972602">"Το κατάλαβα"</string> - <string name="tuner_toast" msgid="603429811084428439">"Συγχαρητήρια! Το System UI Tuner προστέθηκε στις Ρυθμίσεις"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Κατάργηση από τις Ρυθμίσεις"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Κατάργηση System UI Tuner από τις Ρυθμίσεις και διακοπή χρήσης όλων των λειτουργιών του;"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Χρησιμοποιείτε προφίλ εργασίας"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml index a6533e8168a6..8bf8cf08e298 100644 --- a/packages/SystemUI/res/values-en-rAU/strings.xml +++ b/packages/SystemUI/res/values-en-rAU/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App info"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Your recent screens appear here"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dismiss recent apps"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 screen in Overview"</item> - <item quantity="other" msgid="5523506463832158203">"%d screens in Overview"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d screens in Overview</item> + <item quantity="one">1 screen in Overview</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No notifications"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Ongoing"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifications"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Allow USB debugging?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"The computer\'s RSA key fingerprint is:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Always allow from this computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB debugging not allowed"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom to fill screen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stretch to fill screen"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Saving screenshot…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Phone"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Unlock"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Unlock button, waiting for fingerprint"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Unlock without using your fingerprint"</string> <string name="unlock_label" msgid="8779712358041029439">"unlock"</string> <string name="phone_label" msgid="2320074140205331708">"open phone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"open voice assist"</string> <string name="camera_label" msgid="7261107956054836961">"open camera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Select new task layout"</string> <string name="cancel" msgid="6442560571259935130">"Cancel"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data two bars."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data three bars."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Data signal full."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi off."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi disconnected."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi one bar."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi two bars."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi three bars."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi signal full."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Connected to <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"No WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX two bars."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX three bars."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX signal full."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet disconnected."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet connected."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"No signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Not connected."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Zero bars."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"No SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tethering"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Aeroplane mode"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"No SIM card."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Carrier network changing."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Battery <xliff:g id="NUMBER">%d</xliff:g> per cent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"System settings"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> dismissed."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"All recent applications dismissed."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Starting <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification dismissed."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Quick settings."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Close"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirm"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi turned off."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Aeroplane mode turned off."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Aeroplane mode turned on."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'Do not disturb\' on, priority only."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Do not disturb on, total silence."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'Do not disturb\' on, no interruptions."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Do not disturb on, alarms only."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'Do not disturb\' off."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'Do not disturb\' turned off."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Do not disturb"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priority only"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarms only"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Total silence"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"No interruptions"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Devices)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Off"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Not Connected"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"No Wi-Fi networks available"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No saved networks available"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unnamed device"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Search"</string> <string name="description_direction_up" msgid="7169032478259485180">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"You won’t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers that you specify."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers that you specify."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Customise"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"This blocks ALL sounds and vibrations, including from alarms, music, videos and games. You’ll still be able to make phone calls."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"This blocks ALL sounds and vibrations, including from alarms, music, videos and games."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Your next alarm is at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Your next alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Less urgent notifications below"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Touch again to open"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string> - <string name="phone_hint" msgid="4872890986869209950">"Swipe from icon for phone"</string> - <string name="voice_hint" msgid="8939888732119726665">"Swipe from icon for voice assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Swipe from icon for camera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Total silence. This will also silence screen readers."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Total silence"</string> + <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string> + <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"No interruptions"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Priority only"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarms only"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Total\nsilence"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"All"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"No\ninterruptions"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priority\nonly"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarms\nonly"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Switch user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Switch user, current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Show profile"</string> <string name="user_add_user" msgid="5110251524486079492">"Add user"</string> <string name="user_new_user_name" msgid="426540612051178753">"New user"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start again"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yes, continue"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Guest user"</string> - <string name="guest_notification_text" msgid="335747957734796689">"To delete apps and data, remove guest user"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Remove guest to delete apps and data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"REMOVE GUEST"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Add new user?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Disable VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Disconnect VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device and your device\'s location information. For more information, contact your administrator."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Your device is managed by:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nYour work profile is managed by:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and secure websites."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device and your device\'s location information.\n\nYou\'re connected to a VPN, which can monitor your network activity, including emails, apps and websites.\n\nFor more information, contact your administrator."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps, and websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your network activity."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"You\'re connected to <xliff:g id="APPLICATION">%1$s</xliff:g>, which can monitor your network activity including emails, apps and websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"You\'re connected to <xliff:g id="APPLICATION">%1$s</xliff:g>, which can monitor your personal network activity, including emails, apps and websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>. It is connected to <xliff:g id="APPLICATION">%2$s</xliff:g>, which can monitor your work network activity, including emails, apps and websites.\n\nFor more information, contact your administrator."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>. It is connected to <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, which can monitor your work network activity, including emails, apps and websites.\n\nYou\'re also connected to <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, which can monitor your personal network activity."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device, and your device\'s location information.\n\nYou\'re connected to <xliff:g id="APPLICATION">%2$s</xliff:g>, which can monitor your network activity, including emails, apps, and websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your network activity."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Your device is managed by <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nYour work profile is managed by:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your personal network activity"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Device will stay locked until you manually unlock"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Get notifications faster"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"See them before you unlock"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"See all"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Hide all"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"End now"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expand"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Collapse"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Screen is pinned"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"This keeps it in view until you unpin. Touch and hold Back and Overview at the same time to unpin."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"This keeps it in view until you unpin. Touch and hold Overview to unpin."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Deny"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"You\'re using your work profile"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Show embedded battery percentage"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Show battery level percentage inside the status bar icon when not charging"</string> - <string name="quick_settings" msgid="10042998191725428">"Quick Settings"</string> - <string name="status_bar" msgid="4877645476959324760">"Status bar"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo mode"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Enable demo mode"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Show demo mode"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Work profile"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Aeroplane mode"</string> - <string name="add_tile" msgid="2995389510240786221">"Add tile"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Broadcast Tile"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g> unless you turn this off before then"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Quick Settings, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Work profile"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Fun for some but not for all"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner gives you extra ways to tweak and customise the Android user interface. These experimental features may change, break or disappear in future releases. Proceed with caution."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"These experimental features may change, break or disappear in future releases. Proceed with caution."</string> - <string name="got_it" msgid="2239653834387972602">"Understood"</string> - <string name="tuner_toast" msgid="603429811084428439">"Congrats! System UI Tuner has been added to Settings"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Remove from settings"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Remove System UI Tuner from Settings and stop using all of its features?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"You are in the Work profile"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index a6533e8168a6..8bf8cf08e298 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App info"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Your recent screens appear here"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dismiss recent apps"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 screen in Overview"</item> - <item quantity="other" msgid="5523506463832158203">"%d screens in Overview"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d screens in Overview</item> + <item quantity="one">1 screen in Overview</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No notifications"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Ongoing"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifications"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Allow USB debugging?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"The computer\'s RSA key fingerprint is:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Always allow from this computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB debugging not allowed"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom to fill screen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stretch to fill screen"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Saving screenshot…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Phone"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Unlock"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Unlock button, waiting for fingerprint"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Unlock without using your fingerprint"</string> <string name="unlock_label" msgid="8779712358041029439">"unlock"</string> <string name="phone_label" msgid="2320074140205331708">"open phone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"open voice assist"</string> <string name="camera_label" msgid="7261107956054836961">"open camera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Select new task layout"</string> <string name="cancel" msgid="6442560571259935130">"Cancel"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data two bars."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data three bars."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Data signal full."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi off."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi disconnected."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi one bar."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi two bars."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi three bars."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi signal full."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Connected to <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"No WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX two bars."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX three bars."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX signal full."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet disconnected."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet connected."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"No signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Not connected."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Zero bars."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"No SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tethering"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Aeroplane mode"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"No SIM card."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Carrier network changing."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Battery <xliff:g id="NUMBER">%d</xliff:g> per cent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"System settings"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> dismissed."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"All recent applications dismissed."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Starting <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification dismissed."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Quick settings."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Close"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirm"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi turned off."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Aeroplane mode turned off."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Aeroplane mode turned on."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'Do not disturb\' on, priority only."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Do not disturb on, total silence."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'Do not disturb\' on, no interruptions."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Do not disturb on, alarms only."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'Do not disturb\' off."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'Do not disturb\' turned off."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Do not disturb"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priority only"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarms only"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Total silence"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"No interruptions"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Devices)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Off"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Not Connected"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"No Wi-Fi networks available"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No saved networks available"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unnamed device"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Search"</string> <string name="description_direction_up" msgid="7169032478259485180">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"You won’t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers that you specify."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers that you specify."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Customise"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"This blocks ALL sounds and vibrations, including from alarms, music, videos and games. You’ll still be able to make phone calls."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"This blocks ALL sounds and vibrations, including from alarms, music, videos and games."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Your next alarm is at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Your next alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Less urgent notifications below"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Touch again to open"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string> - <string name="phone_hint" msgid="4872890986869209950">"Swipe from icon for phone"</string> - <string name="voice_hint" msgid="8939888732119726665">"Swipe from icon for voice assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Swipe from icon for camera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Total silence. This will also silence screen readers."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Total silence"</string> + <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string> + <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"No interruptions"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Priority only"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarms only"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Total\nsilence"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"All"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"No\ninterruptions"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priority\nonly"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarms\nonly"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Switch user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Switch user, current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Show profile"</string> <string name="user_add_user" msgid="5110251524486079492">"Add user"</string> <string name="user_new_user_name" msgid="426540612051178753">"New user"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start again"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yes, continue"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Guest user"</string> - <string name="guest_notification_text" msgid="335747957734796689">"To delete apps and data, remove guest user"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Remove guest to delete apps and data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"REMOVE GUEST"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Add new user?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Disable VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Disconnect VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device and your device\'s location information. For more information, contact your administrator."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Your device is managed by:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nYour work profile is managed by:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and secure websites."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device and your device\'s location information.\n\nYou\'re connected to a VPN, which can monitor your network activity, including emails, apps and websites.\n\nFor more information, contact your administrator."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps, and websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your network activity."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"You\'re connected to <xliff:g id="APPLICATION">%1$s</xliff:g>, which can monitor your network activity including emails, apps and websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"You\'re connected to <xliff:g id="APPLICATION">%1$s</xliff:g>, which can monitor your personal network activity, including emails, apps and websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>. It is connected to <xliff:g id="APPLICATION">%2$s</xliff:g>, which can monitor your work network activity, including emails, apps and websites.\n\nFor more information, contact your administrator."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>. It is connected to <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, which can monitor your work network activity, including emails, apps and websites.\n\nYou\'re also connected to <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, which can monitor your personal network activity."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device, and your device\'s location information.\n\nYou\'re connected to <xliff:g id="APPLICATION">%2$s</xliff:g>, which can monitor your network activity, including emails, apps, and websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your network activity."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Your device is managed by <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nYour work profile is managed by:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your personal network activity"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Device will stay locked until you manually unlock"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Get notifications faster"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"See them before you unlock"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"See all"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Hide all"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"End now"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expand"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Collapse"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Screen is pinned"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"This keeps it in view until you unpin. Touch and hold Back and Overview at the same time to unpin."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"This keeps it in view until you unpin. Touch and hold Overview to unpin."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Deny"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"You\'re using your work profile"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Show embedded battery percentage"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Show battery level percentage inside the status bar icon when not charging"</string> - <string name="quick_settings" msgid="10042998191725428">"Quick Settings"</string> - <string name="status_bar" msgid="4877645476959324760">"Status bar"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo mode"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Enable demo mode"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Show demo mode"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Work profile"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Aeroplane mode"</string> - <string name="add_tile" msgid="2995389510240786221">"Add tile"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Broadcast Tile"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g> unless you turn this off before then"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Quick Settings, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Work profile"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Fun for some but not for all"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner gives you extra ways to tweak and customise the Android user interface. These experimental features may change, break or disappear in future releases. Proceed with caution."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"These experimental features may change, break or disappear in future releases. Proceed with caution."</string> - <string name="got_it" msgid="2239653834387972602">"Understood"</string> - <string name="tuner_toast" msgid="603429811084428439">"Congrats! System UI Tuner has been added to Settings"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Remove from settings"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Remove System UI Tuner from Settings and stop using all of its features?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"You are in the Work profile"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index a6533e8168a6..8bf8cf08e298 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App info"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Your recent screens appear here"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dismiss recent apps"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 screen in Overview"</item> - <item quantity="other" msgid="5523506463832158203">"%d screens in Overview"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d screens in Overview</item> + <item quantity="one">1 screen in Overview</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No notifications"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Ongoing"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifications"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Allow USB debugging?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"The computer\'s RSA key fingerprint is:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Always allow from this computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB debugging not allowed"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"The user currently signed in to this device can\'t turn on USB debugging. To use this feature, switch to the primary user “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom to fill screen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stretch to fill screen"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Saving screenshot…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Search"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Phone"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Unlock"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Unlock button, waiting for fingerprint"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Unlock without using your fingerprint"</string> <string name="unlock_label" msgid="8779712358041029439">"unlock"</string> <string name="phone_label" msgid="2320074140205331708">"open phone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"open voice assist"</string> <string name="camera_label" msgid="7261107956054836961">"open camera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Select new task layout"</string> <string name="cancel" msgid="6442560571259935130">"Cancel"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data two bars."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data three bars."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Data signal full."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi off."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi disconnected."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi one bar."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi two bars."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi three bars."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi signal full."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Connected to <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Connected to <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"No WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX two bars."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX three bars."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX signal full."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet disconnected."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet connected."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"No signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Not connected."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Zero bars."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"No SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tethering"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Aeroplane mode"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"No SIM card."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Carrier network changing."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Battery <xliff:g id="NUMBER">%d</xliff:g> per cent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"System settings"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> dismissed."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"All recent applications dismissed."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Starting <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification dismissed."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Quick settings."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Settings"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Close"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirm"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi turned off."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Aeroplane mode turned off."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Aeroplane mode turned on."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'Do not disturb\' on, priority only."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Do not disturb on, total silence."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'Do not disturb\' on, no interruptions."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Do not disturb on, alarms only."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'Do not disturb\' off."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'Do not disturb\' turned off."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Do not disturb"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priority only"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarms only"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Total silence"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"No interruptions"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Devices)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Off"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Not Connected"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Off"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"No Wi-Fi networks available"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No saved networks available"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Unnamed device"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Search"</string> <string name="description_direction_up" msgid="7169032478259485180">"Slide up for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Slide left for <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"You won’t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers that you specify."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"No interruptions. Not even alarms."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"You won\'t be disturbed by sounds and vibrations, except from alarms, reminders, events and callers that you specify."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Customise"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"This blocks ALL sounds and vibrations, including from alarms, music, videos and games. You’ll still be able to make phone calls."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"This blocks ALL sounds and vibrations, including from alarms, music, videos and games."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"No interruptions"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Priority interruptions only"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarms only"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Your next alarm is at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Your next alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"You won\'t hear your alarm at <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Less urgent notifications below"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Touch again to open"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Swipe up to unlock"</string> - <string name="phone_hint" msgid="4872890986869209950">"Swipe from icon for phone"</string> - <string name="voice_hint" msgid="8939888732119726665">"Swipe from icon for voice assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Swipe from icon for camera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Total silence. This will also silence screen readers."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Total silence"</string> + <string name="phone_hint" msgid="3101468054914424646">"Swipe right for phone"</string> + <string name="camera_hint" msgid="5241441720959174226">"Swipe left for camera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"No interruptions"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Priority only"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarms only"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Total\nsilence"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"All"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"No\ninterruptions"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priority\nonly"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarms\nonly"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charging (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> until full)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Switch user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Switch user, current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Current user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Show profile"</string> <string name="user_add_user" msgid="5110251524486079492">"Add user"</string> <string name="user_new_user_name" msgid="426540612051178753">"New user"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start again"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yes, continue"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Guest user"</string> - <string name="guest_notification_text" msgid="335747957734796689">"To delete apps and data, remove guest user"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Remove guest to delete apps and data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"REMOVE GUEST"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Add new user?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"When you add a new user, that person needs to set up their space.\n\nAny user can update apps for all other users."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Disable VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Disconnect VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device and your device\'s location information. For more information, contact your administrator."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Your device is managed by:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nYour work profile is managed by:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYour administrator can monitor your device and network activity, including emails, apps and secure websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"You gave an app permission to set up a VPN connection.\n\nThis app can monitor your device and network activity, including emails, apps and secure websites."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device and your device\'s location information.\n\nYou\'re connected to a VPN, which can monitor your network activity, including emails, apps and websites.\n\nFor more information, contact your administrator."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps, and websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your network activity."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"You\'re connected to <xliff:g id="APPLICATION">%1$s</xliff:g>, which can monitor your network activity including emails, apps and websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"You\'re connected to <xliff:g id="APPLICATION">%1$s</xliff:g>, which can monitor your personal network activity, including emails, apps and websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>. It is connected to <xliff:g id="APPLICATION">%2$s</xliff:g>, which can monitor your work network activity, including emails, apps and websites.\n\nFor more information, contact your administrator."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>. It is connected to <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, which can monitor your work network activity, including emails, apps and websites.\n\nYou\'re also connected to <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, which can monitor your personal network activity."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Your device is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator can monitor and manage settings, corporate access, apps, data associated with your device, and your device\'s location information.\n\nYou\'re connected to <xliff:g id="APPLICATION">%2$s</xliff:g>, which can monitor your network activity, including emails, apps, and websites.\n\nFor more information, contact your administrator."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Your work profile is managed by <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your network activity."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Your device is managed by <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nYour work profile is managed by:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYour administrator is capable of monitoring your network activity including emails, apps and secure websites.\n\nFor more information, contact your administrator.\n\nYou\'re also connected to a VPN, which can monitor your personal network activity"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Device will stay locked until you manually unlock"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Get notifications faster"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"See them before you unlock"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"See all"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Hide all"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"End now"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expand"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Collapse"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Screen is pinned"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"This keeps it in view until you unpin. Touch and hold Back and Overview at the same time to unpin."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"This keeps it in view until you unpin. Touch and hold Overview to unpin."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Deny"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is the volume dialogue"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touch to restore the original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"You\'re using your work profile"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Show embedded battery percentage"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Show battery level percentage inside the status bar icon when not charging"</string> - <string name="quick_settings" msgid="10042998191725428">"Quick Settings"</string> - <string name="status_bar" msgid="4877645476959324760">"Status bar"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo mode"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Enable demo mode"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Show demo mode"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Work profile"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Aeroplane mode"</string> - <string name="add_tile" msgid="2995389510240786221">"Add tile"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Broadcast Tile"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g> unless you turn this off before then"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"You won\'t hear your next alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"at <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"on <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Quick Settings, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Work profile"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Fun for some but not for all"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner gives you extra ways to tweak and customise the Android user interface. These experimental features may change, break or disappear in future releases. Proceed with caution."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"These experimental features may change, break or disappear in future releases. Proceed with caution."</string> - <string name="got_it" msgid="2239653834387972602">"Understood"</string> - <string name="tuner_toast" msgid="603429811084428439">"Congrats! System UI Tuner has been added to Settings"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Remove from settings"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Remove System UI Tuner from Settings and stop using all of its features?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"You are in the Work profile"</string> </resources> diff --git a/packages/SystemUI/res/values-en/donottranslate.xml b/packages/SystemUI/res/values-en/donottranslate.xml new file mode 100644 index 000000000000..9f04e1f50b14 --- /dev/null +++ b/packages/SystemUI/res/values-en/donottranslate.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2015 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<resources> + <!-- DO NOT TRANSLATE - temporary hack to show the speed-less label if no translation is available --> + <item type="string" name="keyguard_indication_charging_time_fast_if_translated">@string/keyguard_indication_charging_time_fast</item> + <!-- DO NOT TRANSLATE - temporary hack to show the speed-less label if no translation is available --> + <item type="string" name="keyguard_indication_charging_time_slowly_if_translated">@string/keyguard_indication_charging_time_slowly</item> +</resources>
\ No newline at end of file diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index d1bd61b3353f..7454a711a67e 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Información de la aplicación"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Las pantallas recientes aparecen aquí."</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Rechazar aplicaciones recientes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 pantalla en Recientes"</item> - <item quantity="other" msgid="5523506463832158203">"%d pantallas en Recientes"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d pantallas en Recientes</item> + <item quantity="one">1 pantalla en Recientes</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No hay notificaciones"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Continuo"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificaciones"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"¿Permitir depuración por USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"La huella digital de tu clave RSA es:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Permitir siempre desde esta computadora"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"No tienes permitida la depuración por USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"El usuario conectado con este dispositivo en este momento no puede activar la depuración por USB. Para usar esta función, debes cambiarte al usuario principal llamado “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom para ocupar la pantalla"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Estirar p/ ocupar la pantalla"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Guardando captura de pantalla"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Teléfono"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Asistente voz"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloquear"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botón Desbloquear, esperando la huella digital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloquear sin utilizar la huella digital"</string> <string name="unlock_label" msgid="8779712358041029439">"desbloquear"</string> <string name="phone_label" msgid="2320074140205331708">"abrir teléfono"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"abrir el asistente de voz"</string> <string name="camera_label" msgid="7261107956054836961">"abrir cámara"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Selecciona el nuevo diseño de la tarea."</string> <string name="cancel" msgid="6442560571259935130">"Cancelar"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dos barras de datos"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tres barras de datos"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Señal de datos completa"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi desactivado"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi desconectado"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Una barra de Wi-Fi"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Dos barras de Wi-Fi"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Tres barras de Wi-Fi"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Señal de Wi-Fi excelente"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Conectado a <xliff:g id="WIFI">%s</xliff:g>"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sin conexión WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dos barras de WiMAX"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Tres barras de WiMAX"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Señal de WiMAX al máximo"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet desconectada"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet conectada"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Sin señal"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"No conectado"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Cero barras"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Sin tarjeta SIM"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Conexión mediante Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avión"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Sin tarjeta SIM"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Cambio de proveedor de red"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> descartada."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Se descartaron todas las aplicaciones recientes."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Iniciando <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificación ignorada"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Pantalla de notificaciones"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configuración rápida"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla bloqueada"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuración"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Recientes"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Cerrar"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmar"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi desactivado"</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Modo de avión desactivado"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modo de avión activado"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"No molestar activado (solo prioridad)"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"No molestar activado, silencio total"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"No molestar activado (sin interrupciones)"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"No molestar activado (solo alarmas)"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"No molestar desactivado"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"No molestar desactivado"</string> @@ -236,12 +232,12 @@ <string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"La pantalla está bloqueada en orientación paisaje."</string> <string name="accessibility_rotation_lock_on_portrait_changed" msgid="8922481981834012126">"La pantalla está bloqueada en orientación retrato."</string> <string name="dessert_case" msgid="1295161776223959221">"Caja para postres"</string> - <string name="start_dreams" msgid="7219575858348719790">"Protector de pantalla"</string> + <string name="start_dreams" msgid="7219575858348719790">"Activar protector"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"No molestar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Solo prioridad"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Solo alarmas"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silencio total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sin interrupciones"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desactivado"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Sin conexión"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sin red"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desactivada"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"No hay redes Wi-Fi disponibles"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No hay redes guardadas disponibles"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Transmitir"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Transmitiendo"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sin nombre"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Buscar"</string> <string name="description_direction_up" msgid="7169032478259485180">"Desliza el dedo hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Desliza el dedo hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"No te molestarán los sonidos ni las vibraciones, excepto que se trate de alarmas, recordatorios, eventos y emisores que especifiques."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sin interrupciones (ni siquiera alarmas)"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"No te molestarán los sonidos ni las vibraciones, excepto que se trate de alarmas, recordatorios, eventos y emisores que especifiques."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Esta acción bloquea TODOS los sonidos y las vibraciones, incluidas las que provienen de alarmas, videos y juegos. Podrás realizar llamadas telefónicas."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Esta acción bloquea TODOS los sonidos y las vibraciones, incluso los que provienen de alarmas, música, videos y juegos."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Sin interrupciones"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interrupciones de prioridad"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Solo alarmas"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Próxima alarma a la(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Próxima alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"No oirás la alarma a la(s) <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificaciones menos urgentes abajo"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Vuelve a tocar para abrir."</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Desliza el dedo hacia arriba para desbloquear el teléfono"</string> - <string name="phone_hint" msgid="4872890986869209950">"Desliza el dedo para desbloquear el teléfono."</string> - <string name="voice_hint" msgid="8939888732119726665">"Desliza el dedo desde el ícono para abrir asistente de voz."</string> - <string name="camera_hint" msgid="7939688436797157483">"Desliza el dedo para acceder a la cámara."</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silencio total. También se silenciarán los lectores de pantalla."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silencio total"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Deslizar el dedo hacia arriba para desbloquear"</string> + <string name="phone_hint" msgid="3101468054914424646">"Desliza hacia la derecha para abrir el teléfono."</string> + <string name="camera_hint" msgid="5241441720959174226">"Desliza hacia la izquierda para acceder a la cámara."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sin interrupciones"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Solo prioridad"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Solo alarmas"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silencio\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Todo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sin\ninterrupciones"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Solo\nprioridad"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Solo\nalarmas"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (faltan <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para completar)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambiar usuario"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambiar de usuario (usuario actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"El usuario actual es <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostrar perfil"</string> <string name="user_add_user" msgid="5110251524486079492">"Agregar usuario"</string> <string name="user_new_user_name" msgid="426540612051178753">"Usuario nuevo"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Volver a empezar"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sí, continuar"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Usuario invitado"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Para borrar aplicaciones y datos, quita el usuario invitado"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Para borrar las aplicaciones y los datos, quita el invitado."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"QUITAR INVITADO"</string> <string name="user_add_user_title" msgid="4553596395824132638">"¿Agregar usuario nuevo?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Cuando agregas un nuevo usuario, esa persona debe configurar su espacio.\n\nCualquier usuario puede actualizar aplicaciones para todos los usuarios."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Inhabilitar VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu dispositivo.\n\nEl administrador puede supervisar y administrar la configuración, el acceso corporativo, las aplicaciones, los datos asociados a este dispositivo y la información de ubicación del dispositivo. Para obtener más información, comunícate con el administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Permitiste que una aplicación configurara una conexión VPN.\n\nEsta aplicación puede supervisar la actividad de la red y del dispositivo, incluidos los correos electrónicos, las aplicaciones y los sitios web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu perfil de trabajo.\n\nEl administrador puede supervisar la actividad de red, incluidos los correos electrónicos, las aplicaciones y los sitios web seguros.\n\nPara obtener más información, comunícate con el administrador."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Administrador de tu dispositivo:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nAdministrador de tu perfil:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nEl administrador puede supervisar el dispositivo y la actividad de red, incluidos correos electrónicos, aplicaciones y sitios web seguros.\n\nPara obtener más información, comunícate con el administrador."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Permitiste que una aplicación configure una conexión VPN.\n\nEsta aplicación puede supervisar la actividad de la red y del dispositivo, incluidos el correo electrónico, las aplicaciones y los sitios web seguros."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu dispositivo.\n\nEl administrador puede supervisar y administrar la configuración, el acceso corporativo, las aplicaciones, los datos asociados al dispositivo y la información de ubicación.\n\nTambién tienes una conexión VPN, que puede supervisar la actividad de la red (correo electrónico, aplicaciones y sitios web).\n\nPara obtener más información, comunícate con el administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu perfil de trabajo.\n\nEl administrador puede supervisar la actividad de la red, incluidos los correos electrónicos, las aplicaciones y los sitios web.\n\nPara obtener más información, comunícate con el administrador.\n\nTambién tienes conexión a una VPN, que puede supervisar la actividad de tu red."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Tienes conexión a la aplicación <xliff:g id="APPLICATION">%1$s</xliff:g>, que puede supervisar la actividad de la red, incluidos los correos electrónicos, las aplicaciones y los sitios web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Tienes conexión a la aplicación <xliff:g id="APPLICATION">%1$s</xliff:g>, que puede supervisar la actividad de la red personal, incluidos los correos electrónicos, las aplicaciones y los sitios web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu perfil de trabajo. Tiene conexión a <xliff:g id="APPLICATION">%2$s</xliff:g>, que puede supervisar la actividad de tu red de trabajo, incluidos los correos electrónicos, las aplicaciones y los sitios web.\n\nPara obtener más información, comunícate con el administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu perfil de trabajo. Tiene conexión a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que puede supervisar la actividad de tu red de trabajo, incluidos los correos electrónicos, las aplicaciones y los sitios web.\n\nTambién tienes conexión a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que puede supervisar la actividad de la red personal."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu dispositivo.\n\nEl administrador puede supervisar y administrar la configuración, el acceso corporativo, las aplicaciones, los datos asociados al dispositivo y la información de la ubicación.\n\nTienes conexión a <xliff:g id="APPLICATION">%2$s</xliff:g>, que puede supervisar la actividad de la red, incluidos los correos electrónicos, las aplicaciones y los sitios web.\n\nPara obtener más información, comunícate con el administrador."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> administra tu perfil de trabajo.\n\nEl administrador puede supervisar la actividad de la red, incluidos los correos electrónicos, las aplicaciones y los sitios web seguros.\n\nPara obtener más información, comunícate con el administrador.\n\nTambién tienes una conexión VPN, que puede supervisar la actividad de la red."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Administrador del dispositivo: <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nAdministrador del perfil de trabajo:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nEl administrador puede supervisar la actividad de la red, incluidos los correos electrónicos, las aplicaciones y los sitios web seguros.\n\nPara obtener más información, comunícate con el administrador.\n\nTambién tienes una conexión VPN, que puede supervisar tu actividad de la red personal."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"El dispositivo permanecerá bloqueado hasta que lo desbloquees manualmente."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Recibe notificaciones más rápido"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Ver antes de desbloquear"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver todas"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar todas"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Finalizar ahora"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expandir"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Contraer"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Pantalla fija"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Esta función mantiene fija la vista de la pantalla hasta que la desactivas. Mantén presionados los botones Atrás y Recientes al mismo tiempo para anular la fijación."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Esta función mantiene fija la vista de la pantalla hasta que la desactivas. Mantén presionado el botón Recientes para anular la fijación."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rechazar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> es el cuadro de diálogo de volumen."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar el original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Estás usando tu perfil de trabajo"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sintonizador de IU del sistema"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostrar porcentaje de la batería integrada"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostrar porcentaje del nivel de batería en el ícono de la barra de estado cuando no se está cargando"</string> - <string name="quick_settings" msgid="10042998191725428">"Configuración rápida"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra de estado"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modo demostración"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Activar el modo de demostración"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Ver en modo de demostración"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarma"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil de trabajo"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modo de avión"</string> - <string name="add_tile" msgid="2995389510240786221">"Agregar mosaico"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Mosaico de transmisión"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"No oirás la próxima alarma a la(s) <xliff:g id="WHEN">%1$s</xliff:g> a menos que desactives esta antes"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"No oirás la próxima alarma a la(s) <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"a la(s) <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"el <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configuración rápida: <xliff:g id="TITLE">%s</xliff:g>"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil de trabajo"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversión para algunos, pero no para todos"</string> - <string name="tuner_warning" msgid="8730648121973575701">"El sintonizador de IU del sistema te brinda más formas para editar y personalizar la interfaz de usuario de Android. Estas funciones experimentales pueden cambiar, dejar de funcionar o no incluirse en futuras versiones. Procede con precaución."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Estas funciones experimentales pueden cambiar, dejar de funcionar o no incluirse en futuras versiones. Procede con precaución."</string> - <string name="got_it" msgid="2239653834387972602">"Entendido"</string> - <string name="tuner_toast" msgid="603429811084428439">"Se agregó el sintonizador de IU del sistema a Configuración"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Quitar de Configuración"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"¿Quieres quitar el sintonizador de IU del sistema de Configuración y dejar de utilizar todas sus funciones?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Estás usando el perfil de Work."</string> </resources> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index cd86d1ce1eb6..b8e81d3df142 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -19,16 +19,16 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="7164937344850004466">"IU del sistema"</string> + <string name="app_label" msgid="7164937344850004466">"Interfaz de usuario del sistema"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Borrar"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Eliminar de la lista"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Información de la aplicación"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Aquí aparecerán tus pantallas recientes"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignorar aplicaciones recientes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 pantalla en Visión general"</item> - <item quantity="other" msgid="5523506463832158203">"%d pantallas en Visión general"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d pantallas en Visión general</item> + <item quantity="one">1 pantalla en Visión general</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"No tienes notificaciones"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Entrante"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificaciones"</string> @@ -60,11 +60,9 @@ <string name="label_view" msgid="6304565553218192990">"Ver"</string> <string name="always_use_device" msgid="1450287437017315906">"Usar de forma predeterminada para este dispositivo USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Usar de forma predeterminada para este accesorio USB"</string> - <string name="usb_debugging_title" msgid="4513918393387141949">"¿Permitir depuración por USB?"</string> + <string name="usb_debugging_title" msgid="4513918393387141949">"¿Permitir depuración USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"La huella digital de tu clave RSA es:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Permitir siempre desde este ordenador"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Depuración USB no permitida"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"El usuario con el que se ha iniciado sesión en este dispositivo no puede activar la depuración USB. Para utilizar esta función, inicia sesión con el usuario principal (\"<xliff:g id="NAME">%s</xliff:g>\")."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom para ajustar"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Expandir para ajustar"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Guardando captura..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Teléfono"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Asistente voz"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloquear"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botón de desbloqueo, esperando huella digital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloquear sin usar tu huella digital"</string> <string name="unlock_label" msgid="8779712358041029439">"desbloquear"</string> <string name="phone_label" msgid="2320074140205331708">"abrir teléfono"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"abrir el asistente de voz"</string> <string name="camera_label" msgid="7261107956054836961">"abrir cámara"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Seleccionar diseño de tarea nueva"</string> <string name="cancel" msgid="6442560571259935130">"Cancelar"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dos barras de datos"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tres barras de datos"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Señal de datos al máximo"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi desactivado"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi desconectado"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Una barra de Wi-Fi"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Dos barras de Wi-Fi"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Tres barras de Wi-Fi"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Señal de Wi-Fi al máximo"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Conectado a <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sin conexión WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dos barras de WiMAX"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Tres barras de WiMAX"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Señal de WiMAX al máximo"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Conexión Ethernet desconectada."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Conexión Ethernet conectada."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"No hay señal"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Sin conexión"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Ninguna barra"</string> @@ -146,9 +144,8 @@ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Tipo Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"Sin tarjeta SIM"</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Compartir por Bluetooth"</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Anclaje por Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avión"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"No hay tarjeta SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Cambiando red de operador."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> por ciento de batería"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Ajustes del sistema"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Se ha eliminado <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Se han ignorado todas las aplicaciones recientes."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Iniciando <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificación ignorada"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Pantalla de notificaciones"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Ajustes rápidos"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla de bloqueo."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ajustes"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visión general."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Cerrar"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmar"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi desactivado."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Modo avión desactivado."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modo avión activado."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"No molestar activado (solo prioritarias)."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"No molestar activado, silencio total"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"No molestar activado (sin interrupciones)."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"No molestar activado, solo alarmas."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"No molestar desactivado."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"No molestar desactivado."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"No molestar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Solo prioritarias"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Solo alarmas"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silencio total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sin interrupciones"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desactivado"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"No conectado"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"No hay red."</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desactivado"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"No hay ninguna red Wi-Fi disponible"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"No hay redes guardadas disponibles"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Enviar"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Enviando"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sin nombre"</string> @@ -278,7 +274,7 @@ <string name="quick_settings_done" msgid="3402999958839153376">"Listo"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string> - <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Compartir Internet"</string> + <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Anclaje a red"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Zona Wi-Fi"</string> <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Notificaciones"</string> <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Linterna"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Buscar"</string> <string name="description_direction_up" msgid="7169032478259485180">"Desliza el dedo hacia arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Desliza el dedo hacia la izquierda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"No te interrumpirán sonidos ni vibraciones, salvo los de las alarmas, los recordatorios, los eventos y las llamadas que especifiques."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sin interrupciones, ni siquiera alarmas."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"No te interrumpirán sonidos ni vibraciones, salvo los de las alarmas, los recordatorios, los eventos y las llamadas que especifiques."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Este modo permite bloquear TODOS los sonidos y todas las vibraciones (p. ej., los de alarmas, música, vídeos y juegos). Seguirás pudiendo hacer llamadas de teléfono."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Este modo permite bloquear TODOS los sonidos y todas las vibraciones (p. ej., los de alarmas, música, vídeos y juegos)."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Sin interrupciones"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interrupciones de prioridad"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Solo alarmas"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Siguiente alarma: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Siguiente alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"No oirás tu alarma a las <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificaciones menos urgente abajo"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Vuelve a tocar para abrir"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Desliza el dedo hacia arriba para desbloquear"</string> - <string name="phone_hint" msgid="4872890986869209950">"Desliza desde el icono para abrir el teléfono"</string> - <string name="voice_hint" msgid="8939888732119726665">"Desliza desde el icono para abrir asistente de voz"</string> - <string name="camera_hint" msgid="7939688436797157483">"Desliza desde el icono para abrir la cámara"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silencio total (también se silenciarán los lectores de pantalla)."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silencio total"</string> + <string name="phone_hint" msgid="3101468054914424646">"Desliza el dedo hacia la derecha para acceder al teléfono"</string> + <string name="camera_hint" msgid="5241441720959174226">"Desliza el dedo hacia la izquierda para acceder a la cámara"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sin interrupciones"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Solo prioritarias"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Solo alarmas"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silencio\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Todo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sin\ninterrupciones"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Solo\ncon prioridad"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Solo\nalarmas"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para completar)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambiar de usuario"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambiar de usuario (usuario actual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Usuario actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostrar perfil"</string> <string name="user_add_user" msgid="5110251524486079492">"Añadir usuario"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nuevo usuario"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Volver a empezar"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sí, continuar"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Usuario invitado"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Para eliminar aplicaciones y datos, quita usuario invitado"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Eliminar invitado para borrar aplicaciones y datos"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ELIMINAR INVITADO"</string> <string name="user_add_user_title" msgid="4553596395824132638">"¿Añadir nuevo usuario?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Al añadir un usuario nuevo, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Inhabilitar VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Administrador de tu dispositivo: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nEl administrador puede controlar y administrar los ajustes, el acceso corporativo, las aplicaciones, los datos asociados al dispositivo e información de su ubicación. Para obtener más información, ponte en contacto con el administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Has concedido permiso a una aplicación para configurar una conexión VPN.\n\nEsta aplicación puede controlar tu dispositivo y tu actividad de red, como correos electrónicos, aplicaciones y sitios web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Administrador de tu perfil de trabajo: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nEl administrador puede controlar tu actividad de red, como correos electrónicos, aplicaciones y sitios web seguros.\n\nPara obtener más información, ponte en contacto con el administrador."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Administrador de tu dispositivo:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nAdministrador de tu perfil de trabajo:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nEl administrador puede controlar tu dispositivo y tu actividad de red, como correos electrónicos, aplicaciones y sitios web seguros.\n\nPara obtener más información, ponte en contacto con el administrador."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Has concedido permiso a una aplicación para configurar una conexión VPN.\n\nEsta aplicación puede controlar tu dispositivo y tu actividad de red, como correos electrónicos, aplicaciones y sitios web seguros."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Administrador del dispositivo: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nEl administrador puede controlar y administrar los ajustes, el acceso corporativo, las aplicaciones, los datos asociados al dispositivo e información de su ubicación.\n\nEstás conectado a una red VPN que puede controlar tu actividad de red, como correos electrónicos, aplicaciones y sitios web.\n\nPara obtener más información, ponte en contacto con el administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"El administrador de tu perfil de trabajo es <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nTu administrador puede supervisar tu actividad de red, como correos electrónicos, aplicaciones y sitios web.\n\nPara obtener más información, ponte en contacto con tu administrador.\n\nTambién estás conectado a una red VPN que puede supervisar tu actividad de red."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Estás conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que puede controlar tu actividad de red, como correos electrónicos, aplicaciones y sitios web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Estas conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que puede controlar tu actividad de red personal, como correos electrónicos, aplicaciones y sitios web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"El administrador de tu perfil de trabajo es <xliff:g id="ORGANIZATION">%1$s</xliff:g> y está conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que puede controlar tu actividad de red del trabajo, como correos electrónicos, aplicaciones y sitios web.\n\nPara obtener más información, ponte en contacto con el administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"El administrador de tu perfil de trabajo es <xliff:g id="ORGANIZATION">%1$s</xliff:g> y está conectado a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que puede controlar tu actividad de red, como correos electrónicos, aplicaciones y sitios web.\n\nTú también estás conectado a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que puede controlar tu actividad de red personal."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"El administrador de tu dispositivo es <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nTu administrador puede supervisar y administrar los ajustes, el acceso corporativo, las aplicaciones, los datos asociados al dispositivo e información de su ubicación.\n\nEstás conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que puede supervisar tu actividad de red, como correos electrónicos, aplicaciones y sitios web.\n\nPara obtener más información, ponte en contacto con tu administrador."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Administrador de tu perfil de trabajo: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nEl administrador puede controlar tu actividad de red, como correos electrónicos, aplicaciones y sitios web seguros.\n\nPara obtener más información, ponte en contacto con el administrador.\n\nAsimismo, estás conectado a una red VPN que puede controlar tu actividad de red."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Administrador del dispositivo: <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nAdministrador de tu perfil de trabajo:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nEl administrador puede controlar tu actividad de red, como correos electrónicos, aplicaciones y sitios web seguros.\n\nPara obtener más información, ponte en contacto con el administrador.\n\nAsimismo, estás conectado a una red VPN que puede controlar tu actividad de red personal"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"El dispositivo permanecerá bloqueado hasta que se desbloquee manualmente"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Recibe notificaciones más rápido"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Ver antes de desbloquear"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver todas"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar todas"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Finalizar ahora"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Mostrar"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Ocultar"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Pantalla fijada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"La pantalla se mantendrá visible hasta que dejes de fijarla. Para ello, mantén pulsados los botones de retroceso e información general."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"La pantalla se mantendrá visible hasta que dejes de fijarla. Para ello, mantén pulsado el botón de información general."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rechazar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> es el cuadro de diálogo de volumen"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar la versión original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Estás usando tu perfil de trabajo"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Configurador de IU del sistema"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostrar porcentaje de batería insertado"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostrar el porcentaje del nivel de batería en el icono de la barra de estado cuando no se esté cargando"</string> - <string name="quick_settings" msgid="10042998191725428">"Ajustes rápidos"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra de estado"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modo de demostración"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Habilitar modo de demostración"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostrar modo de demostración"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarma"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil de trabajo"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modo avión"</string> - <string name="add_tile" msgid="2995389510240786221">"Añadir mosaico"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Mosaico de emisión"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"No oirás la próxima alarma (<xliff:g id="WHEN">%1$s</xliff:g>) a menos que desactives esta opción antes"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"No oirás la próxima alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string> - <string name="alarm_template" msgid="3980063409350522735">"a las <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"el <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Ajustes rápidos, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Zona Wi-Fi"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil de trabajo"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversión solo para algunos"</string> - <string name="tuner_warning" msgid="8730648121973575701">"El configurador de IU del sistema te ofrece otras formas de modificar y personalizar la interfaz de usuario de Android. Estas funciones experimentales pueden cambiar, fallar o desaparecer en futuras versiones. Te recomendamos que tengas cuidado."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Estas funciones experimentales pueden cambiar, fallar o desaparecer en futuras versiones. Te recomendamos que tengas cuidado."</string> - <string name="got_it" msgid="2239653834387972602">"Entendido"</string> - <string name="tuner_toast" msgid="603429811084428439">"¡Enhorabuena! El configurador de IU del sistema se ha añadido a Ajustes"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Eliminar de Ajustes"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"¿Eliminar el configurador de IU del sistema de Ajustes y dejar de utilizar sus funciones?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Estás en el perfil de trabajo"</string> </resources> diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml index 12cc20bbaae0..b535fd8c6408 100644 --- a/packages/SystemUI/res/values-et-rEE/strings.xml +++ b/packages/SystemUI/res/values-et-rEE/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Rakenduse teave"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Teie viimane ekraanikuva ilmub siia"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Loobu hiljutistest rakendustest"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ekraan jaotises Ülevaade"</item> - <item quantity="other" msgid="5523506463832158203">"%d ekraanikuva jaotises Ülevaade"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d ekraani jaotises Ülevaade</item> + <item quantity="one">1 ekraan jaotises Ülevaade</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Teatisi pole"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Jätkuv"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Märguanded"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Kas luban USB silumise?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Arvuti RSA-võtme sõrmejälg:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Luba alati sellest arvutist"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-silumine pole lubatud"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Sellesse seadmesse praegu sisse logitud kasutaja ei saa USB-silumist sisse lülitada. Selle funktsiooni kasutamiseks lülitage peamisele kasutajale „<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Suumi ekraani täitmiseks"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Venita ekraani täitmiseks"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Kuvatõmmise salvestamine ..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Otsing"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kaamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Häälabi"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Luku avamine"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Avamisnupp, sõrmejälje ootel"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Ava sõrmejälge kasutamata"</string> <string name="unlock_label" msgid="8779712358041029439">"ava lukk"</string> <string name="phone_label" msgid="2320074140205331708">"ava telefon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ava häälabi"</string> <string name="camera_label" msgid="7261107956054836961">"ava kaamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Uue toimingu paigutuse valimine"</string> <string name="cancel" msgid="6442560571259935130">"Tühista"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Andmeside: kaks pulka."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Andmeside: kolm pulka."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Andmesignaal on tugev."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi on väljas."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi-ühendus on katkestatud."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WiFi: üks pulk."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WiFi: kaks pulka."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi: kolm pulka."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"WiFi-signaal on tugev."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Ühendatud: <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Ühendatud: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX-i pole."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-i on kaks riba."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX-i on kolm riba."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-i signaal on tugev."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Etherneti-ühendus on katkestatud."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Etherneti-ühendus on loodud."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Signaal puudub."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Ühendus puudub."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Null pulka."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM-kaarti pole."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetoothi jagamine."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Lennurežiim."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM-kaarti pole."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Operaatori võrku muudetakse."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Aku: <xliff:g id="NUMBER">%d</xliff:g> protsenti."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Süsteemiseaded"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Loobusite rakendusest <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Kõikidest hiljutistest rakendustest on loobutud"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Rakenduse <xliff:g id="APP">%s</xliff:g> käivitamine."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g>, <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Märguandest on loobutud."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Märguande vari."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Kiirseaded."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Kuva lukustamine."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Seaded"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ülevaade."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Sulgemine"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Kinnitamine"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Kasutaja <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"WiFi on välja lülitatud."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Lennukirežiim on välja lülitatud."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lennukirežiim on sisse lülitatud."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Funktsioon Mitte segada on sisse lülitatud (ainult prioriteetsed)."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Funktsioon Mitte segada on sisse lülitatud, täielik vaikus."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Funktsioon Mitte segada on sisse lülitatud (mitte ühtegi katkestust)."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Funktsioon Mitte segada on sisse lülitatud (ainult alarmid)."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Funktsioon Mitte segada on välja lülitatud."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Funktsioon Mitte segada on välja lülitatud."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Mitte segada"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Ainult prioriteetsed"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Ainult alarmid"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Täielik vaikus"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Mitte ühtegi katkestust"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> seadet)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth on väljas"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ühendus puudub"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Võrku pole"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WiFi-ühendus on väljas"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"WiFi-võrke pole saadaval"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Ühtegi salvestatud võrku pole saadaval"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Ülekandmine"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Osatäitjad"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nimeta seade"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Otsing"</string> <string name="description_direction_up" msgid="7169032478259485180">"Lohistage üles: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Lohistage vasakule: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Teid segatakse helide ja värinaga vaid teie määratud alarmide, meeldetuletuste, sündmuste ning helistajate puhul."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Katkestusi pole. Pole isegi hoiatusi."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Teid segatakse helide ja vibratsioonidega vaid teie määratud alarmide, meeldetuletuste, sündmuste ning helistajate puhul."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Kohanda"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"See blokeerib KÕIK – sealhulgas alarmide, muusika, videote ja mängude – helid ja värinad. Saate siiski helistada."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"See blokeerib KÕIK – sealhulgas alarmide, muusika, videote ja mängude – helid ja vibratsioonid."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Mitte ühtegi katkestust"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Ainult prioriteetsed katkestused"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Ainult alarmid"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Teie järgmine äratus on <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Teie järgmine äratus on <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Te ei kuule äratust <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Vähem kiireloomulised märguanded on allpool"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Avamiseks puudutage uuesti"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Lukustuse tühistamiseks pühkige üles"</string> - <string name="phone_hint" msgid="4872890986869209950">"Telefoni kasutamiseks pühkige ikoonilt eemale"</string> - <string name="voice_hint" msgid="8939888732119726665">"Häälabi kasutamiseks pühkige ikoonilt eemale"</string> - <string name="camera_hint" msgid="7939688436797157483">"Kaamera kasutamiseks pühkige ikoonilt eemale"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Täielik vaikus. See vaigistab ka ekraanilugejad."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Täielik vaikus"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telefoni kasutamiseks pühkige paremale"</string> + <string name="camera_hint" msgid="5241441720959174226">"Kaamera kasutamiseks pühkige vasakule"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Katkestusi pole"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Ainult prioriteetsed"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Ainult alarmid"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Täielik\nvaikus"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Kõik"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Katkestusi\npole"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Ainult\nprioriteetsed"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Ainult\nalarmid"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laadimine (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>, kuni seade on täis)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Kasutaja vahetamine"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Kasutaja vahetamine, praegune kasutaja: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Praegune kasutaja <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Kuva profiil"</string> <string name="user_add_user" msgid="5110251524486079492">"Kasutaja lisamine"</string> <string name="user_new_user_name" msgid="426540612051178753">"Uus kasutaja"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Alusta uuesti"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Jah, jätka"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Külaliskasutaja"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Rakenduste ja andmete kustutamiseks eemaldage külaliskasutaja"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Rakenduste ja andmete kustutamiseks eemaldage külaline"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"EEMALDA KÜLALINE"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Kas lisada uus kasutaja?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Kui lisate uue kasutaja, siis peab ta seadistama oma ruumi.\n\nIga kasutaja saab värskendada rakendusi kõigi kasutajate jaoks."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Keela VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Katkesta VPN-i ühendus"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Teie seadet haldab <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministraator saab jälgida ja hallata seadeid, ettevõttesisest juurdepääsu, rakendusi, seadmega seotud andmeid ja seadme asukohateavet. Lisateabe saamiseks võtke ühendust administraatoriga."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Andsite rakendusele loa VPN-i ühenduse seadistamiseks.\n\nSee rakendus võib jälgida teie seadet ja võrgutegevusi, sh meile, rakendusi ja veebisaite."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Teie tööprofiili haldab <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministraator saab jälgida teie võrgutegevusi, sh meile, rakendusi ja turvalisi veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Teie seadet haldab:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nTeie tööprofiili haldab:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministraator saab jälgida teie seadet ja võrgutegevusi, sh meile, rakendusi ja turvalisi veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Andsite rakendusele loa VPN-i ühenduse seadistamiseks.\n\nSee rakendus saab jälgida teie seadet ja võrgutegevusi, sh meile, rakendusi ja turvalisi veebisaite."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Teie seadet haldab <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministraator saab jälgida ja hallata seadeid, ettevõttesisest juurdepääsu, rakendusi, seadmega seotud andmeid ja seadme asukohateavet.\n\nTeil on ühendus VPN-iga, mis saab jälgida teie võrgutegevusi, sh meile, rakendusi ja veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Teie tööprofiili haldab organisatsioon <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministraator saab jälgida teie võrgutegevusi, sh meile, rakendusi ja veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga.\n\nTeil on ühendus ka VPN-iga, mis saab jälgida teie võrgutegevusi."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Teie seade on ühendatud rakendusega <xliff:g id="APPLICATION">%1$s</xliff:g>, mis võib jälgida teie võrgutegevusi, sh meile, rakendusi ja veebisaite."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Teie seade on ühendatud rakendusega <xliff:g id="APPLICATION">%1$s</xliff:g>, mis võib jälgida teie isiklikke võrgutegevusi, sh meile, rakendusi ja veebisaite."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Teie tööprofiili haldab organisatsioon <xliff:g id="ORGANIZATION">%1$s</xliff:g>. See on ühendatud rakendusega <xliff:g id="APPLICATION">%2$s</xliff:g>, mis võib jälgida teie töökoha võrgutegevusi, sh meile, rakendusi ja veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Teie tööprofiili haldab organisatsioon <xliff:g id="ORGANIZATION">%1$s</xliff:g>. See on ühendatud rakendusega <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, mis võib jälgida teie töökoha võrgutegevusi, sh meile, rakendusi ja veebisaite.\n\nTeie seade on ühendatud ka rakendusega <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, mis võib jälgida teie isiklikke võrgutegevusi."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Teie seadet haldab organisatsioon <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministraator saab jälgida ja hallata seadeid, ettevõttesisest juurdepääsu, rakendusi, seadmega seotud andmeid ja seadme asukohateavet.\n\nOlete ühendatud rakendusega <xliff:g id="APPLICATION">%2$s</xliff:g>, mis saab jälgida teie võrgutegevusi, sh meile, rakendusi ja veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Teie tööprofiili haldab <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministraator saab jälgida teie võrgutegevusi, sh meile, rakendusi ja turvalisi veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga.\n\nTeil on ühendus ka VPN-iga, mis saab jälgida teie võrgutegevusi."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Teie seadet haldab <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nTeie profiili haldab:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministraator saab jälgida teie võrgutegevusi, sh meile, rakendusi ja turvalisi veebisaite.\n\nLisateabe saamiseks võtke ühendust administraatoriga.\n\nTeil on ühendus ka VPN-iga, mis saab jälgida teie isiklikke võrgutegevusi"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Seade jääb lukku, kuni selle käsitsi avate"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Saate märguandeid kiiremini"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Näete neid enne avamist"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Kuva kõik"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Peida kõik"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Lõpeta nüüd"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Laiendamine"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Ahendamine"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekraan on kinnitatud"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"See hoiab selle kuval, kuni selle vabastate. Vabastamiseks puudutage ning hoidke korraga all nuppe Tagasi ja Ülevaade."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"See hoiab selle kuval, kuni selle vabastate. Vabastamiseks puudutage ja hoidke all nuppu Ülevaade."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Keela"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> on helitugevuse dialoog"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Originaali taastamiseks puudutage."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Kasutate oma tööprofiili"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Süsteemi kasutajaliidese tuuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Kuva lisatud akutaseme protsent"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Akutaseme protsendi kuvamine olekuriba ikoonil, kui akut ei laeta"</string> - <string name="quick_settings" msgid="10042998191725428">"Kiirseaded"</string> - <string name="status_bar" msgid="4877645476959324760">"Olekuriba"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demorežiim"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Demorežiimi lubamine"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Kuva demorežiim"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Äratus"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Tööprofiil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Lennukirežiim"</string> - <string name="add_tile" msgid="2995389510240786221">"Paani lisamine"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Paani ülekandmine"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Kuulete järgmist äratust kell <xliff:g id="WHEN">%1$s</xliff:g> vaid siis, kui lülitate selle enne seda välja"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Te ei kuule järgmist äratust kell <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"kell <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"kell <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Kiirseaded, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Leviala"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Tööprofiil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Kõik ei pruugi sellest rõõmu tunda"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Süsteemi kasutajaliidese tuuner pakub täiendavaid võimalusi Androidi kasutajaliidese muutmiseks ja kohandamiseks. Need katselised funktsioonid võivad muutuda, rikki minna või tulevastest versioonidest kaduda. Olge jätkamisel ettevaatlik."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Need katselised funktsioonid võivad muutuda, rikki minna või tulevastest versioonidest kaduda. Olge jätkamisel ettevaatlik."</string> - <string name="got_it" msgid="2239653834387972602">"Selge"</string> - <string name="tuner_toast" msgid="603429811084428439">"Õnnitleme! Süsteemi kasutajaliidese tuuner lisati seadetesse"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Eemalda seadetest"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Kas eemaldada seadetest süsteemi kasutajaliidese tuuner ja lõpetada kõikide selle funktsioonide kasutamine?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Olete tööprofiilil"</string> </resources> diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml index b102d27dfac8..0e25328f0bf7 100644 --- a/packages/SystemUI/res/values-eu-rES/strings.xml +++ b/packages/SystemUI/res/values-eu-rES/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Aplikazioaren informazioa"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Ikusitako azken pantailak erakusten dira hemen"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Baztertu azken aplikazioak"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Pantaila bat dago ikuspegi orokorrean"</item> - <item quantity="other" msgid="5523506463832158203">"%d pantaila daude ikuspegi orokorrean"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d pantaila daude ikuspegi orokorrean</item> + <item quantity="one">Pantaila bat dago ikuspegi orokorrean</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ez dago jakinarazpenik"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Abian"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Jakinarazpenak"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB arazketa onartu?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Ordenagailuaren RSA gakoaren hatz-marka hau da:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Onartu beti ordenagailu honetatik"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Ez da onartzen USB arazketa"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Gailu honetan saioa hasita duen erabiltzaileak ezin du USB arazketa aktibatu. Eginbide hori erabiltzeko, aldatu “<xliff:g id="NAME">%s</xliff:g>” erabiltzaile nagusira."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Handiagotu pantaila betetzeko"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Luzatu pantaila betetzeko"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Pantaila-argazkia gordetzen…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Bilatu"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonoa"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Ahots-laguntza"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desblokeatu"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Desblokeatzeko botoia; hatz-markaren zain"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desblokeatu hatz-markaren bidez"</string> <string name="unlock_label" msgid="8779712358041029439">"desblokeatu"</string> <string name="phone_label" msgid="2320074140205331708">"ireki telefonoan"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ireki ahots-laguntza"</string> <string name="camera_label" msgid="7261107956054836961">"ireki kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Hautatu zereginen diseinua"</string> <string name="cancel" msgid="6442560571259935130">"Utzi"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Datu-seinaleak bi barra ditu."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Datu-seinaleak hiru barra ditu."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datu-seinale osoa."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi konexioa desaktibatuta dago."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi konexioa desaktibatu da."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi sarearen barra bat."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi sarearen bi barra."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi sarearen hiru barra."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi sarearen seinalea osoa."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> sarera konektatuta."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> gailura konektatuta."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX gabe."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX sarearen bi barra."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX sarearen hiru barra."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX sarearen seinalea osoa."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet bidezko konexioa eten da."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet bidez konektatu da."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ez dago seinalerik."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Konektatu gabe."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Barrarik ez."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Ez dago SIM txartelik."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Konexioa partekatzea (Bluetooth)"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Hegaldi-modua"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Ez dago SIM txartelik."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Operadorearen sarea aldatzea."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateriaren karga: <xliff:g id="NUMBER">%d</xliff:g>."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Sistemaren ezarpenak."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> baztertu da."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Azken aplikazio guztiak baztertu da."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> hasten."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Jakinarazpena baztertu da."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Jakinarazpenen panela."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Ezarpen bizkorrak."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantaila blokeatzeko aukera."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ezarpenak"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ikuspegi orokorra."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Itxi"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Berretsi"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"<xliff:g id="USER">%s</xliff:g> erabiltzailea."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi konexioa desaktibatu egin da."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Hegaldi modua desaktibatu egin da."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Hegaldi modua aktibatu egin da."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Ez molestatu\" aukera aktibatuta dago, lehentasunezkoak soilik."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\"Ez molestatu\" aukera aktibatuta dago, isiltasun osoa."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Ez molestatu\" aukera aktibatuta dago, etenaldirik gabe."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Ez molestatu\" aukera aktibatuta dago, alarmak soilik."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Ez molestatu\" aukera desaktibatuta dago."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Ez molestatu\" aukera desaktibatuta dago."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ez molestatu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Lehentasunezkoak soilik"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarmak soilik"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Isiltasun osoa"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Etenaldirik gabe"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetootha (<xliff:g id="NUMBER">%d</xliff:g> gailu)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetootha desaktibatuta"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Konektatu gabe"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ez dago sarerik"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi konexioa desaktibatuta"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Ez dago Wi-Fi sarerik erabilgarri"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Ez dago gordetako sarerik erabilgarri"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Igorpena"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Igortzen"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Izenik gabeko gailua"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Bilatu"</string> <string name="description_direction_up" msgid="7169032478259485180">"Lerratu gora hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Lerratu ezkerrera hau egiteko: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Soinuek eta dardarek ez zaituzte eragotziko, zehazten dituzun alarmek, abisuek, gertaerek eta deitzaileek izan ezik."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Etenaldirik ez, ezta alarmaren bat bada ere."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Soinuek eta dardarek ez zaituzte eragotziko, zehazten dituzun alarmek, abisuek, gertaerek eta deitzaileek izan ezik."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Pertsonalizatu"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Soinu eta dardara GUZTIAK blokeatuko dira, besteak beste, alarmak, musika, bideoak eta jokoak. Telefono-deiak egiteko aukera izaten jarraituko duzu."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Soinu eta dardara GUZTIAK blokeatuko dira, besteak beste, alarmak, musika, bideoak eta jokoak."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Etenaldirik gabe"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Lehentasun-etenaldiak soilik"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarmak soilik"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Hurrengo alarma: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Hurrengo alarma: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Ez duzu entzungo alarma ordu honetan: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Horren premiazkoak ez diren jakinarazpenak daude behean"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Irekitzeko, ukitu berriro"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Desblokeatzeko, pasatu hatza gorantz"</string> - <string name="phone_hint" msgid="4872890986869209950">"Pasatu hatza ikonotik, telefonoa irekitzeko"</string> - <string name="voice_hint" msgid="8939888732119726665">"Pasatu hatza ikonotik, ahots-laguntza irekitzeko"</string> - <string name="camera_hint" msgid="7939688436797157483">"Pasatu hatza ikonotik, kamera irekitzeko"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Isiltasun osoa. Pantaila-irakurgailuak ere isilaraziko dira."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Isiltasun osoa"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telefonoa irekitzeko, pasatu hatza eskuinera."</string> + <string name="camera_hint" msgid="5241441720959174226">"Kamera irekitzeko, pasatu hatza ezkerrera."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Etenaldirik gabe"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Lehentasunezkoak"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarmak soilik"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Isiltasun\nosoa"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Guztiak"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Etenaldirik\ngabe"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Lehentasunezkoak\nsoilik"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarmak\nsoilik"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Kargatzen (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> guztiz kargatu arte)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Aldatu erabiltzailea"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Aldatu erabiltzailez. <xliff:g id="CURRENT_USER_NAME">%s</xliff:g> da saioa hasita duena."</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Uneko erabiltzailea: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Erakutsi profila"</string> <string name="user_add_user" msgid="5110251524486079492">"Gehitu erabiltzailea"</string> <string name="user_new_user_name" msgid="426540612051178753">"Erabiltzaile berria"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Hasi berriro"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Bai, jarraitu"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Erabiltzaile gonbidatua"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Aplikazioak eta datuak ezabatzeko, kendu gonbidatua"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Kendu gonbidatua, aplikazioak eta datuak ezabatzeko"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"KENDU GONBIDATUA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Beste erabiltzaile bat gehitu?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Erabiltzaile bat gehitzen duzunean, horrek bere eremua konfiguratu beharko du.\n\nEdozein erabiltzailek egunera ditzake beste erabiltzaile guztien aplikazioak."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Desgaitu VPN konexioa"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Deskonektatu VPN sarea"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Gailuaren kudeatzailea:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratzaileak gailua eta sareko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne. Informazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Aplikazio bati VPN konexio bat konfiguratzeko baimena eman diozu.\n\nAplikazio horrek gailuko eta sareko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webguneak barne."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Laneko profilaren kudeatzailea:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratzaileak gailua eta sareko jarduera kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Gailuaren kudeatzailea:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nLaneko profilaren kudeatzailea:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratzaileak gailua eta sareko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Aplikazio bati VPN konexio bat konfiguratzeko baimena eman diozu.\n\nAplikazio horrek gailua eta sareko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Gailuaren kudeatzailea:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratzaileak ezarpenak, enpresako sarbidea, aplikazioak, gailuarekin lotutako datuak eta gailuaren kokapenari buruzko informazioa kontrola eta kudea ditzake.\n\nSareko jarduerak (mezu elektronikoak, aplikazioak eta webguneak barne) kontrola ditzakeen VPN batera konektatuta zaude.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> da laneko profilaren kudeatzailea.\n\nAdministratzaileak sareko jarduerak (mezu elektronikoak, aplikazioak eta webguneak barne) kontrola ditzake.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan.\n\nHorrez gain, sareko jarduerak kontrola ditzakeen VPN batera konektatuta zaude."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN konexioa"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"<xliff:g id="APPLICATION">%1$s</xliff:g> aplikaziora konektatuta zaude. Aplikazio horrek sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webguneak barne."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"<xliff:g id="APPLICATION">%1$s</xliff:g> aplikaziora konektatuta zaude. Aplikazio horrek sarean egiten dituzun jarduera pertsonalak kontrola ditzake, mezu elektronikoak, aplikazioak eta webguneak barne."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> da laneko profilaren kudeatzailea, eta profila <xliff:g id="APPLICATION">%2$s</xliff:g> aplikaziora konektatuta dago. Aplikazio horrek sarean egiten dituzun laneko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webguneak barne.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> da laneko profilaren kudeatzailea, eta profila <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> aplikaziora konektatuta dago. Aplikazio horrek sarean egiten dituzun laneko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webguneak barne.\n\nHorrez gain, sarean egiten dituzun jarduera pertsonalak kontrola ditzakeen <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> aplikaziora konektatuta zaude."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> da gailuaren kudeatzailea.\n\nAdministratzaileak ezarpenak, enpresako sarbidea, aplikazioak, gailuarekin lotutako datuak eta gailuaren kokapenari buruzko informazioa kontrola eta kudea ditzake.\n\n<xliff:g id="APPLICATION">%2$s</xliff:g> aplikaziora konektatuta zaude. Aplikazio horrek sarean egiten dituzun jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webguneak barne.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Laneko profilaren kudeatzailea:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratzaileak sareko jarduerak (mezu elektronikoak, aplikazioak eta webgune seguruak barne) kontrola ditzake.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan.\n\nSareko jarduerak kontrola ditzakeen VPN batera konektatuta zaude, gainera."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Gailuaren kudeatzailea:<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nLaneko profilaren kudeatzailea:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratzaileak gailua eta sareko jarduerak kontrola ditzake, mezu elektronikoak, aplikazioak eta webgune seguruak barne.\n\nInformazio gehiago lortzeko, jarri administratzailearekin harremanetan.\n\nSareko jarduera pertsonalak kontrola ditzakeen VPN batera konektatuta zaude, gainera."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Gailua blokeatuta egongo da eskuz desblokeatu arte"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Eskuratu jakinarazpenak azkarrago"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Ikusi desblokeatu baino lehen"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Ikusi guztiak"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ezkutatu guztiak"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Amaitu"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Zabaldu"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Tolestu"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Pantaila ainguratuta dago"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Horrela, ikusgai mantenduko da aingura kendu arte. Aingura kentzeko, eduki ukituta aldi berean \"Atzera\" eta \"Ikuspegi orokorra\" botoiak."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Horrela, ikusgai mantenduko da, aingura kendu arte. Aingura kentzeko, eduki ukituta \"Ikuspegi orokorra\" botoia."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ukatu"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> da bolumenaren leihoa"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Ukitu jatorrizkora leheneratzeko"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Work profila erabiltzen ari zara"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sistemako erabiltzaile-interfazearen konfiguratzailea"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Erakutsi txertatutako bateriaren ehunekoa"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Erakutsi bateria-mailaren ehunekoa egoera-barraren ikonoan, kargatzen ari ez denean"</string> - <string name="quick_settings" msgid="10042998191725428">"Ezarpen bizkorrak"</string> - <string name="status_bar" msgid="4877645476959324760">"Egoera-barra"</string> - <string name="demo_mode" msgid="2389163018533514619">"Proba modua"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Gaitu proba modua"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Erakutsi proba modua"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarma"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Work profila"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Hegaldi modua"</string> - <string name="add_tile" msgid="2995389510240786221">"Gehitu lauza"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Igorpen-lauza"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Ez duzu entzungo hurrengo alarma (<xliff:g id="WHEN">%1$s</xliff:g>) aukera hau lehenago desaktibatzen ez baduzu"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Ez duzu entzungo hurrengo alarma (<xliff:g id="WHEN">%1$s</xliff:g>)"</string> - <string name="alarm_template" msgid="3980063409350522735">"ordua: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"data: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Ezarpen bizkorrak: <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Sare publikoa"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Work profila"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Dibertsioa batzuentzat, baina ez guztientzat"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Sistemako erabiltzaile-interfazearen konfiguratzaileak Android erabiltzaile-interfazea moldatzeko eta pertsonalizatzeko modu gehiago eskaintzen dizkizu. Baliteke eginbide esperimental horiek hurrengo kaleratzeetan aldatuta, etenda edo desagertuta egotea. Kontuz erabili."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Baliteke eginbide esperimental horiek hurrengo kaleratzeetan aldatuta, etenda edo desagertuta egotea. Kontuz erabili."</string> - <string name="got_it" msgid="2239653834387972602">"Ados"</string> - <string name="tuner_toast" msgid="603429811084428439">"Zorionak! Sistemako erabiltzaile-interfazearen konfiguratzailea Ezarpenak atalean gehitu da"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Kendu Ezarpenak ataletik"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Sistemako erabiltzaile-interfazearen konfiguratzailea ezarpenetatik kendu nahi duzu, eta haren eginbide guztiak erabiltzeari utzi nahi diozu?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Work profil bat erabiltzen ari zara"</string> </resources> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index b82815459a7f..2afe3dbe873e 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -25,23 +25,23 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"اطلاعات برنامه"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"صفحههای اخیر شما اینجا نمایان میشوند"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"رد کردن برنامههای اخیر"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"۱ صفحه در نمای کلی"</item> - <item quantity="other" msgid="5523506463832158203">"%d صفحه در نمای کلی"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d صفحه در نمای کلی</item> + <item quantity="other">%d صفحه در نمای کلی</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"اعلانی موجود نیست"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"در حال انجام"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"اعلانها"</string> <string name="battery_low_title" msgid="6456385927409742437">"شارژ باتری کم است"</string> <string name="battery_low_percent_format" msgid="2900940511201380775">"<xliff:g id="PERCENTAGE">%s</xliff:g> باقی مانده است"</string> - <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> باقی مانده است. بهینهسازی باتری روشن است."</string> + <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> باقی مانده است. ذخیره کننده باتری روشن است."</string> <string name="invalid_charger" msgid="4549105996740522523">"شارژ USB پشتیبانی نمیشود.\nفقط از شارژر ارائه شده استفاده کنید."</string> <string name="invalid_charger_title" msgid="3515740382572798460">"شارژ با USB پشتیبانی نمیشود."</string> <string name="invalid_charger_text" msgid="5474997287953892710">"فقط از شارژر ارائه شده استفاده کنید."</string> <string name="battery_low_why" msgid="4553600287639198111">"تنظیمات"</string> - <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"بهینهسازی باتری روشن شود؟"</string> + <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"ذخیرهکننده باتری روشن شود؟"</string> <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"روشن کردن"</string> - <string name="battery_saver_start_action" msgid="5576697451677486320">"بهینهسازی باتری را روشن کنید"</string> + <string name="battery_saver_start_action" msgid="5576697451677486320">"ذخیرهکننده باتری را روشن کنید"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"تنظیمات"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"چرخش خودکار صفحه"</string> @@ -55,17 +55,15 @@ <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"به برنامه <xliff:g id="APPLICATION">%1$s</xliff:g> اجازه میدهد تا به وسیله جانبی USB دسترسی داشته باشد؟"</string> <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"وقتی این دستگاه USB وصل است، <xliff:g id="ACTIVITY">%1$s</xliff:g> باز شود؟"</string> <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"وقتی این وسیله جانبی USB وصل است، <xliff:g id="ACTIVITY">%1$s</xliff:g> باز شود؟"</string> - <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"هیچ برنامه نصب شدهای با این وسیله جانبی USB کار نمیکند. در <xliff:g id="URL">%1$s</xliff:g> دربارهٔ این وسیله جانبی اطلاعات بیشتری کسب کنید"</string> + <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"هیچ برنامهٔ کاربردی نصب شدهای با این وسیله جانبی USB کار نمیکند. در <xliff:g id="URL">%1$s</xliff:g> دربارهٔ این وسیله جانبی اطلاعات بیشتری کسب کنید"</string> <string name="title_usb_accessory" msgid="4966265263465181372">"لوازم جانبی USB"</string> <string name="label_view" msgid="6304565553218192990">"مشاهده"</string> <string name="always_use_device" msgid="1450287437017315906">"استفاده به صورت پیشفرض برای این دستگاه USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"استفاده به صورت پیشفرض برای این دستگاه USB"</string> - <string name="usb_debugging_title" msgid="4513918393387141949">"اشکالزدایی USB مجاز است؟"</string> + <string name="usb_debugging_title" msgid="4513918393387141949">"اجازه به اشکالزدایی USB؟"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"اثر انگشت کلید RSA رایانه: \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"همیشه از این رایانه انجام شود"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"اشکالزدایی USB مجاز نیست"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"کاربری که درحال حاضر در این دستگاه وارد سیستم شده نمیتواند اشکالزدایی USB را روشن کند. برای استفاده از این ویژگی، به کاربر اصلی «<xliff:g id="NAME">%s</xliff:g>» تغییر حالت دهید."</string> - <string name="compat_mode_on" msgid="6623839244840638213">"بزرگنمایی برای پر کردن صفحه"</string> + <string name="compat_mode_on" msgid="6623839244840638213">"بزرگنمایی برای پر کردن صفحه"</string> <string name="compat_mode_off" msgid="4434467572461327898">"گسترده کردن برای پر کردن صفحه"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"در حال ذخیره تصویر صفحه..."</string> <string name="screenshot_saving_title" msgid="8242282144535555697">"در حال ذخیره تصویر صفحه..."</string> @@ -85,18 +83,14 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"جستجو"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"دوربین"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"تلفن"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"دستیار صوتی"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"باز کردن قفل"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"دکمه باز کردن قفل، در انتظار اثر انگشت"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"باز کردن قفل بدون استفاده از اثر انگشت"</string> <string name="unlock_label" msgid="8779712358041029439">"بازکردن قفل"</string> <string name="phone_label" msgid="2320074140205331708">"باز کردن تلفن"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"«دستیار صوتی» را باز کنید"</string> <string name="camera_label" msgid="7261107956054836961">"باز کردن دوربین"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"انتخاب طرحبندی جدید کار"</string> <string name="cancel" msgid="6442560571259935130">"لغو"</string> - <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"دکمه بزرگنمایی سازگار."</string> - <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"بزرگنمایی از صفحههای کوچک تا بزرگ."</string> + <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"دکمه بزرگنمایی سازگار."</string> + <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"بزرگنمایی از صفحههای کوچک تا بزرگ."</string> <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"بلوتوث متصل است."</string> <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"بلوتوث قطع شده است."</string> <string name="accessibility_no_battery" msgid="358343022352820946">"باتری موجود نیست."</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"دو نوار برای داده."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"سه نوار برای داده."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"قدرت سیگنال داده کامل است."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi‑Fi خاموش."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi قطعشد."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"یک نوار برای Wi‑Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"دو نوار برای Wi‑Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"سه نوار برای Wi‑Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"قدرت سیگنال Wi‑Fi کامل است."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"به <xliff:g id="WIFI">%s</xliff:g> متصل شد."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"به <xliff:g id="BLUETOOTH">%s</xliff:g> متصل شد."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX وجود ندارد."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX دارای دو نوار است."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX دارای سه نوار است."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"قدرت سیگنال WiMAX کامل است."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"اترنت قطع شد."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"اترنت متصل شد."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"فاقد سیگنال."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"متصل نیست."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"بدون میله."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"بدون سیم کارت."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"اتصال اینترنت با بلوتوث تلفن همراه."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"حالت هواپیما."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"سیمکارتی موجود نیست."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"تغییر شبکه شرکت مخابراتی."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"باتری <xliff:g id="NUMBER">%d</xliff:g> درصد."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"تنظیمات سیستم."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> نادیده گرفته شد."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"همه برنامههای اخیر رد شدند."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> در حال شروع به کار است."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"اعلان ردشد."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"مجموعه اعلان."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"تنظیمات سریع."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"صفحه در حالت قفل."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"تنظیمات"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"نمای کلی."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"بستن"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"تأیید"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"کاربر <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi خاموش شد."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"حالت هواپیما خاموش شد."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"حالت هواپیما روشن شد."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"«مزاحم نشوید» روشن است، فقط اولویتدار."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"حالت «مزاحم نشوید» روشن است، سکوت کامل."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"«مزاحم نشوید» روشن است، وقفه ایجاد نشود."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"حالت «مزاحم نشوید» روشن است، فقط هشدارها."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"«مزاحم نشوید» خاموش است."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"«مزاحم نشوید» خاموش شد."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"مزاحم نشوید"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"فقط اولویتدار"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"فقط هشدارها"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"سکوت کامل"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"وقفه ایجاد نشود"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوتوث"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"بلوتوث ( <xliff:g id="NUMBER">%d</xliff:g> دستگاه)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"بلوتوث خاموش"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"متصل نیست"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"شبکهای موجود نیست"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi خاموش است"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"هیچ شبکه Wi-Fi موجود نیست"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"شبکه ذخیره شدهای در دسترس نیست"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"فرستادن"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"در حال فرستادن"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"دستگاه بدون نام"</string> @@ -275,7 +271,7 @@ <string name="quick_settings_inversion_label" msgid="8790919884718619648">"برگردان رنگها"</string> <string name="quick_settings_color_space_label" msgid="853443689745584770">"حالت تصحیح رنگ"</string> <string name="quick_settings_more_settings" msgid="326112621462813682">"تنظیمات بیشتر"</string> - <string name="quick_settings_done" msgid="3402999958839153376">"تمام"</string> + <string name="quick_settings_done" msgid="3402999958839153376">"انجام شد"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"متصل"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"در حال اتصال..."</string> <string name="quick_settings_tethering_label" msgid="7153452060448575549">"اتصال به اینترنت با تلفن همراه"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"جستجو"</string> <string name="description_direction_up" msgid="7169032478259485180">"لغزاندن به بالا برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"لغزاندن به چپ برای <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"صداها و لرزشهایی به جز هشدارها، یادآوریها، رویدادها و تماسگیرندههایی که مشخص میکنید، مزاحم شما نمیشوند."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"بدون قطعی. حتی هشدارها قطع نمیشوند."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"صداها و لرزشهایی به جز هشدارها، یادآوریها، رویدادها و تماسگیرندههایی که مشخص میکنید، مزاحم شما نمیشوند."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"سفارشی کردن"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"این کار «همه» صداها و لرزشها از جمله هشدارها، موسیقی، ویدیوها و بازیها را مسدود میکند. همچنان میتوانید تماس تلفنی برقرار کنید."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"این کار «همه» صداها و لرزشها از جمله هشدارها، موسیقی، ویدیوها و بازیها را مسدود میکند."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"بدون وقفه"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"فقط وقفههای اولویتدار"</string> + <string name="zen_alarms" msgid="5055668280767657759">"فقط هشدارها"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"هشدار بعدی شما در ساعت <xliff:g id="ALARM_TIME">%s</xliff:g> است"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"هشدار بعدی شما <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> است"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"هشدارتان را در ساعت <xliff:g id="ALARM_TIME">%s</xliff:g> نخواهید شنید"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"اعلانهای کمتر فوری در زیر"</string> <string name="notification_tap_again" msgid="8524949573675922138">"برای باز کردن دوباره لمس کنید"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"برای باز کردن قفل سریع به بالا بکشید"</string> - <string name="phone_hint" msgid="4872890986869209950">"انگشتتان را از نماد تلفن تند بکشید"</string> - <string name="voice_hint" msgid="8939888732119726665">"برای «دستیار صوتی»، تند بکشید"</string> - <string name="camera_hint" msgid="7939688436797157483">"انگشتتان را از نماد دوربین تند بکشید"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"سکوت مطلق. با این کار صفحهخوانها هم ساکت میشوند."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"سکوت کامل"</string> + <string name="phone_hint" msgid="3101468054914424646">"برای تلفن انگشت را تند به سمت چپ بکشید"</string> + <string name="camera_hint" msgid="5241441720959174226">"برای دوربین انگشت را تند به سمت راست بکشید"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"بدون وقفه"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"فقط اولویتدار"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"فقط هشدارها"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"سکوت\nکامل"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"همه"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"بدون\nوقفه"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"فقط\nاولویتدار"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"فقط\nهشدارها"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"در حال شارژ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> تا شارژ کامل)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"تغییر کاربر"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"تعویض کاربر، کاربر کنونی <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"کاربر کنونی <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"نمایش نمایه"</string> <string name="user_add_user" msgid="5110251524486079492">"افزودن کاربر"</string> <string name="user_new_user_name" msgid="426540612051178753">"کاربر جدید"</string> @@ -342,13 +341,13 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"شروع مجدد"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"بله، ادامه داده شود"</string> <string name="guest_notification_title" msgid="1585278533840603063">"کاربر مهمان"</string> - <string name="guest_notification_text" msgid="335747957734796689">"برای حذف برنامهها و دادهها، کاربر مهمان را حذف کنید"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"برای حذف برنامهها و اطلاعات، مهمان را حذف کنید"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"حذف مهمان"</string> <string name="user_add_user_title" msgid="4553596395824132638">"کاربر جدیدی اضافه میکنید؟"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"وقتی کاربر جدیدی را اضافه میکنید آن فرد باید فضای خودش را تنظیم کند.\n\nهر کاربری میتواند برنامهها را برای همه کاربران دیگر بهروزرسانی کند."</string> - <string name="battery_saver_notification_title" msgid="237918726750955859">"بهینهسازی باتری روشن است."</string> + <string name="battery_saver_notification_title" msgid="237918726750955859">"ذخیره کننده باتری روشن است."</string> <string name="battery_saver_notification_text" msgid="820318788126672692">"عملکرد و اطلاعات پسزمینه را کاهش میدهد"</string> - <string name="battery_saver_notification_action_text" msgid="109158658238110382">"بهینهسازی باتری را خاموش کنید"</string> + <string name="battery_saver_notification_action_text" msgid="109158658238110382">"خاموش کردن ذخیرهکننده باتری"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"محتواها پنهان هستند"</string> <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> شروع به ضبط هر چیزی میکند که در صفحهنمایش شما نمایش داده میشود."</string> <string name="media_projection_remember_text" msgid="3103510882172746752">"دوباره نشان داده نشود"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"غیرفعال کردن VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"قطع اتصال VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"مدیریت دستگاه شما توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nسرپرستتان میتواند تنظیمات، دسترسی شرکت، برنامهها دادههای مرتبط با دستگاهتان و اطلاعات مکان دستگاهتان را کنترل و مدیریت کند. برای دریافت اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"شما به برنامهای برای تنظیم اتصال VPN اجازه دادید.\n\n این برنامه میتواند دستگاه و فعالیت شبکهتان را کنترل کند، از جمله ایمیل، برنامه و وبسایتها."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"مدیریت نمایه کارتان توسط: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nسرپرستتان میتواند فعالیت شبکهتان از جمله ایمیلها، برنامهها و وبسایتهای امن را کنترل کند.\n\nبرای دریافت اطلاعات بیشتر با سرپرستتان تماس بگیرید."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"مدیریت دستگاه شما توسط:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nمدیریت نمایه کار شما توسط:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nسرپرستتان میتواند فعالیت شبکه و دستگاهتان را کنترل کند از جمله ایمیلها، برنامهها و وبسایتهای ایمن.\n\nبرای کسب اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"شما به برنامهای برای تنظیم اتصال VPN اجازه دادید.\n\nاین برنامه میتواند دستگاه و فعالیت شبکهتان را کنترل کند، از جمله ایمیلها، برنامهها و وبسایتهای ایمن."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"دستگاهتان توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g> مدیریت میشود.\n\nسرپرستتان میتواند تنظیمات، دسترسی شرکت، برنامهها، دادههای مرتبط با دستگاهتان و اطلاعات مکان دستگاهتان را کنترل و مدیریت کند.\n\nشما به یک VPN وصل هستید که میتواند فعالیت شبکه شما را کنترل کند، از جمله ایمیلها، برنامهها و وبسایتها.\n\nبرای دریافت اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"نمایه کاری شما توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g> مدیریت میشود.\n\nسرپرستتان میتواند فعالیت شبکهتان از جمله ایمیل، برنامه و وبسایتها را کنترل کند.\n\nبرای دریافت اطلاعات بیشتر با سرپرستتان تماس بگیرید.\n\nهمچنین به یک VPN وصل هستید که میتواند فعالیت شبکه شما را کنترل کند."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"شما به <xliff:g id="APPLICATION">%1$s</xliff:g> وصل شدهاید، که میتواند فعالیت شبکه شما از جمله ایمیل، برنامه و وبسایتها را کنترل کند."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"شما به <xliff:g id="APPLICATION">%1$s</xliff:g> وصل شدهاید، که میتواند فعالیت شبکه شخصی شما از جمله ایمیل، برنامه و وبسایتها را کنترل کند."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"نمایه کاریتان توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g> مدیریت میشود. این به <xliff:g id="APPLICATION">%2$s</xliff:g> وصل است که فعالیت شبکه کاریتان از جمله ایمیل، برنامه و وبسایتها را کنترل میکند.\n\nبرای دریافت اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"نمایه کاری شما توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g> مدیریت میشود. این به <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> متصل است که میتواند فعالیت شبکه کاریتان از جمله ایمیل، برنامه و وبسایتها را کنترل کند.\n\nشما همچنین به <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> متصل هستید که میتواند فعالیت شبکه شخصیتان را کنترل کند."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"دستگاهتان توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g> مدیریت میشود.\n\nسرپرستتان میتواند تنظیمات، دسترسی شرکت، برنامهها، دادههای مرتبط با دستگاهتان و اطلاعات مکان دستگاهتان را کنترل و مدیریت کند.\n\nشما به <xliff:g id="APPLICATION">%2$s</xliff:g> وصل هستید که میتواند فعالیت شبکه شما را کنترل کند، از جمله ایمیل، برنامه و وبسایتها.\n\nبرای دریافت اطلاعات بیشتر، با سرپرستتان تماس بگیرید."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"نمایه کار شما توسط <xliff:g id="ORGANIZATION">%1$s</xliff:g> مدیریت میشود.\n\nسرپرستتان میتواند فعالیت شبکهتان از جمله ایمیلها، برنامهها و وبسایتهای ایمن را کنترل کند.\n\nبرای دریافت اطلاعات بیشتر با سرپرستتان تماس بگیرید.\n\nهمچنین به یک VPN وصل هستید که میتواند فعالیت شبکه شما را کنترل کند."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"دستگاهتان توسط <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> مدیریت میشود.\nمدیریت نمایه کارتان توسط:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nسرپرستتان میتواند فعالیت شبکهتان را کنترل کند، از جمله ایمیلها، برنامهها و وبسایتهای ایمن.\n\nبرای کسب اطلاعات بیشتر، با سرپرستتان تماس بگیرید.\n\nشما همچنین به یک VPN متصل شدهاید که میتواند فعالیت شبکه شخصیتان را کنترل کند"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"دستگاه قفل باقی میماند تا زمانی که قفل آن را به صورت دستی باز کنید"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"دریافت سریعتر اعلانها"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"قبل از باز کردن قفل آنها را مشاهده کنید"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"مشاهده همه"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"پنهان کردن همه"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"اکنون به پایان برسد"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"بزرگ کردن"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"کوچک کردن"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"صفحه نمایش پین شد"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"تا زمانی که پین را بردارید، در نما نگهداشته میشود. برای برداشتن پین، برگشت و نمای کلی را به صورت همزمان لمس کنید و نگهدارید."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"تا زمانی که پین را بردارید، در نما نگهداشته میشود. برای برداشتن پین، نمای کلی را لمس کنید و نگهدارید."</string> @@ -393,37 +386,9 @@ <string name="quick_settings_reset_confirmation_message" msgid="2235970126803317374">"دفعه بعد که آن را روشن کنید، در تنظیمات نشان داده میشود."</string> <string name="quick_settings_reset_confirmation_button" msgid="2660339101868367515">"پنهان کردن"</string> <string name="volumeui_prompt_message" msgid="918680947433389110">"<xliff:g id="APP_NAME">%1$s</xliff:g> میخواهد کنترلکننده صدا باشد."</string> - <string name="volumeui_prompt_allow" msgid="7954396902482228786">"مجاز است"</string> - <string name="volumeui_prompt_deny" msgid="5720663643411696731">"اجازه ندارد"</string> + <string name="volumeui_prompt_allow" msgid="7954396902482228786">"مجاز"</string> + <string name="volumeui_prompt_deny" msgid="5720663643411696731">"رد کردن"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> کنترلکننده صدا است"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"برای بازیابی کنترلکننده اصلی، لمس کنید."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"درحال استفاده از نمایه کاریتان هستید"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"تنظیمکننده واسط کاربری سیستم"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"نمایش درصد شارژ باتری جاسازی شده"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"نمایش درصد سطح باتری در نماد نوار وضعیت، هنگامی که باتری شارژ نمیشود"</string> - <string name="quick_settings" msgid="10042998191725428">"تنظیمات سریع"</string> - <string name="status_bar" msgid="4877645476959324760">"نوار وضعیت"</string> - <string name="demo_mode" msgid="2389163018533514619">"حالت نمایشی"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"فعال کردن حالت نمایشی"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"نمایش حالت نمایشی"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"اترنت"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"هشدار"</string> - <string name="status_bar_work" msgid="6022553324802866373">"نمایه کاری"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"حالت هواپیما"</string> - <string name="add_tile" msgid="2995389510240786221">"افزودن کاشی"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"کاشی پخش عمومی"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"در ساعت <xliff:g id="WHEN">%1$s</xliff:g> صدای زنگ ساعت بعدیتان را نمیشنوید، مگر اینکه قبل از آن، این تنظیم را خاموش کنید"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"در ساعت <xliff:g id="WHEN">%1$s</xliff:g>، دیگر صدای زنگ ساعت را نمیشنوید"</string> - <string name="alarm_template" msgid="3980063409350522735">"در <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"در <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"تنظیمات سریع، <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"نقطه اتصال"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"نمایه کاری"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"برای بعضی افراد سرگرمکننده است اما نه برای همه"</string> - <string name="tuner_warning" msgid="8730648121973575701">"«تنظیمکننده واسط کاربری سیستم» روشهای بیشتری برای تنظیم دقیق و سفارشی کردن واسط کاربری Android در اختیار شما قرار میدهد. ممکن است این ویژگیهای آزمایشی تغییر کنند، خراب شوند یا در نسخههای آینده جود نداشته باشند. با احتیاط ادامه دهید."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ممکن است این ویژگیهای آزمایشی تغییر کنند، خراب شوند یا در نسخههای آینده وجود نداشته باشند. با احتیاط ادامه دهید."</string> - <string name="got_it" msgid="2239653834387972602">"متوجه شدم"</string> - <string name="tuner_toast" msgid="603429811084428439">"تبریک میگوییم! «تنظیمکننده واسط کاربری سیستم» به «تنظیمات» اضافه شد"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"حذف از تنظیمات"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"«تنظیمکننده واسط کاربری سیستم» از تنظیمات حذف شود و همه ویژگیهای آن متوقف شوند؟"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"در نمایه کاری هستید"</string> </resources> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index a036332fa63e..70890b30961f 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Sovelluksen tiedot"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Äskettäin käytetyt ruudut näkyvät tässä"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Hylkää viimeaikaiset sovellukset"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 näyttö Viimeisimmät-kohdassa"</item> - <item quantity="other" msgid="5523506463832158203">"%d näyttöä Viimeisimmät-kohdassa"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d näyttöä Yleistä-kohdassa</item> + <item quantity="one">1 näyttö Yleistä-kohdassa</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ei ilmoituksia"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Käynnissä olevat"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Ilmoitukset"</string> @@ -44,7 +44,7 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Ota virransäästö käyttöön"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Asetukset"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Näytön automaattinen kierto"</string> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Kierrä näyttöä automaattisesti"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ÄÄNET."</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Ilmoitukset"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Sallitaanko USB-vianetsintä?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Tietokoneen RSA-avaintunnistetiedosto on:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Salli aina tällä tietokoneella"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-vianetsintää ei sallita"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Laitteelle tällä hetkellä kirjautunut käyttäjä ei voi ottaa USB-vianetsintää käyttöön. Vaihda käyttöön ensisijainen käyttäjä <xliff:g id="NAME">%s</xliff:g> käyttääksesi tätä ominaisuutta."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoomaa koko näyttöön"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Venytä koko näyttöön"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Tallennetaan kuvakaappausta..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Haku"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Puhelin"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Ääniapuri"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Avaa lukitus"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Avauspainike, odotetaan sormenjälkeä."</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Avaa lukitus jollakin muulla tavalla kuin sormenjäljellä"</string> <string name="unlock_label" msgid="8779712358041029439">"avaa lukitus"</string> <string name="phone_label" msgid="2320074140205331708">"avaa puhelin"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"Avaa ääniapuri"</string> <string name="camera_label" msgid="7261107956054836961">"avaa kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Valitse uusi tehtävien asettelu"</string> <string name="cancel" msgid="6442560571259935130">"Peruuta"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Datasignaali - kaksi palkkia."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Datasignaali - kolme palkkia"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Vahva kuuluvuus."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi pois käytöstä."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Ei Wi-Fi-yhteyttä."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi-signaali – yksi palkki."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi-signaali – kaksi palkkia."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi-signaali – kolme palkkia."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Vahva Wi-Fi-signaali."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Yhteys: <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Yhteys: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ei WiMAX-yhteyttä."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: kaksi palkkia."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX: kolme palkkia."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Vahva WiMAX-signaali."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet on irrotettu."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet on yhdistetty."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ei signaalia."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Ei yhteyttä."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nolla palkkia."</string> @@ -146,9 +144,8 @@ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"Ei SIM-korttia."</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Internetin jakaminen Bluetoothin kautta."</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Internetyhteyden jakaminen Bluetoothin kautta."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Lentokonetila."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Ei SIM-korttia."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Operaattorin verkko muuttuu."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Akun virta <xliff:g id="NUMBER">%d</xliff:g> prosenttia."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Järjestelmän asetukset"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> hylättiin."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Kaikki viimeisimmät sovellukset on hylätty."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Käynnistetään <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Ilmoitus hylätty."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Ilmoitusalue."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Pika-asetukset."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lukitse näyttö."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Asetukset"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Viimeisimmät."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Sulje"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Vahvista"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Käyttäjä: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi poistettiin käytöstä."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Lentokonetila poistettiin käytöstä."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lentokonetila otettiin käyttöön."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Älä häiritse -tila on päällä, vain tärkeät."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Älä häiritse -tila on päällä, täydellinen hiljaisuus."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Älä häiritse -tila on päällä, ei keskeytyksiä."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Älä häiritse -tila on päällä, vain herätykset toistetaan."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Älä häiritse -tila on pois päältä."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Älä häiritse -tila on pois päältä."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Älä häiritse"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Vain tärkeät"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Vain herätykset"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Täydellinen hiljaisuus"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ei häiriöitä"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> laitetta)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth pois käytöstä"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ei yhteyttä"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ei verkkoa"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi-yhteys pois käytöstä"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Ei Wi-Fi-verkkoja käytettävissä"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Tallennettuja verkkoja ei ole käytettävissä"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Suoratoisto"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Lähetetään"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nimetön laite"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Haku"</string> <string name="description_direction_up" msgid="7169032478259485180">"Liu\'uta ylös ja <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Liu\'uta vasemmalle ja <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Äänet ja värinät eivät häiritse sinua, paitsi jos ne ovat hälytyksiä, muistutuksia, tapahtumia tai määrittämiäsi soittajia."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ei keskeytyksiä, ei edes herätyksiä."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Äänet ja värinät eivät häiritse sinua, paitsi jos ne ovat hälytyksiä, muistutuksia, tapahtumia tai määrittämiäsi soittajia."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Muokkaa"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Tämä estää KAIKKI äänet ja värinät, mukaan lukien hälytysten, musiikin, videoiden ja pelien äänet ja värinät. Voit kuitenkin soittaa puheluita."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Tämä estää KAIKKI äänet ja värinät, mukaan lukien hälytysten, musiikin, videoiden ja pelien äänet ja värinät."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Ei häiriöitä"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Vain tärkeät häiriöt"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Vain herätykset"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Seuraava hälytysaika on <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Seuraava hälytysaika on <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Et kuule hälytystä klo <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Vähemmän kiireelliset ilmoitukset ovat alla"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Avaa koskettamalla uudelleen"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Avaa lukitus pyyhkäisemällä ylös"</string> - <string name="phone_hint" msgid="4872890986869209950">"Avaa puhelu pyyhkäisemällä."</string> - <string name="voice_hint" msgid="8939888732119726665">"Avaa ääniapuri pyyhkäisemällä kuvakkeesta."</string> - <string name="camera_hint" msgid="7939688436797157483">"Avaa kamera pyyhkäisemällä."</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Ei lainkaan ääniä. Myös näytönlukuohjelmat ovat äänettömällä."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Täydellinen hiljaisuus"</string> + <string name="phone_hint" msgid="3101468054914424646">"Avaa puhelin pyyhkäisemällä oikealle"</string> + <string name="camera_hint" msgid="5241441720959174226">"Avaa kamera pyyhkäisemällä oikealle"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Ei keskeytyksiä"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Vain tärkeät"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Vain herätykset"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Täydellinen\nhiljaisuus"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Kaikki"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ei\nkeskeytyksiä"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Vain\ntärkeät"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Vain\nherätykset"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Ladataan (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> kunnes täynnä)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Vaihda käyttäjää"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Vaihda käyttäjä (nyt <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Nykyinen käyttäjä: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Näytä profiili"</string> <string name="user_add_user" msgid="5110251524486079492">"Lisää käyttäjä"</string> <string name="user_new_user_name" msgid="426540612051178753">"Uusi käyttäjä"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Aloita alusta"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Kyllä, haluan jatkaa"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Vierailijakäyttäjä"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Poista sovellukset ja tiedot poistamalla vieraskäyttäjä."</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Poista vierailija, jos haluat poistaa sovelluksia ja tietoja."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"POISTA VIERAILIJA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Lisätäänkö uusi käyttäjä?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Kun lisäät uuden käyttäjän, hänen tulee määrittää oman tilansa asetukset.\n\nKaikki käyttäjät voivat päivittää sovelluksia muille käyttäjille."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Poista VPN käytöstä"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Katkaise VPN-yhteys"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Tätä laitetta hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJärjestelmänvalvoja voi tarkkailla ja hallinnoida asetuksiasi, yrityskäyttöä, sovelluksia, laitteeseesi yhdistettyjä tietoja sekä laitteesi sijaintitietoja. Saat lisätietoja järjestelmänvalvojalta."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Olet myöntänyt sovellukselle oikeuden VPN-yhteyden muodostamiseen.\n\nSovellus voi valvoa laitettasi ja toimintaasi verkossa, esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Työprofiiliasi hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJärjestelmänvalvoja voi tarkkailla toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä.\n\nSaat lisätietoja järjestelmänvalvojalta."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Laitetta hallinnoi \n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nTyöprofiiliasi hallinnoi \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nJärjestelmänvalvoja voi tarkkailla laitteellasi ja verkossa tekemiäsi toimia, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä.\n\nSaat lisätietoja järjestelmänvalvojalta."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Annoit sovellukselle luvan muodostaa VPN-yhteyden.\n\nTämä sovellus voi tarkkailla laitteellasi ja verkossa tekemiäsi toimia, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Tätä laitetta hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJärjestelmänvalvoja voi tarkkailla ja hallinnoida asetuksiasi, yrityskäyttöä, sovelluksia, laitteeseesi yhdistettyjä tietoja sekä laitteesi sijaintitietoja.\n\nKäytät VPN-yhteyttä, joka voi valvoa toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja verkkosivustojen käyttöä.\n\nSaat lisätietoja järjestelmänvalvojalta."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Työprofiiliasi hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJärjestelmänvalvojasi voi valvoa toimintaasi verkossa. Hän voi seurata esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja.\n\nLisätietoja saat järjestelmänvalvojaltasi.\n\nLisäksi olet muodostanut yhteyden VPN-palveluun, joka voi valvoa toimintaasi verkossa."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Olet muodostanut yhteyden sovellukseen <xliff:g id="APPLICATION">%1$s</xliff:g>, joka voi valvoa toimintaasi verkossa. Sovellus voi seurata esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Olet muodostanut yhteyden sovellukseen <xliff:g id="APPLICATION">%1$s</xliff:g>, joka voi valvoa henkilökohtaista toimintaasi verkossa. Sovellus voi seurata esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Työprofiiliasi hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Se on yhteydessä sovellukseen <xliff:g id="APPLICATION">%2$s</xliff:g>, joka voi valvoa työhön liittyvää toimintaasi verkossa. Sovellus voi seurata esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja.\n\nSaat lisätietoja järjestelmänvalvojaltasi."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Työprofiiliasi hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Se on yhteydessä sovellukseen <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, joka voi valvoa työhön liittyvää toimintaasi verkossa. Sovellus voi seurata esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja.\n\nLisäksi olet yhteydessä sovellukseen <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, joka voi valvoa henkilökohtaista toimintaasi verkossa."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Laitettasi hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJärjestelmänvalvojasi voi valvoa ja hallinnoida laitteesi asetuksia, yrityskäyttöä, sovelluksia, laitteeseesi liittyviä tietoja ja laitteen sijaintitietoja.\n\nOlet yhteydessä sovellukseen <xliff:g id="APPLICATION">%2$s</xliff:g>, joka voi valvoa toimintaasi verkossa. Sovellus voi seurata esimerkiksi avaamiasi sähköposteja, sovelluksia ja verkkosivustoja.\n\nLisätietoja saat järjestelmänvalvojaltasi."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Työprofiiliasi hallinnoi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJärjestelmänvalvoja voi tarkkailla toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä.\n\nSaat lisätietoja järjestelmänvalvojalta.\n\nKäytät myös VPN-yhteyttä, joka voi valvoa toimiasi verkossa."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Laitettasi hallinnoi <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nTyöprofiiliasi hallinnoi \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nJärjestelmänvalvoja voi tarkkailla toimiasi verkossa, esimerkiksi sähköpostin, sovellusten ja turvallisten verkkosivustojen käyttöä.\n\nSaat lisätietoja järjestelmänvalvojalta.\n\nKäytät myös VPN-yhteyttä, joka voi valvoa toimiasi verkossa."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Laite pysyy lukittuna, kunnes se avataan käsin"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Näe ilmoitukset nopeammin"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Näytä ennen lukituksen avaamista"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Näytä kaikki"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Piilota kaikki"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Lopeta nyt"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Laajenna."</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Tiivistä."</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Näyttö on kiinnitetty"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Tämä pitää sen näkyvissä, kunnes poistat kiinnityksen. Kosketa Edellinen- ja Viimeisimmät-kohtaa samanaikaisesti pitkään kiinnityksen poistamiseksi."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Tämä pitää sen näkyvissä, kunnes poistat kiinnityksen. Kosketa Viimeisimmät-kohtaa pitkään kiinnityksen poistamiseksi."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Estä"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> on äänenvoimakkuusvalinta."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Palauta alkuperäinen koskettamalla."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Käytät työprofiilia."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Näytä akun varaus kuvakkeessa"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Näyttää akun varausprosentin tilapalkin kuvakkeessa, kun laitetta ei ladata."</string> - <string name="quick_settings" msgid="10042998191725428">"Pika-asetukset"</string> - <string name="status_bar" msgid="4877645476959324760">"Tilapalkki"</string> - <string name="demo_mode" msgid="2389163018533514619">"Esittelytila"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Ota esittelytila käyttöön"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Näytä esittelytila"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Herätys"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Työprofiili"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Lentokonetila"</string> - <string name="add_tile" msgid="2995389510240786221">"Lisää ruutu"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Lähetysruutu"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Et kuule seuraavaa hälytystäsi (<xliff:g id="WHEN">%1$s</xliff:g>), ellet poista tätä tilaa käytöstä ennen sitä."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Et kuule seuraavaa hälytystäsi (<xliff:g id="WHEN">%1$s</xliff:g>)."</string> - <string name="alarm_template" msgid="3980063409350522735">"kello <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"ajankohtana <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Pika-asetukset, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Työprofiili"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Ei sovellu kaikkien käyttöön"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner antaa lisämahdollisuuksia Android-käyttöliittymän muokkaamiseen. Nämä kokeelliset ominaisuudet voivat muuttua, lakata toimimasta tai kadota milloin tahansa. Jatka omalla vastuullasi."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Nämä kokeelliset ominaisuudet voivat muuttua, lakata toimimasta tai kadota milloin tahansa. Jatka omalla vastuullasi."</string> - <string name="got_it" msgid="2239653834387972602">"Selvä"</string> - <string name="tuner_toast" msgid="603429811084428439">"Hienoa! System UI Tuner on nyt lisätty Asetuksiin."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Poista Asetuksista"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Haluatko poistaa System UI Tunerin Asetuksista ja lopettaa sen ominaisuuksien käytön?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Olet Work-profiilissa"</string> </resources> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index c770d6cb4180..1d2b12b9bd17 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informations sur l\'application"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Vos écrans récents s\'affichent ici"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Masquer les applications récentes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 écran dans Aperçu"</item> - <item quantity="other" msgid="5523506463832158203">"%d écrans dans Aperçu"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">Aperçu de %d écran</item> + <item quantity="other">Aperçu de %d écrans</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Aucune notification"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"En cours"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifications"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Autoriser le débogage USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Empreinte numérique de la clé RSA de l\'ordinateur : \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Toujours autoriser sur cet ordinateur"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Débogage USB non autorisé"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"L\'utilisateur actuellement connecté sur cet appareil ne peut pas activer le débogage USB. Pour utiliser cette fonctionnalité, l\'utilisateur principal « <xliff:g id="NAME">%s</xliff:g> » doit se connecter."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoomer pour remplir l\'écran"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Étirer pour remplir l\'écran"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Enregistrement capture écran…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Rechercher"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Appareil photo"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Téléphone"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Assistance vocale"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Déverrouiller"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Bouton de déverrouillage. En attente d\'une empreinte digitale…"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Déverrouiller le système sans utiliser votre empreinte digitale"</string> <string name="unlock_label" msgid="8779712358041029439">"déverrouiller"</string> <string name="phone_label" msgid="2320074140205331708">"Ouvrir le téléphone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ouvrir l\'assistance vocale"</string> <string name="camera_label" msgid="7261107956054836961">"Ouvrir l\'appareil photo"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Sélectionner un nouveau format de tâche"</string> <string name="cancel" msgid="6442560571259935130">"Annuler"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Signal moyen"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Signal bon"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Signal excellent"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi désactivé"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi déconnecté"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Signal Wi-Fi faible"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Signal Wi-Fi moyen"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Signal Wi-Fi bon"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Signal Wi-Fi excellent"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Connecté à : <xliff:g id="WIFI">%s</xliff:g>"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Connecté à : <xliff:g id="BLUETOOTH">%s</xliff:g>"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Aucun signal WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX : moyen"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Signal WiMAX : bon"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Signal WiMAX : excellent"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet déconnecté."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet connecté."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Aucun signal"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Non connecté"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Aucun signal"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Aucune carte SIM"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Partage de connexion Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode Avion"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Aucune carte SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Modification du réseau du fournisseur de services"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Application \"<xliff:g id="APP">%s</xliff:g>\" ignorée."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Toutes les applications récentes ont été supprimées."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Lancement de <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification masquée"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Volet des notifications"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Paramètres rapides"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Écran de verrouillage"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Paramètres"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Aperçu"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Fermer"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmer"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilisateur : <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi désactivé"</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Le mode Avion est désactivé."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Le mode Avion est activé."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Mode « Ne pas déranger » activé, interruptions prioritaires uniquement."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Mode « Ne pas déranger » activé, aucune interruption"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Mode « Ne pas déranger » activé, sans interruption."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Mode « Ne pas déranger » activé, alarmes uniquement."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Mode « Ne pas déranger » désactivé."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Le mode « Ne pas déranger » a bien été désactivé."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne pas déranger"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priorités seulement"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarmes uniquement"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Aucune interruption"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Aucune interruption"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> appareils)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"BLUETOOTH DÉSACTIVÉ"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Non connecté"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi désactivé"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Aucun réseau Wi-Fi à proximité"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Aucun des réseaux enregistrés n\'est disponible"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Diffuser"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Diffusion"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Appareil sans nom"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Recherche"</string> <string name="description_direction_up" msgid="7169032478259485180">"Faire glisser le doigt vers le haut : <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="7207478719805562165">"Faites glisser votre doigt vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Vous ne serez pas dérangé par les sonneries ni les vibrations, sauf pour les alarmes, les rappels, les événements et les appels des personnes que vous spécifiez."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Aucune interruption. Même pas pour les alarmes."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Vous ne serez pas dérangé par les sonneries ni les vibrations, sauf pour les alarmes, les rappels, les événements et les appels des personnes que vous spécifiez."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personnaliser"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Cette option permet de bloquer TOUS les sons et vibrations, y compris pour les alarmes, la musique, les vidéos et les jeux. Vous pourrez quand même faire des appels téléphoniques."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Cette option permet de bloquer TOUS les sons et vibrations, y compris pour les alarmes, la musique, les vidéos et les jeux."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Aucune interruption"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Interruptions prioritaires seulement"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarmes uniquement"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Prochaine alarme : <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Prochaine alarme : <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Vous n\'entendrez pas votre alarme à <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifications moins urgentes affichées ci-dessous"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Touchez à nouveau pour ouvrir"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Glissez vers le haut pour déverrouiller"</string> - <string name="phone_hint" msgid="4872890986869209950">"Balayez à partir de l\'icône pour accéder au téléphone"</string> - <string name="voice_hint" msgid="8939888732119726665">"Balayez à partir de l\'icône pour accéder à l\'assist. vocale"</string> - <string name="camera_hint" msgid="7939688436797157483">"Balayez à partir de l\'icône pour accéder à l\'appareil photo"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Aucune interruption : le son des lecteurs d\'écran sera également désactivé."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Aucune interruption"</string> + <string name="phone_hint" msgid="3101468054914424646">"Balayez l\'écran vers la droite pour accéder au téléphone"</string> + <string name="camera_hint" msgid="5241441720959174226">"Balayez l\'écran vers la gauche pour accéder à l\'appareil photo"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Aucune interruption"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Priorités seulement"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarmes uniquement"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Aucune\ninterruption"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Tous"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Aucune\ninterruption"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priorités\nuniquement"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarmes\nuniquement"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charge en cours... (chargée à 100 %% dans <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Changer d\'utilisateur"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Changer d\'utilisateur (utilisateur actuel <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Utilisateur actuel : <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Afficher le profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Ajouter un utilisateur"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nouvel utilisateur"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recommencer"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Oui, continuer"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Utilisateur invité"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Pour supprimer des applications et des données, retirez l\'utilisateur invité"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Retirez l\'invité pour supprimer des applications et données"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"RETIRER L\'INVITÉ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Ajouter un utilisateur?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Lorsque vous ajoutez un utilisateur, celui-ci doit configurer son espace.\n\nN\'importe quel utilisateur peut mettre à jour les applications pour tous les autres utilisateurs."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Désactiver le RPV"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Déconnecter le RPV"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Votre appareil est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et les données de localisation de celui-ci. Pour en savoir plus, communiquez avec votre administrateur."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Vous avez autorisé une application à configurer une connexion RPV.\n\nCette application peut contrôler l\'activité de votre appareil et votre activité sur le réseau, y compris les courriels, les applications et les sites Web."</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Votre appareil est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et les données de localisation de celui-ci.\n\nVous êtes connecté à un RPV qui peut contrôler votre activité sur le réseau (courriels, applications et sites Web).\n\nPour en savoir plus, communiquez avec votre administrateur."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau, y compris les courriels, les applications et les sites Web.\n\nPour en savoir plus, communiquez avec votre administrateur.\n\nVous êtes également connecté à un RPV qui peut contrôler votre activité sur le réseau."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"RPV"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Vous êtes connecté à <xliff:g id="APPLICATION">%1$s</xliff:g>. Cette application peut contrôler votre activité sur le réseau, y compris les courriels, les applications et les sites Web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Vous êtes connecté à <xliff:g id="APPLICATION">%1$s</xliff:g>. Cette application peut contrôler votre activité personnelle sur le réseau, y compris les courriels, les applications et les sites Web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Il est connecté à <xliff:g id="APPLICATION">%2$s</xliff:g>. Cette application peut contrôler votre activité sur le réseau, y compris les courriels, les applications et les sites Web.\n\nPour en savoir plus, communiquez avec votre administrateur."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Il est connecté à <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>. Cette application peut contrôler votre activité sur le réseau, y compris les courriels, les applications et les sites Web.\n\nVous êtes également connecté à <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>. Cette application peut contrôler votre activité personnelle sur le réseau."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Votre appareil est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et ses données de localisation.\n\nVous êtes connecté à <xliff:g id="APPLICATION">%2$s</xliff:g>, qui peut contrôler votre activité réseau, y compris les courriels, les applications et les sites Web.\n\nPour en savoir plus, communiquez avec votre administrateur."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (courriels, applications et sites sécurisés).\n\nPour en savoir plus, communiquez avec votre administrateur."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Votre appareil est géré par \n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVotre profil professionnel est géré par \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nVotre administrateur peut contrôler l\'activité de votre appareil et votre activité réseau (courriels, applications et sites sécurisés).\n\nPour en savoir plus, communiquez avec votre administrateur."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Vous avez autorisé une application à configurer une connexion RPV.\n\nCette application peut contrôler l\'activité de votre appareil et votre activité sur le réseau (courriels, applications et sites sécurisés)."</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Votre appareil géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et les données de localisation de celui-ci.\n\nVous êtes connecté à un RPV qui peut contrôler votre activité sur le réseau (courriels, applications et sites Web).\n\nPour en savoir plus, communiquez avec votre administrateur."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (courriels, applications et sites sécurisés).\n\nPour en savoir plus, communiquez avec votre administrateur.\n\nVous êtes également connecté à un RPV qui peut contrôler votre activité sur le réseau."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Votre appareil est géré par <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVotre profil professionnel est géré par \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (courriels, applications et sites sécurisés).\n\nPour en savoir plus, communiquez avec votre administrateur.\n\nVous êtes également connecté à un RPV qui peut contrôler votre activité personnelle sur le réseau."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"L\'appareil restera verrouillé jusqu\'à ce que vous le déverrouilliez manuellement"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Voir les notifications plus rapidement"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Afficher les notifications avant de déverrouiller l\'appareil"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Tout afficher"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Tout masquer"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Arrêter maintenant"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Développer"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Réduire"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"L\'écran est épinglé"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Cet écran est épinglé jusqu\'à ce que vous annuliez l\'opération. Pour annuler l\'épinglage, maintenez un doigt simultanément sur « Retour » et « Aperçu »."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Cet écran est épinglé jusqu\'à ce que vous annuliez l\'opération. Pour annuler l\'épinglage, maintenez le doigt sur « Aperçu »."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuser"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> correspond à la boîte de dialogue du volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Touchez pour restaurer l\'original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Vous utilisez votre profil professionnel."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Afficher le pourcentage intégré de charge"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Afficher le pourcentage correspondant au niveau de la pile dans l\'icône de la barre d\'état lorsque l\'appareil n\'est pas en charge."</string> - <string name="quick_settings" msgid="10042998191725428">"Paramètres rapides"</string> - <string name="status_bar" msgid="4877645476959324760">"Barre d\'état"</string> - <string name="demo_mode" msgid="2389163018533514619">"Mode Démonstration"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Activer le mode Démonstration"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Afficher le mode Démonstration"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarme"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil professionnel"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Mode Avion"</string> - <string name="add_tile" msgid="2995389510240786221">"Ajouter la tuile"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Diffuser la tuile"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Vous n\'entendrez pas votre prochaine alarme à <xliff:g id="WHEN">%1$s</xliff:g> sauf si vous désactivez préalablement cette option"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Vous n\'entendrez pas votre prochaine alarme à <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"à <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"le <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configuration rapide – <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Point d\'accès sans fil"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profil professionnel"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Divertissant pour certains, mais pas pour tous"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner vous propose de nouvelles manières d\'adapter et de personnaliser l\'interface utilisateur d\'Android. Ces fonctionnalités expérimentales peuvent être modifiées, cesser de fonctionner ou disparaître dans les versions futures. À utiliser avec prudence."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ces fonctionnalités expérimentales peuvent être modifiées, cesser de fonctionner ou disparaître dans les versions futures. À utiliser avec prudence."</string> - <string name="got_it" msgid="2239653834387972602">"J\'ai compris"</string> - <string name="tuner_toast" msgid="603429811084428439">"Félicitations! System UI Tuner a bien été ajouté aux paramètres."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Supprimer des paramètres"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Supprimer « System UI Tuner » des paramètres et arrêter d\'utiliser toutes ses fonctionnalités?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Vous avez activé le profil professionnel"</string> </resources> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 2255e9d1592e..aa1f36db555d 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -22,13 +22,13 @@ <string name="app_label" msgid="7164937344850004466">"Interface du système"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Effacer"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Supprimer de la liste"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Infos application"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informations sur l\'application"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Vos écrans récents s\'affichent ici"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Masquer les applications récentes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 écran dans Aperçu"</item> - <item quantity="other" msgid="5523506463832158203">"%d écrans dans Aperçu"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d écran dans Aperçu</item> + <item quantity="other">%d écrans dans Aperçu</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Aucune notification"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"En cours"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifications"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Autoriser le débogage USB ?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Empreinte numérique de la clé RSA de l\'ordinateur : \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Toujours autoriser sur cet ordinateur"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Débogage USB non autorisé"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"L\'utilisateur actuellement connecté sur cet appareil ne peut pas activer le débogage USB. Pour utiliser cette fonctionnalité, l\'utilisateur principal \"<xliff:g id="NAME">%s</xliff:g>\" doit se connecter."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoomer pour remplir l\'écran"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Étirer pour remplir l\'écran"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Enregistrement capture écran…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Rechercher"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Appareil photo"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Téléphoner"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Assistance vocale"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Déverrouiller"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Bouton de déverrouillage. En attente d\'une empreinte digitale…"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Déverrouiller le système sans utiliser votre empreinte digitale"</string> <string name="unlock_label" msgid="8779712358041029439">"déverrouiller"</string> <string name="phone_label" msgid="2320074140205331708">"ouvrir le téléphone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ouvrir l\'assistance vocale"</string> <string name="camera_label" msgid="7261107956054836961">"ouvrir l\'appareil photo"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Sélectionner un nouveau plan de tâche"</string> <string name="cancel" msgid="6442560571259935130">"Annuler"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Signal moyen"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Signal bon"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Signal excellent"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi désactivé"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi déconnecté"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Signal Wi-Fi faible"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Signal Wi-Fi moyen"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Signal Wi-Fi bon"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Signal Wi-Fi excellent"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Connecté à : <xliff:g id="WIFI">%s</xliff:g>"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Connecté à : <xliff:g id="BLUETOOTH">%s</xliff:g>"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Aucun signal WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX : moyen"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Signal WiMAX : bon"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Signal WiMAX : excellent"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet déconnecté"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet connecté"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Aucun signal"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Non connecté"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Aucun signal"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Aucune carte SIM"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Partage de connexion Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode Avion"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Aucune carte SIM"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Modification du réseau de l\'opérateur"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Application \"<xliff:g id="APP">%s</xliff:g>\" ignorée."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Toutes les applications récentes ont été supprimées."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Lancement de <xliff:g id="APP">%s</xliff:g>"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> : <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notification masquée"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Volet des notifications"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Paramètres rapides"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Écran de verrouillage"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Paramètres"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Aperçu"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Fermer"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmer"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilisateur <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi désactivé."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Le mode Avion est désactivé."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Le mode Avion est activé."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Mode \"Ne pas déranger\" activé, interruptions prioritaires uniquement"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Mode Ne pas déranger activé, aucune interruption"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Mode \"Ne pas déranger\" activé, sans interruption"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Mode \"Ne pas déranger\" activé, alarmes uniquement"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Mode \"Ne pas déranger\" désactivé"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Le mode \"Ne pas déranger\" a bien été désactivé."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne pas déranger"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Prioritaires uniquement"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alarmes uniquement"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Aucune interruption"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Aucune interruption"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> appareils)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth désactivé"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Non connecté"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Aucun réseau"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi désactivé"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Aucun réseau Wi-Fi disponible"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Aucun réseau enregistré disponible."</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Diffuser"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Diffusion"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Appareil sans nom"</string> @@ -292,7 +288,7 @@ <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> au maximum"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avertissement : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Vos écrans récents s\'affichent ici"</string> - <string name="recents_app_info_button_label" msgid="2890317189376000030">"Infos application"</string> + <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informations sur l\'application"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"épinglage d\'écran"</string> <string name="recents_search_bar_label" msgid="8074997400187836677">"rechercher"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"Impossible de lancer <xliff:g id="APP">%s</xliff:g>."</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Rechercher"</string> <string name="description_direction_up" msgid="7169032478259485180">"Faites glisser vers le haut pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Faites glisser vers la gauche pour <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Vous ne serez pas dérangé par les sonneries ni les vibrations, sauf pour les alarmes, les rappels, les événements et les appels des personnes que vous spécifiez."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Aucune sonnerie, pas même pour les alarmes"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Vous ne serez pas dérangé par les sonneries ni les vibrations, sauf pour les alarmes, les rappels, les événements et les appels des personnes que vous spécifiez."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personnaliser"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Cette option permet de bloquer TOUS les sons et les vibrations, y compris pour les alarmes, la musique, les vidéos et les jeux. Vous pourrez toujours passer des appels téléphoniques."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Cette option permet de bloquer TOUS les sons et les vibrations, y compris pour les alarmes, la musique, les vidéos et les jeux."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Aucune sonnerie"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Sonneries prioritaires uniquement"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alarmes uniquement"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Prochaine alarme : <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Prochaine alarme : <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Vous n\'entendrez pas votre alarme à <xliff:g id="ALARM_TIME">%s</xliff:g>."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifications moins urgentes ci-dessous"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Appuyer à nouveau pour ouvrir"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Faire glisser pour déverrouiller"</string> - <string name="phone_hint" msgid="4872890986869209950">"Balayer pour téléphoner"</string> - <string name="voice_hint" msgid="8939888732119726665">"Balayer l\'écran depuis l\'icône pour l\'assistance vocale"</string> - <string name="camera_hint" msgid="7939688436797157483">"Balayer pour prendre une photo"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Aucune interruption : le son des lecteurs d\'écran sera également désactivé."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Aucune interruption"</string> + <string name="phone_hint" msgid="3101468054914424646">"Balayer l\'écran vers la droite pour accéder au téléphone"</string> + <string name="camera_hint" msgid="5241441720959174226">"Balayer l\'écran vers la gauche pour accéder à l\'appareil photo"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Aucune interruption"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Priorit. uniquement"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alarmes uniquement"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Aucune\ninterruption"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Toujours"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Aucune\ninterruption"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priorité\nuniquement"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alarmes\nuniquement"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Charge en cours… (chargé à 100 %% dans <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Changer d\'utilisateur"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Changer d\'utilisateur (utilisateur actuel : <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Utilisateur actuel : <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Afficher le profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Ajouter un utilisateur"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nouvel utilisateur"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Non, nouvelle session"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Oui, continuer"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Invité"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Pour supprimer des applis et des données, retirez l\'invité."</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Retirez l\'invité pour supprimer des applications et données."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"RETIRER L\'INVITÉ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Ajouter un utilisateur ?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Lorsque vous ajoutez un utilisateur, celui-ci doit configurer son espace.\n\nN\'importe quel utilisateur peut mettre à jour les applications pour tous les autres utilisateurs."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Désactiver le VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Déconnecter le VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Votre appareil est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et les informations de localisation de celui-ci. Pour en savoir plus, contactez votre administrateur."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Vous avez autorisé une application à configurer une connexion VPN.\n\nCette application peut contrôler l\'activité de votre appareil et votre activité sur le réseau, y compris votre activité relative aux e-mails, aux applications et aux sites Web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (e-mails, applications et sites sécurisés).\n\nPour en savoir plus, contactez votre administrateur."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Votre appareil est géré par \n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVotre profil professionnel est géré par \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nVotre administrateur peut contrôler l\'activité de votre appareil et votre activité réseau (e-mails, applications et sites sécurisés).\n\nPour en savoir plus, contactez votre administrateur."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Vous avez autorisé une application à configurer une connexion VPN.\n\nCette application peut contrôler l\'activité de votre appareil et votre activité sur le réseau (e-mails, applications et sites sécurisés)."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Votre appareil géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et les informations de localisation de celui-ci.\n\nVous êtes connecté à un VPN qui peut contrôler votre activité sur le réseau (e-mails, applications et sites Web).\n\nPour en savoir plus, contactez votre administrateur."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (e-mails, applications et sites Web).\n\nPour en savoir plus, contactez votre administrateur.\n\nVous êtes également connecté à un VPN qui peut contrôler votre activité sur le réseau."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Vous êtes connecté à <xliff:g id="APPLICATION">%1$s</xliff:g>. Cette application peut contrôler votre activité sur le réseau, y compris l\'activité relative aux e-mails, aux applications et aux sites Web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Vous êtes connecté à <xliff:g id="APPLICATION">%1$s</xliff:g>. Cette application peut contrôler votre activité personnelle sur le réseau, y compris votre activité relative aux e-mails, aux applications et aux sites Web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Il est connecté à <xliff:g id="APPLICATION">%2$s</xliff:g>. Cette application peut contrôler l\'activité de ce profil sur le réseau, y compris l\'activité relative aux e-mails, aux applications et aux sites Web.\n\nPour en savoir plus, contactez votre administrateur."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Il est connecté à <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>. Cette application peut contrôler l\'activité de ce profil sur le réseau, y compris l\'activité relative aux e-mails, aux applications et aux sites Web.\n\nVous êtes également connecté à <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>. Cette application peut surveiller votre activité personnelle sur le réseau."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Votre appareil géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler et gérer les paramètres, l\'accès aux contenus de l\'entreprise, les applications, les données associées à cet appareil et les informations de localisation de celui-ci.\n\nVous êtes connecté à <xliff:g id="APPLICATION">%2$s</xliff:g> qui peut contrôler votre activité sur le réseau (e-mails, applications et sites Web).\n\nPour en savoir plus, contactez votre administrateur."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Votre profil professionnel est géré par <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (e-mails, applications et sites sécurisés).\n\nPour en savoir plus, contactez votre administrateur.\n\nVous êtes également connecté à un VPN qui peut contrôler votre activité sur le réseau."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Votre appareil est géré par <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVotre profil professionnel est géré par \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nVotre administrateur peut contrôler votre activité sur le réseau (e-mails, applications et sites sécurisés).\n\nPour en savoir plus, contactez votre administrateur.\n\nVous êtes également connecté à un VPN qui peut contrôler votre activité personnelle sur le réseau."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"L\'appareil restera verrouillé jusqu\'à ce que vous le déverrouilliez manuellement."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Recevoir les notifications plus vite"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Afficher les notifications avant de déverrouiller l\'appareil"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Tout afficher"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Tout masquer"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Arrêter maintenant"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Développer"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Réduire"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Écran épinglé"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Cet écran est épinglé jusqu\'à annulation de l\'opération. Pour annuler l\'épinglage, appuyez simultanément sur \"Retour\" et \"Aperçu\" de manière prolongée."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Cet écran est épinglé jusqu\'à annulation de l\'opération. Pour annuler l\'épinglage, appuyez de manière prolongée sur \"Aperçu\"."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuser"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> correspond à la boîte de dialogue du volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Appuyez pour restaurer l\'interface d\'origine."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Vous utilisez votre profil professionnel."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Afficher le pourcentage intégré de la batterie"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Affichez le pourcentage correspondant au niveau de la batterie dans l\'icône de la barre d\'état lorsque l\'appareil n\'est pas en charge."</string> - <string name="quick_settings" msgid="10042998191725428">"Configuration rapide"</string> - <string name="status_bar" msgid="4877645476959324760">"Barre d\'état"</string> - <string name="demo_mode" msgid="2389163018533514619">"Mode de démonstration"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Activer le mode de démonstration"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Afficher le mode de démonstration"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarme"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil professionnel"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Mode Avion"</string> - <string name="add_tile" msgid="2995389510240786221">"Ajouter une tuile"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Tuile de diffusion"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Vous n\'entendrez pas votre prochaine alarme <xliff:g id="WHEN">%1$s</xliff:g>, sauf si vous désactivez cette option avant."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Vous n\'entendrez pas votre prochaine alarme <xliff:g id="WHEN">%1$s</xliff:g>."</string> - <string name="alarm_template" msgid="3980063409350522735">"à <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"le <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configuration rapide – <xliff:g id="TITLE">%s</xliff:g>"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Point d\'accès"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profil professionnel"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Divertissant pour certains, mais pas pour tous"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner vous propose de nouvelles manières d\'adapter et de personnaliser l\'interface utilisateur Android. Ces fonctionnalités expérimentales peuvent être modifiées, cesser de fonctionner ou disparaître dans les versions futures. À utiliser avec prudence."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ces fonctionnalités expérimentales peuvent être modifiées, cesser de fonctionner ou ne plus être disponibles dans les versions futures. À utiliser avec prudence."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Félicitations ! System UI Tuner a bien été ajouté aux paramètres."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Supprimer l\'outil des paramètres"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Supprimer System UI Tuner des paramètres et arrêter d\'utiliser toutes ses fonctionnalités ?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Vous consultez le profil professionnel."</string> </resources> diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml index 09018e8d2c30..1af91bcc2266 100644 --- a/packages/SystemUI/res/values-gl-rES/strings.xml +++ b/packages/SystemUI/res/values-gl-rES/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Información da aplicación"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"As túas pantallas recentes aparecen aquí"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Rexeitar aplicacións recentes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 pantalla en Visión xeral"</item> - <item quantity="other" msgid="5523506463832158203">"%d pantallas en Visión xeral"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d pantallas en visión xeral</item> + <item quantity="one">Unha pantalla en visión xeral</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Non hai notificacións"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"En curso"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificacións"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Permitir a depuración de erros de USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"A impresión dixital da clave de RSA do ordenador é:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Permitir sempre desde este ordenador"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Non se permite a depuración por USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"O usuario que está conectado actualmente neste dispositivo non pode activar a depuración por USB. Para usar esta función, cambia ao usuario principal “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Ampliar ata ocupar todo"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Estirar ata ocupar todo"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Gardando captura de pantalla…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Buscar"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Cámara"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Teléfono"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Asistente de voz"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloquear"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botón de desbloqueo; agardando pola impresión dixital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloquea sen usar a túa impresión dixital"</string> <string name="unlock_label" msgid="8779712358041029439">"desbloquear"</string> <string name="phone_label" msgid="2320074140205331708">"abrir teléfono"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"abrir asistente de voz"</string> <string name="camera_label" msgid="7261107956054836961">"abrir cámara"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Seleccionar novo deseño de tarefas"</string> <string name="cancel" msgid="6442560571259935130">"Cancelar"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Sinal de datos: dúas barras"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tres barras de sinal de datos"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinal de datos: completo"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi desactivada"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi desconectada"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Unha barra de wifi"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Dúas barras de wifi"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Tres barras de wifi"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Sinal completo de wifi"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Conectado a <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Non hai WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dúas barras de WiMAX"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Tres barras de WiMAX"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Sinal completo de WiMAX"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Desconectouse a Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Conectouse a Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Sen sinal"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Non conectada"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Ningunha barra"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Sen SIM"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Ancoraxe de Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avión"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Non hai tarxeta SIM"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Cambio de rede do operador."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Rexeitouse <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Rexeitáronse todas as aplicacións recentes."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Iniciando <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificación rexeitada"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Sombra de notificación"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configuración rápida"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Pantalla de bloqueo."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configuración"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visión xeral."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Pechar"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmar"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuario <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi desactivada."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Desactivouse o modo avión."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Activouse o modo avión."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Non molestar activado, só prioridade."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Non molestar activado, silencio total."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Non molestar activado, sen interrupcións."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Non molestar activado, só alarmas."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"A opción Non molestar está desactivada."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Desactivouse a opción Non molestar."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Non molestar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Só prioridade"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Só alarmas"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silencio total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sen interrupcións"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desactivado"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Non conectada"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Non hai rede"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wifi desactivada"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Non hai redes wifi dispoñibles"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Non hai redes gardadas dispoñibles"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Emisión"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Emitindo"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sen nome"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Buscar"</string> <string name="description_direction_up" msgid="7169032478259485180">"Pasa o dedo cara arriba para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Pasa o dedo cara a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Non te molestará ningún son nin vibración, agás os procedentes de alarmas, recordatorios, eventos de emisores de chamada especificados."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Non hai interrupcións nin alarmas."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Non te molestará ningún son nin vibración, agás os procedentes de alarmas, recordatorios, eventos de emisores de chamada especificados."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Esta acción bloquea TODOS os sons e vibracións, incluídos os das alarmas, música, vídeos e xogos. Aínda podes facer chamadas de teléfono."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Esta acción bloquea TODOS os sons e vibracións, incluídos os das alarmas, música, vídeos e xogos."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Sen interrupcións"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Só interrupcións prioritarias"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Só alarmas"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"A túa próxima alarma ten lugar ás <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"A túa próxima alarma ten lugar o <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Non escoitarás a túa alarma ás <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificacións menos urxentes abaixo"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Toca outra vez para abrir o elemento"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Pasa o dedo cara arriba para desbloquear"</string> - <string name="phone_hint" msgid="4872890986869209950">"Pasa o dedo desde a icona para acceder ao teléfono"</string> - <string name="voice_hint" msgid="8939888732119726665">"Pasa o dedo desde a icona para acceder ao asistente de voz"</string> - <string name="camera_hint" msgid="7939688436797157483">"Pasa o dedo desde a icona para acceder á cámara"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silencio total. Esta acción tamén silenciará os lectores de pantalla."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silencio total"</string> + <string name="phone_hint" msgid="3101468054914424646">"Pasa o dedo cara á dereita para acceder ao teléfono"</string> + <string name="camera_hint" msgid="5241441720959174226">"Pasa o dedo cara á esquerda para abrir a cámara"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sen interrupcións"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Só prioridade"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Só alarmas"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silencio\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Todas"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ningunha\ninterrupción"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Só\nprioridade"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Só\nalarmas"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Cargando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> para finalizar a carga)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambiar usuario"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambiar usuario, usuario actual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Usuario actual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostrar perfil"</string> <string name="user_add_user" msgid="5110251524486079492">"Engadir usuario"</string> <string name="user_new_user_name" msgid="426540612051178753">"Novo usuario"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Comezar de novo"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Si, continuar"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Usuario convidado"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Para eliminar aplicacións e datos, elimina usuario invitado"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Quita o convidado para eliminar aplicacións e datos"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"QUITAR CONVIDADO"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Engadir un usuario novo?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Cando engadas un usuario novo, este deberá configurar o seu espazo\n\nCalquera usuario pode actualizar as aplicacións para todos os demais usuarios."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Desactivar VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"O teu dispositivo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO teu administrador pode supervisar e xestionar a configuración, o acceso corporativo, as aplicacións, os datos asociados co teu dispositivo e a información de localización do teu dispositivo. Para obter máis información, ponte en contacto co teu administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Outorgaches permiso a unha aplicación para configurar unha conexión VPN.\n\nEsta aplicación pode supervisar a túa actividade na rede, incluídos os correos electrónicos, as aplicacións e os sitios web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"O teu perfil de traballo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO teu administrador é capaz de supervisar a actividade da túa rede, incluídos os correos electrónicos, as aplicacións e os sitios web seguros.\n\nPara obter máis información, ponte en contacto co teu administrador."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"O teu dispositivo está xestionado por:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nO teu perfil de traballo está xestionado por:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nO teu administrador pode supervisar o teu dispositivo e a actividade da rede, incluídos os correos electrónicos, as aplicacións e os sitios web seguros.\n\nPara obter máis información, ponte en contacto co teu administrador."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Outorgaches permiso a unha aplicación para configurar unha conexión VPN.\n\nEsta aplicación pode controlar a actividade da rede e do dispositivo, incluídos os correos electrónicos, as aplicacións e os sitios web seguros."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"O teu dispositivo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO teu administrador pode supervisar e xestionar a configuración, o acceso corporativo, as aplicacións, os datos asociados co teu dispositivo e a información de localización do teu dispositivo.\n\nEstás conectado a unha VPN, que pode supervisar a túa actividade de rede, incluídos os correos electrónicos, as aplicacións e os sitios web.\n\nPara obter máis información, ponte en contacto co teu administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"O teu perfil de traballo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO teu administrador é capaz de supervisar a túa actividade na rede, incluídos os correos electrónicos, as aplicacións e os sitios web.\n\nPara obter máis información, ponte en contacto co teu administrador.\n\nTamén estás conectado a unha VPN, que pode supervisar a túa actividade na rede."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Estás conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode supervisar a túa actividade na rede, incluídos os correos electrónicos, as aplicacións e os sitios web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Estás conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode supervisar a túa actividade persoal na rede, incluídos os correos electrónicos, as aplicacións e os sitios web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"O teu perfil de traballo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Está conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode supervisar a túa actividade na rede, incluídos os correos electrónicos, as aplicacións e os sitios web.\n\nPara obter máis información, ponte en contacto co teu administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"O teu perfil de traballo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Está conectado a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que pode supervisar a túa actividade na rede, incluídos os correos electrónicos, as aplicacións e os sitios web.\n\nTamén estás conectado a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que pode supervisar a túa actividade persoal na rede."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"O dispositivo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO teu administrador pode supervisar e xestionar a configuración, o acceso corporativo, as aplicacións, os datos asociados co dispositivo e a información de localización do dispositivo.\n\nEstás conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode supervisar a túa actividade na rede: os correos electrónicos, as aplicacións e os sitios web.\n\nPara obter máis información, contacta co teu administrador."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"O teu perfil de traballo está xestionado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO teu administrador é capaz de supervisar a actividade da túa rede, incluídos os correos electrónicos, as aplicacións e os sitios web seguros.\n\nPara obter máis información, ponte en contacto co teu administrador.\n\nTamén estás conectado a unha VPN, que pode supervisar a túa actividade na rede."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"O teu dispositivo está xestionado por <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nO teu perfil de traballo está xestionado por:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nO teu administrador pode supervisar a túa actividade da rede, incluídos os correos electrónicos, as aplicacións e os sitios web seguros.\n\nPara obter máis información, ponte en contacto co teu administrador.\n\nTamén estás conectado a unha VPN, que pode supervisar a túa actividade da rede persoal"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"O dispositivo permanecerá bloqueado ata que o desbloquees manualmente"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Recibir notificacións máis rápido"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Consúltaas antes de desbloquear"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver todo"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar todo"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Finalizar agora"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Ampliar"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Contraer"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"A pantalla está fixada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"A pantalla manterase visible ata que anules a fixación. Para facelo, mantén premido Atrás e Visión xeral ao mesmo tempo."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"A pantalla manterase visible ata que anules a fixación. Para facelo, mantén premido Visión xeral."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Denegar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é o cadro de diálogo de volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toca para restaurar o orixinal."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Estás usando o perfil de traballo"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Configurador da IU do sistema"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostrar porcentaxe de batería inserida"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostrar porcentaxe do nivel de batería na icona da barra de estado cando non está en carga"</string> - <string name="quick_settings" msgid="10042998191725428">"Configuración rápida"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra de estado"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modo de demostración"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Activar modo de demostración"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostrar modo de demostración"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarma"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil de traballo"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modo avión"</string> - <string name="add_tile" msgid="2995389510240786221">"Engade un mosaico"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Mosaico controlado pola emisión"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Non escoitarás a alarma seguinte <xliff:g id="WHEN">%1$s</xliff:g> a menos que desactives esta opción antes desa hora"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Non escoitarás a alarma seguinte <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"ás <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"o <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configuración rápida: <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Zona wifi"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil de traballo"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversión só para algúns"</string> - <string name="tuner_warning" msgid="8730648121973575701">"O configurador da IU do sistema ofréceche formas adicionais de modificar e personalizar a interface de usuario de Android. Estas funcións experimentais poden cambiar, interromperse ou desaparecer en futuras versións. Continúa con precaución."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Estas funcións experimentais poden cambiar, interromperse ou desaparecer en futuras versións. Continúa con precaución."</string> - <string name="got_it" msgid="2239653834387972602">"De acordo"</string> - <string name="tuner_toast" msgid="603429811084428439">"Parabéns! O configurador da IU do sistema engadiuse a Configuración"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Eliminar da Configuración"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Queres eliminar o configurador da IU do sistema da Configuración e deixar de usar todas as súas funcións?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Está no perfil de traballo"</string> </resources> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 43d55efb3e9a..ccf1e3e2befe 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ऐप्स की जानकारी"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"आपकी हाल की स्क्रीन यहां दिखाई देती हैं"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"हाल ही के ऐप्स खारिज करें"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"अवलोकन मेें 1 स्क्रीन"</item> - <item quantity="other" msgid="5523506463832158203">"अवलोकन में %d स्क्रीन"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">अवलोकन में %d स्क्रीन</item> + <item quantity="other">अवलोकन में %d स्क्रीन</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"कोई नोटिफिकेशन नहीं"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"ऑनगोइंग"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"सूचनाएं"</string> @@ -41,7 +41,7 @@ <string name="battery_low_why" msgid="4553600287639198111">"सेटिंग"</string> <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"बैटरी बचतकर्ता चालू करें?"</string> <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"चालू करें"</string> - <string name="battery_saver_start_action" msgid="5576697451677486320">"बैटरी बचाएँ"</string> + <string name="battery_saver_start_action" msgid="5576697451677486320">"बैटरी बचतकर्ता को चालू करें"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"सेटिंग"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"वाई-फ़ाई"</string> <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"स्क्रीन अपनेआप घुमाएं"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB डीबगिंग करने दें?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"कंप्यूटर का RSA कुंजी फ़िंगरप्रिंट है:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"इस कंप्यूटर से हमेशा अनुमति दें"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB डीबगिंग की अनुमति नहीं है"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"इस डिवाइस में वर्तमान में प्रवेश किया हुआ उपयोगकर्ता USB डीबगिंग चालू नहीं कर सकता. इस सुविधा का उपयोग करने के लिए, प्राथमिक उपयोगकर्ता “<xliff:g id="NAME">%s</xliff:g>” पर स्विच करें."</string> <string name="compat_mode_on" msgid="6623839244840638213">"स्क्रीन भरने के लिए ज़ूम करें"</string> <string name="compat_mode_off" msgid="4434467572461327898">"स्क्रीन को भरने के लिए खींचें"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"स्क्रीनशॉट सहेजा जा रहा है..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"खोजें"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"कैमरा"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"फ़ोन"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"वॉइस सहायक"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"अनलॉक करें"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"अनलॉक बटन, फ़िंगरप्रिंट की प्रतीक्षा कर रहा है"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"अपने फ़िंगरप्रिंट का उपयोग किए बिना अनलॉक करें"</string> <string name="unlock_label" msgid="8779712358041029439">"अनलॉक करें"</string> <string name="phone_label" msgid="2320074140205331708">"फ़ोन खोलें"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"वॉइस सहायक खोलें"</string> <string name="camera_label" msgid="7261107956054836961">"कैमरा खोलें"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"नया कार्य लेआउट चुनें"</string> <string name="cancel" msgid="6442560571259935130">"अभी नहीं"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"डेटा दो बार."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"डेटा तीन बार."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"पूर्ण डेटा सिग्नल."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi बंद."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi डिस्कनेक्ट है."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WiFi एक बार."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WiFi दो बार."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi तीन बार."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"पूर्ण WiFi सिग्नल."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> से कनेक्ट किया गया."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> से कनेक्ट किया गया."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX नहीं."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX दो बार."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX तीन बार."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX सिग्नल पूर्ण."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ईथरनेट डिस्कनेक्ट किया गया."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ईथरनेट कनेक्ट किया गया."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"कोई सिग्नल नहीं."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"कनेक्ट नहीं है."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"शून्य बार."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"कोई सिम नहीं."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ब्लूटूथ टेदरिंग."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"हवाई जहाज मोड."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"कोई सिम कार्ड नहीं है."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"वाहक नेटवर्क बदलना."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> प्रतिशत बैटरी."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"सिस्टम सेटिंग."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> खा़रिज कर दिया गया."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"हाल ही के सभी ऐप्लिकेशन ख़ारिज कर दिए गए."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> प्रारंभ हो रहा है."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"नोटिफिकेशन खारिज की गई."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"नोटिफिकेशन शेड."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"त्वरित सेटिंग."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"लॉक स्क्रीन."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिंग"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"अवलोकन."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"बंद करें"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"पुष्टि करें"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"उपयोगकर्ता <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"वाई-फ़ाई को बंद किया गया."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"हवाई जहाज़ मोड को बंद किया गया."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"हवाई जहाज़ मोड को चालू किया गया."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"परेशान ना करें चालू, केवल प्राथमिकता."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"परेशान ना करें चालू है, पूरी तरह शांत."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"परेशान ना करें चालू है, कोई बाधा नहीं."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"परेशान ना करें चालू, केवल अलार्म."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"परेशान ना करें बंद."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"परेशान ना करें बंद किया गया."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"परेशान ना करें"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"केवल प्राथमिकता"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"केवल अलार्म"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"पूरी तरह शांत"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"कोई मेसज और कॉल को नहीं रोका गया"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लूटूथ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लूटूथ (<xliff:g id="NUMBER">%d</xliff:g> डिवाइस)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ब्लूटूथ बंद"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"कनेक्ट नहीं है"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"कोई नेटवर्क नहीं"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"वाई-फ़ाई बंद"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"कोई भी वाई-फ़ाई नेटवर्क उपलब्ध नहीं है"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"कोई भी सहेजा गया नेटवर्क उपलब्ध नहीं"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"कास्ट करें"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"कास्टिंग"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"अनाम डिवाइस"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"खोजें"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> के लिए ऊपर स्लाइड करें."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> के लिए बाएं स्लाइड करें."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"आपको आपके द्वारा निर्दिष्ट किए गए अलार्म, रिमाइंडर्स, ईवेंट और कॉलर को छोड़कर अन्य ध्वनियों और कंपनों के द्वारा परेशान नहीं किया जाएगा."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ऐसा सेट करें की कोई कि अलार्म भी ना हो."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"आपको आपके द्वारा निर्दिष्ट किए गए अलार्म, रिमाइंडर्स, ईवेंट और कॉलर को छोड़कर अन्य ध्वनियों और कंपनों के द्वारा परेशान नहीं किया जाएगा."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"कस्टमाइज़ करें"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"इससे अलार्म, संगीत, वीडियो और गेम सहित सभी ध्वनियां और कंपन अवरुद्ध हो जाते हैं. आप अभी भी फ़ोन काॅल कर सकेंगे."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"इससे अलार्म, संगीत, वीडियो और गेम सहित सभी ध्वनियां और कंपन अवरुद्ध हो जाते हैं."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"कोई अवरोध नहीं"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"केवल प्राथमिकता वाले कल और मैसेज को रोकें"</string> + <string name="zen_alarms" msgid="5055668280767657759">"केवल अलार्म"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"आपका अगला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> पर है"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"आपका अगला अलार्म <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> पर है"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"आपको <xliff:g id="ALARM_TIME">%s</xliff:g> पर अपना अलार्म सुनाई नहीं देगा"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"कम अत्यावश्यक सूचनाएं नीचे दी गई हैं"</string> <string name="notification_tap_again" msgid="8524949573675922138">"खोलने के लिए पुन: स्पर्श करें"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"अनलॉक करने के लिए ऊपर स्वाइप करें"</string> - <string name="phone_hint" msgid="4872890986869209950">"फ़ोन के लिए आइकन से स्वाइप करें"</string> - <string name="voice_hint" msgid="8939888732119726665">"वॉइस सहायक के लिए आइकन से स्वाइप करें"</string> - <string name="camera_hint" msgid="7939688436797157483">"कैमरे के लिए आइकन से स्वाइप करें"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"संपूर्ण मौन. इससे स्क्रीन रीडर भी मौन हो जाएंगे."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"पूरी तरह शांत"</string> + <string name="phone_hint" msgid="3101468054914424646">"फ़ोन के लिए दाएं स्वाइप करें"</string> + <string name="camera_hint" msgid="5241441720959174226">"कैमरे के लिए बाएं स्वाइप करें"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"कोई बाधा नहीं"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"केवल प्राथमिकता"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"केवल अलार्म"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"पूरी तरह\nशांत"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"सभी"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"कोई बाधा\nनहीं"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"केवल\nप्राथमिकता"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"केवल\nअलार्म"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"चार्ज हो रहा है (पूरा होने में <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> बाकी)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"उपयोगकर्ता स्विच करें"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"उपयोगकर्ता स्विच करें, वर्तमान उपयोगकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"वर्तमान उपयोगकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"प्रोफ़ाइल दिखाएं"</string> <string name="user_add_user" msgid="5110251524486079492">"उपयोगकर्ता जोड़ें"</string> <string name="user_new_user_name" msgid="426540612051178753">"नया उपयोगकर्ता"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"पुन: प्रारंभ करें"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"हां, जारी रखें"</string> <string name="guest_notification_title" msgid="1585278533840603063">"अतिथि उपयोगकर्ता"</string> - <string name="guest_notification_text" msgid="335747957734796689">"ऐप्स और डेटा हटाने के लिए, अतिथि उपयोगकर्ता को निकालें"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"ऐप्स और डेटा हटाने के लिए अतिथि को निकालें"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"अतिथि को निकालें"</string> <string name="user_add_user_title" msgid="4553596395824132638">"नया उपयोगकर्ता जोड़ें?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"जब आप कोई नया उपयोगकर्ता जोड़ते हैं तो उस व्यक्ति को अपना स्थान सेट करना होता है.\n\nकोई भी उपयोगकर्ता अन्य सभी उपयोगकर्ताओं के लिए ऐप्स अपडेट कर सकता है."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN अक्षम करें"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN डिस्कनेक्ट करें"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"आपका डिवाइस <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है.\n\nआपका नियंत्रक सेटिंग, कॉर्पोरेट ऐक्सेस, ऐप्स, आपके डिवाइस से संबद्ध डेटा और आपके डिवाइस की स्थान जानकारी की निगरानी और उसका प्रबंधन कर सकता है. अधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"आपने किसी ऐप को VPN कनेक्शन सेट करने की अनुमति दी है.\n\nयह ऐप ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके डिवाइस और नेटवर्क की गतिविधि की निगरानी कर सकता है."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"आपकी कार्य प्रोफ़ाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है.\n\nआपका नियंत्रक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी करने में सक्षम है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"आपका डिवाइस इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nआपकी कार्य प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nआपका नियंत्रक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके डिवाइस और नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"आपने किसी ऐप को VPN कनेक्शन सेट करने की अनुमति दी है.\n\nयह ऐप ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपके डिवाइस और नेटवर्क की गतिविधि की निगरानी कर सकता है."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"आपका डिवाइस <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है.\n\nआपका नियंत्रक सेटिंग, कॉर्पोरेट ऐक्सेस, ऐप्स, आपके डिवाइस से संबद्ध डेटा और आपके डिवाइस की स्थान जानकारी की निगरानी और उसका प्रबंधन कर सकता है.\n\nआप एक VPN से कनेक्ट हैं, जो ईमेल, ऐप्स और वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"आपकी कार्य प्रोफ़ाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है.\n\nआपका नियंत्रक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी करने में सक्षम है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें.\n\nआप एक ऐसे VPN से भी कनेक्ट हैं, जो आपकी नेटवर्क गतिविधि की निगरानी कर सकता है."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"आप <xliff:g id="APPLICATION">%1$s</xliff:g> से कनेक्ट हैं, जो ईमेल, ऐप्स और वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"आप <xliff:g id="APPLICATION">%1$s</xliff:g> से कनेक्ट हैं, जो ईमेल, ऐप्स और वेबसाइटों सहित आपकी व्यक्तिगत नेटवर्क गतिविधि की निगरानी कर सकता है."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"आपकी कार्य प्रोफ़ाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है. वह <xliff:g id="APPLICATION">%2$s</xliff:g> से कनेक्ट है, जो ईमेल, ऐप्स और वेबसाइटों सहित आपकी कार्य नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"आपकी कार्य प्रोफ़ाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है. वह <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> से कनेक्ट है, जो ईमेल, ऐप्स और वेबसाइटों सहित आपकी कार्य नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nआप <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> से भी कनेक्ट हैं, जो आपकी व्यक्तिगत नेटवर्क गतिविधि की निगरानी कर सकता है."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"आपका डिवाइस <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है.\n\nआपका नियंत्रक सेटिंग, कॉर्पोरेट ऐक्सेस, ऐप्स, आपके डिवाइस से संबद्ध डेटा और आपके डिवाइस की स्थान जानकारी की निगरानी और उसका प्रबंधन कर सकता है.\n\nआप <xliff:g id="APPLICATION">%2$s</xliff:g> से कनेक्ट हैं, जो ईमेल, ऐप्स और वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी कर सकता है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"आपकी कार्य प्रोफ़ाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> के द्वारा प्रबंधित है.\n\nआपका नियंत्रक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी करने में सक्षम है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें.\n\nआप एक ऐसे VPN से भी कनेक्ट हैं, जो आपकी नेटवर्क गतिविधि की निगरानी कर सकता है."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"आपका डिवाइस <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> के द्वारा प्रबंधित है.\nआपकी कार्य प्रोफ़ाइल इनके द्वारा प्रबंधित है:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nआपका नियंत्रक ईमेल, ऐप्स और सुरक्षित वेबसाइटों सहित आपकी नेटवर्क गतिविधि की निगरानी करने में सक्षम है.\n\nअधिक जानकारी के लिए, अपने नियंत्रक से संपर्क करें.\n\nआप एक VPN से भी कनेक्ट हैं, जो आपकी व्यक्तिगत नेटवर्क गतिविधि की निगरानी कर सकता है"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"जब तक कि आप मैन्युअल रूप से अनलॉक नहीं करते तब तक डिवाइस लॉक रहेगा"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"सूचनाएं अधिक तेज़ी से प्राप्त करें"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"आपके द्वारा उन्हें अनलॉक किए जाने से पहले देखें"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"सभी देखें"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"सभी छिपाएं"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"अब समाप्त करें"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"विस्तृत करें"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"संक्षिप्त करें"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"स्क्रीन पिन कर दी गई है"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"इससे वह तब तक दृश्य में रहता है जब तक कि आप उसे अनपिन नहीं कर देते. अनपिन करने के लिए वापस जाएं और अवलोकन करें को एक ही समय पर स्पर्श करके रखें."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"इससे वह तब तक दृश्य में बना रहता है जब तक कि आप उसे अनपिन नहीं कर देते. अनपिन करने के लिए अवलोकन करें को स्पर्श करके रखें."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"अस्वीकार करें"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> वॉल्यूम संवाद है"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"मूल वॉल्यूम को फिर से लाने के लिए स्पर्श करें."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"आप अपनी कार्य प्रोफ़ाइल का उपयोग कर रहे हैं"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"सिस्टम UI ट्यूनर"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"एम्बेड किया गया बैटरी प्रतिशत दिखाएं"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"जब चार्ज नहीं किया जा रहा हो तब स्थिति बार आइकन में बैटरी स्तर का प्रतिशत दिखाएं"</string> - <string name="quick_settings" msgid="10042998191725428">"तेज़ सेटिंग"</string> - <string name="status_bar" msgid="4877645476959324760">"स्थिति बार"</string> - <string name="demo_mode" msgid="2389163018533514619">"डेमो मोड"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"डेमो मोड सक्षम करें"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"डेमो मोड दिखाएं"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ईथरनेट"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"अलार्म"</string> - <string name="status_bar_work" msgid="6022553324802866373">"कार्य प्रोफ़ाइल"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"हवाई जहाज़ मोड"</string> - <string name="add_tile" msgid="2995389510240786221">"टाइल जोड़ें"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"टाइल प्रसारित करें"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"आपको <xliff:g id="WHEN">%1$s</xliff:g> पर अपना अगला अलार्म तब तक सुनाई नहीं देगा जब तक कि आप अलार्म को इस समय से पहले बंद नहीं कर देते"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"आपको <xliff:g id="WHEN">%1$s</xliff:g> पर अपना अगला अलार्म नहीं सुनाई देगा"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> बजे"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> पर"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"तेज़ सेटिंग, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"हॉटस्पॉट"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"कार्य प्रोफ़ाइल"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"कुछ के लिए मज़ेदार लेकिन सबके लिए नहीं"</string> - <string name="tuner_warning" msgid="8730648121973575701">"सिस्टम UI ट्यूनर आपको Android उपयोगकर्ता इंटरफ़ेस में सुधार करने और उसे कस्टमाइज़ करने के अतिरिक्त तरीके प्रदान करता है. ये प्रयोगात्मक सुविधाएं आगामी रिलीज़ में बदल सकती हैं, रुक सकती हैं या दिखाई देना बंद हो सकती हैं. सावधानी से आगे बढ़ें."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ये प्रयोगात्मक सुविधाएं आगामी रिलीज़ में बदल सकती हैं, रुक सकती हैं या दिखाई देना बंद हो सकती हैं. सावधानी से आगे बढ़ें."</string> - <string name="got_it" msgid="2239653834387972602">"समझ लिया"</string> - <string name="tuner_toast" msgid="603429811084428439">"बधाई हो! सिस्टम UI ट्यूनर को सेटिंग में जोड़ दिया गया है"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"सेटिंग से निकालें"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"सेटिंग से सिस्टम UI ट्यूनर निकालें और इसकी सभी सुविधाओं का उपयोग रोक दें?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"आप कार्य प्रोफ़ाइल में हैं"</string> </resources> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index 1c6216903f34..c7a6b5e92044 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -25,10 +25,11 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informacije o aplikaciji"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Ovdje se pojavljuju vaši nedavni zasloni"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Odbaci nedavne aplikacije"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 zaslon u Pregledu"</item> - <item quantity="other" msgid="5523506463832158203">"Broj zaslona u Pregledu: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d zaslon u Pregledu</item> + <item quantity="few">%d zaslona u Pregledu</item> + <item quantity="other">%d zaslona u Pregledu</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Bez obavijesti"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"U tijeku"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Obavijesti"</string> @@ -60,11 +61,9 @@ <string name="label_view" msgid="6304565553218192990">"Prikaži"</string> <string name="always_use_device" msgid="1450287437017315906">"Koristi se prema zadanim postavkama za ovaj USB uređaj"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Koristi se prema zadanim postavkama za ovaj USB pribor"</string> - <string name="usb_debugging_title" msgid="4513918393387141949">"Omogućiti uklanjanje pogrešaka putem USB-a?"</string> + <string name="usb_debugging_title" msgid="4513918393387141949">"Omogućiti rješavanje programske pogreške na USB-u?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Otisak prsta RSA ključa računala je: \n <xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Uvijek dopusti s ovog računala"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Otklanjanje pogrešaka putem USB-a nije dopušteno"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Korisnik koji je trenutačno prijavljen na ovaj uređaj ne može uključiti otklanjanje pogrešaka putem USB-a. Da biste upotrebljavali tu značajku, prijeđite na primarnog korisnika \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zumiraj i ispuni zaslon"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Rastegni i ispuni zaslon"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Spremanje snimke zaslona..."</string> @@ -85,13 +84,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Pretraži"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparat"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Glasovna pomoć"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Otključavanje"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Gumb za otključavanje, čekanje na otisak prsta"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Otključavanje bez otiska prsta"</string> <string name="unlock_label" msgid="8779712358041029439">"otključavanje"</string> <string name="phone_label" msgid="2320074140205331708">"otvaranje telefona"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"otvaranje glasovne pomoći"</string> <string name="camera_label" msgid="7261107956054836961">"otvaranje fotoaparata"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Odaberite novi izgled zadataka"</string> <string name="cancel" msgid="6442560571259935130">"Odustani"</string> @@ -114,6 +109,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Podatkovni signal dva stupca."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Podatkovni signal tri stupca."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Podatkovni signal pun."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi je isključen."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi je isključen."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi signal ima jedan stupac."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi signal ima dva stupca."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi signal ima tri stupca."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi signal je pun."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Spojen na <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Spojen na <xliff:g id="BLUETOOTH">%s</xliff:g> ."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nema signala WiMAX."</string> @@ -121,8 +122,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX s dva stupca."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX s tri stupca."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Signal WiMAX potpun je."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Prekinuta je veza s ethernetom."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Uspostavljena je veza s ethernetom."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Nema signala."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nije povezano."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nijedan stupac."</string> @@ -148,7 +147,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nema SIM kartice."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Posredno povezivanje Bluetootha."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Način rada u zrakoplovu"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Nema SIM kartice."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Promjena mreže operatera."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterija <xliff:g id="NUMBER">%d</xliff:g> posto."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Postavke sustava."</string> @@ -165,14 +163,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Aplikacija <xliff:g id="APP">%s</xliff:g> odbačena je."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Odbačene su sve nedavne aplikacije."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Pokretanje aplikacije <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Obavijest je odbačena."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Zaslon obavijesti."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Brze postavke."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Zaključavanje zaslona."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Postavke"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Pregled."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Zatvaranje"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Potvrdi"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Korisnik <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi isključen."</string> @@ -184,7 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Način rada u zrakoplovu isključen."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Način rada u zrakoplovu uključen."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Ne ometaj\" uključeno, samo prioritetno."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\"Ne ometaj\" uključeno, potpuna tišina."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Ne ometaj\" uključeno, bez prekida."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Ne ometaj\" uključeno, samo za alarme."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Ne ometaj\" isključeno."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Ne ometaj\" isključeno."</string> @@ -239,7 +236,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne ometaj"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Samo prioritetno"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Samo alarmi"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Potpuna tišina"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Bez prekida"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (broj uređaja: <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth isključen"</string> @@ -264,7 +261,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nije povezano"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nema mreže"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi isključen"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nije dostupna nijedna Wi-Fi mreža"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Spremljene mreže nisu dostupne"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Emitiranje"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Emitiranje"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Uređaj bez naziva"</string> @@ -306,28 +303,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Pretraživanje"</string> <string name="description_direction_up" msgid="7169032478259485180">"Kliznite prema gore za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Kliznite lijevo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Neće vas prekidati zvukovi i vibracije, osim alarma, podsjetnika, događaja i pozivatelja koje navedete."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Bez prekida, čak ni za alarme."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Neće vas prekidati zvukovi i vibracije, osim alarma, podsjetnika, događaja i pozivatelja koje navedete."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Prilagodi"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"To blokira SVE zvukove i vibracije, uključujući alarme, glazbu, videozapise i igre. I dalje ćete moći telefonirati."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"To blokira SVE zvukove i vibracije, uključujući alarme, glazbu, videozapise i igre."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Bez prekida"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Samo prioritetni prekidi"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Samo alarmi"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Vaš sljedeći alarm bit će u <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Vaš sljedeći alarm bit će u <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Nećete čuti alarm u <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Manje hitne obavijesti pri dnu"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Dodirnite ponovo da biste otvorili"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Prijeđite prstom prema gore za otključavanje"</string> - <string name="phone_hint" msgid="4872890986869209950">"Prijeđite prstom od ikone za telefon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Prijeđite prstom od ikone za glasovnu pomoć"</string> - <string name="camera_hint" msgid="7939688436797157483">"Prijeđite prstom od ikone za fotoaparat"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Potpuno utišavanje. To će utišati i čitače zaslona."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Potpuna tišina"</string> + <string name="phone_hint" msgid="3101468054914424646">"Prijeđite prstom udesno za telefon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Prijeđite prstom ulijevo za fotoaparat"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Bez prekida"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Samo prioritetno"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Samo alarmi"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Potpuna\ntišina"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Sve"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Bez\nprekida"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Samo\nprioritetno"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Samo\nalarmi"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Punjenje (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> do napunjenosti)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Promjena korisnika"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Promjena korisnika, trenutačni korisnik <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Trenutačan korisnik <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Prikaz profila"</string> <string name="user_add_user" msgid="5110251524486079492">"Dodavanje korisnika"</string> <string name="user_new_user_name" msgid="426540612051178753">"Novi korisnik"</string> @@ -342,7 +342,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Počni ispočetka"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Da, nastavi"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gostujući korisnik"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Da biste izbrisali aplikacije i podatke, uklonite gostujućeg korisnika"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Uklonite gosta da biste izbrisali aplikacije i podatke"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"UKLONI GOSTA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Dodati novog korisnika?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Kada dodate novog korisnika, ta osoba mora postaviti vlastiti prostor.\n\nBilo koji korisnik može ažurirati aplikacije za sve ostale korisnike."</string> @@ -364,15 +364,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Onemogući VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Prekini vezu s VPN-om"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Vašim uređajem upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVaš administrator može nadzirati postavke, pristup tvrtki, aplikacije, podatke povezane s vašim uređajem i podatke o lokaciji uređaja, kao i upravljati svim prethodno navedenim. Više informacija možete saznati od administratora."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Dali ste dopuštenje aplikaciji za postavljanje VPN veze.\n\nTa aplikacija može nadzirati vašu aktivnost na uređaju i mreži, uključujući e-poštu, aplikacije i web-lokacije."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Vašim radnim profilom upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVaš administrator može nadzirati vaše aktivnosti u mreži, uključujući e-poruke, aplikacije i sigurne web-lokacije.\n\nViše informacija možete saznati od administratora."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Vašim uređajem upravlja:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVašim radnim profilom upravlja:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nVaš administrator može nadzirati vaše aktivnosti na uređaju i u mreži, uključujući e-poruke, aplikacije i sigurne web-lokacije.\n\nViše informacija možete saznati od administratora."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Dali ste aplikaciji dopuštenje za uspostavljanje VPN veze.\n\nTa aplikacija može nadzirati vaše aktivnosti na uređaju i u mreži, uključujući e-poruke, aplikacije i sigurne web-lokacije."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Vašim uređajem upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVaš administrator može nadzirati postavke, pristup tvrtki, aplikacije, podatke povezane s vašim uređajem i podatke o lokaciji uređaja, kao i upravljati svim prethodno navedenim.\n\nPovezani ste s VPN-om koji može nadzirati vaše aktivnosti u mreži, uključujući e-poruke, aplikacije i web-lokacije.\n\n Više informacija možete saznati od administratora."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Vašim poslovnim profilom upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVaš administrator može nadzirati vašu aktivnost na mreži, uključujući e-poštu, aplikacije i web-lokacije.\n\nObratite se administratoru za više informacija.\n\nPovezani ste i s VPN-om koji može nadzirati vašu aktivnost na mreži."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Povezani ste s aplikacijom <xliff:g id="APPLICATION">%1$s</xliff:g> koja može nadzirati vašu aktivnost na mreži, uključujući e-poštu, aplikacije i web-lokacije."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Povezani ste s aplikacijom <xliff:g id="APPLICATION">%1$s</xliff:g> koja može nadzirati vašu osobnu aktivnost na mreži, uključujući e-poštu, aplikacije i web-lokacije."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Vašim poslovnim profilom upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Povezan je s aplikacijom <xliff:g id="APPLICATION">%2$s</xliff:g> koja može nadzirati vašu poslovnu aktivnost na mreži, uključujući e-poštu, aplikacije i web-lokacije.\n\nObratite se svojem administratoru za više informacija."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Vašim poslovnim profilom upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Povezan je s aplikacijom <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> koja može nadzirati vašu poslovnu aktivnost na mreži, uključujući e-poštu, aplikacije i web-lokacije.\n\nPovezani ste i s aplikacijom <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> koja može nadzirati vašu osobnu aktivnost na mreži."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Vašim uređajem upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVaš administrator može nadzirati postavke, poslovni pristup, aplikacije, podatke povezane s uređajem i podatke o lokaciji uređaja te upravljati njima.\n\nPovezani ste s aplikacijom <xliff:g id="APPLICATION">%2$s</xliff:g> koja može nadzirati vašu aktivnost na mreži, uključujući e-poštu, aplikacije i web-lokacije.\n\nObratite se svojem administratoru za više informacija."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Vašim radnim profilom upravlja <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nVaš administrator može nadzirati vašu aktivnost u mreži, uključujući e-poruke, aplikacije i sigurne web-lokacije.\n\n Više informacija možete saznati od administratora.\n\nPovezani ste i s VPN-om, koji može nadzirati vaše aktivnosti u mreži."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Vašim uređajem upravlja <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVašim radnim profilom upravlja:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nVaš administrator može nadzirati vaše aktivnosti u mreži, uključujući e-poruke, aplikacije i sigurne web-lokacije.\n\nViše informacija možete saznati od administratora.\n\nPovezani ste i s VPN-om, koji može nadzirati vaše osobne aktivnosti u mreži"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Uređaj će ostati zaključan dok ga ručno ne otključate"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Primajte obavijesti brže"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Pogledajte ih prije otključavanja"</string> @@ -381,9 +378,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Pokaži sve"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Sakrij sve"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Prekini sada"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Proširivanje"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Sažimanje"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Zaslon je prikvačen"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Zaslon će tako ostati u prvom planu dok ga ne otkvačite. Istovremeno dodirnite i držite Natrag i Pregled da biste ga otkvačili."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Zaslon će tako ostati u prvom planu dok ga ne otkvačite. Dodirnite i držite Pregled da biste ga otkvačili."</string> @@ -397,33 +391,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odbij"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> predstavlja dijaloški okvir za upravljanje glasnoćom"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Dodirnite da biste vratili izvorno."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Upotrebljavate radni profil"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Ugađanje korisničkog sučelja sustava"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Prikaži ugrađeni postotak baterije"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Prikazivanje postotka razine baterije na ikoni trake statusa kada se ne puni"</string> - <string name="quick_settings" msgid="10042998191725428">"Brze postavke"</string> - <string name="status_bar" msgid="4877645476959324760">"Traka statusa"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo način"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Omogući demo način"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Prikaži demo način"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Radni profil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Način rada u zrakoplovu"</string> - <string name="add_tile" msgid="2995389510240786221">"Dodavanje pločice"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Emitiranje pločice"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Nećete čuti sljedeći alarm <xliff:g id="WHEN">%1$s</xliff:g> ako to ne isključite prije njega"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Nećete čuti sljedeći alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"u <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Brze postavke, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Žarišna točka"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Radni profil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Zabava za neke, ali ne za sve"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Ugađanje korisničkog sučelja sustava pruža vam dodatne načine za prilagodbu korisničkog sučelja Androida. Te se eksperimentalne značajke mogu promijeniti, prekinuti ili nestati u budućim izdanjima. Nastavite uz oprez."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Te se eksperimentalne značajke mogu promijeniti, prekinuti ili nestati u budućim izdanjima. Nastavite uz oprez."</string> - <string name="got_it" msgid="2239653834387972602">"Shvaćam"</string> - <string name="tuner_toast" msgid="603429811084428439">"Čestitamo! Ugađanje korisničkog sučelja sustava dodano je u Postavke"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Ukloni iz Postavki"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Želite li ukloniti Ugađanje korisničkog sučelja sustava iz Postavki i prestati upotrebljavati njegove značajke?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Nalazite se na profilu Worka"</string> </resources> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 17a29f0fda69..55b522ea36f4 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Alkalmazásinformáció"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"A legutóbbi képernyők itt jelennek meg"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Újabb alkalmazások elvetése"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 képernyő Áttekintés alatt"</item> - <item quantity="other" msgid="5523506463832158203">"%d képernyő Áttekintés alatt"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d képernyő áttekintés alatt</item> + <item quantity="one">1 képernyő áttekintés alatt</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nincs értesítés"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Folyamatban van"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Értesítések"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Engedélyezi az USB hibakeresést?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"A számítógép RSA kulcs ujjlenyomata:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Mindig engedélyezze erről a számítógépről"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Az USB hibakeresése nem engedélyezett"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Az eszközre jelenleg bejelentkezett felhasználó nem engedélyezheti az USB hibakeresését. A funkció használatához váltson az elsődleges felhasználóra: <xliff:g id="NAME">%s</xliff:g>."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Nagyítás a kitöltéshez"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Nyújtás kitöltéshez"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Képernyőkép mentése..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Keresés"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Hangsegéd"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Feloldás"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Feloldás gomb, várakozás az ujjlenyomatra"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Feloldás ujjlenyomat nélkül"</string> <string name="unlock_label" msgid="8779712358041029439">"feloldás"</string> <string name="phone_label" msgid="2320074140205331708">"telefon megnyitása"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"hangsegéd megnyitása"</string> <string name="camera_label" msgid="7261107956054836961">"kamera megnyitása"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Új feladatelrendezés kiválasztása"</string> <string name="cancel" msgid="6442560571259935130">"Mégse"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Adat két sáv."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Adat három sáv."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Adatjel teljes."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi kikapcsolva."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Nincs Wi-Fi kapcsolat."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi jel: egy sáv."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi jel: két sáv."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi jel: három sáv."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi jel teljes."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Csatlakoztatva a következőhöz: <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Csatlakoztatva a következőhöz: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nincs WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-jel: két sáv."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX-jel: három sáv."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-jel: teljes."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet leválasztva."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet csatlakoztatva."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Nincs jel."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nincs csatlakozva."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nincs sáv."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nincs SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth megosztása."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Repülőgép üzemmód."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Nincs SIM kártya."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Szolgáltatói hálózat váltása."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Akkumulátor <xliff:g id="NUMBER">%d</xliff:g> százalék."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Rendszerbeállítások"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> eltávolítva."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Az összes alkalmazás eltávolítva a nemrég használtak közül."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"A(z) <xliff:g id="APP">%s</xliff:g> indítása."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Értesítés elvetve."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Értesítési felület."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Gyorsbeállítások."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lezárási képernyő."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Beállítások"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Áttekintés."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Bezárás"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Megerősítés"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Felhasználó: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi kikapcsolva."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Repülős üzemmód kikapcsolva."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Repülős üzemmód bekapcsolva."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"A „Ne zavarjanak” mód bekapcsolva. Csak prioritásos."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"„Ne zavarjanak” mód bekapcsolva; teljes némítás."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"A „Ne zavarjanak” mód bekapcsolva. Nincsenek értesítések."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"A „Ne zavarjanak” mód bekapcsolva. Csak riasztások."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"A „Ne zavarjanak” mód kikapcsolva."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"A „Ne zavarjanak” mód kikapcsolva."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne zavarjanak"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Csak prioritásos"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Csak riasztások"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Teljes némítás"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ne zavarjon"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> eszköz)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth kikapcsolva"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nincs kapcsolat"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nincs hálózat"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi kikapcsolva"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nincs elérhető Wi-Fi-hálózat"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nem áll rendelkezésre mentett hálózat"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Tartalomátküldés"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Átküldés"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Név nélküli eszköz"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Keresés"</string> <string name="description_direction_up" msgid="7169032478259485180">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa felfelé."</string> <string name="description_direction_left" msgid="7207478719805562165">"A(z) <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> művelethez csúsztassa balra."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Nem zavarják majd hanghatások, sem rezgés, kivéve az ébresztéseket, emlékeztetőket, eseményeket és az Ön által megjelölt hívókat."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Semmi sem zavarja meg, még a riasztások sem."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Nem fogják zavarni hanghatások és rezgés, kivéve az ébresztéseket, emlékeztetőket, eseményeket és az Ön által megjelölt hívókat."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Személyre szabás"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Ez letiltja az ÖSSZES hanghatást és rezgést, beleértve az ébresztések, zeneszámok, videók és játékok hangjait is. Telefonhívást továbbra is indíthat majd."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Ez letiltja az ÖSSZES hanghatást és rezgést, beleértve az ébresztések, zeneszámok, videók és játékok hangjait is."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Ne zavarjon"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Csak prioritást élvező zavaró üzenetek"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Csak riasztások"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"A következő ébresztés ideje: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"A következő ébresztés napja és ideje: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Nem fogja hallani az ébresztést ekkor: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"A kevésbé sürgős értesítések lentebb vannak"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Érintse meg ismét a megnyitáshoz"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Húzza felfelé az ujját a feloldáshoz"</string> - <string name="phone_hint" msgid="4872890986869209950">"A telefonhoz csúsztasson az ikonról"</string> - <string name="voice_hint" msgid="8939888732119726665">"A hangsegéd eléréséhez csúsztassa ujját az ikonról"</string> - <string name="camera_hint" msgid="7939688436797157483">"A fényképezőhöz csúsztasson az ikonról"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Teljes csend. Ezzel a képernyőolvasók is elnémulnak."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Teljes némítás"</string> + <string name="phone_hint" msgid="3101468054914424646">"A telefon eléréséhez csúsztassa ujját jobbra"</string> + <string name="camera_hint" msgid="5241441720959174226">"A fényképezőgép eléréséhez csúsztassa ujját balra"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Ne zavarjon"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Csak prioritásos"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Csak riasztások"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Teljes\nnémítás"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Összes"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nincs\nmegszakítás"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Csak\nprioritás"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Csak\nriasztások"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Töltés (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> a teljes töltöttségig)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Felhasználóváltás"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Felhasználóváltás (a jelenlegi felhasználó: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Jelenlegi felhasználó (<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Profil megjelenítése"</string> <string name="user_add_user" msgid="5110251524486079492">"Felhasználó hozzáadása"</string> <string name="user_new_user_name" msgid="426540612051178753">"Új felhasználó"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Újrakezdés"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Igen, folytatom"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Vendég felhasználó"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Távolítsa el a vendéget az alkalmazások és adatok törléséhez"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Vendég eltávolítása az alkalmazások és adatok törléséhez"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"VENDÉG ELTÁVOLÍTÁSA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Új felhasználó hozzáadása?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Ha új felhasználót ad hozzá, az illetőnek be kell állítania saját tárterületét.\n\nBármely felhasználó frissítheti az alkalmazásokat valamennyi felhasználó számára."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN letiltása"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN-kapcsolat bontása"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Az eszközt a következő felügyeli:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nRendszergazdája ellenőrizheti és módosíthatja a beállításokat, vállalati hozzáféréseket, alkalmazásokat, az eszközéhez társított adatokat és eszköze helyadatait. További tájékoztatásért forduljon rendszergazdájához."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Engedélyezte egy alkalmazásnak, hogy VPN-kapcsolatot létesítsen.\n\nEz az alkalmazás (az e-mailekre, alkalmazásokra és a webhelyekre is kiterjedően) figyelemmel kísérheti az Ön eszközét és hálózati tevékenységét."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Munkaprofilját a következő felügyeli: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nRendszergazdája (az e-mailekre, alkalmazásokra és a biztonságos webhelyekre is kiterjedően) figyelemmel kísérheti hálózati tevékenységét.\n\nTovábbi tájékoztatásért forduljon rendszergazdájához."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Az eszközt a következő felügyeli:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nA munkaprofilt a következő felügyeli:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nRendszergazdája (az e-mailekre, alkalmazásokra és a biztonságos webhelyekre kiterjedően is) figyelemmel kísérheti tevékenységét eszközén és a hálózaton.\n\nTovábbi tájékoztatásért forduljon rendszergazdájához."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Engedélyezte egy alkalmazásnak, hogy VPN-kapcsolatot létesítsen.\n\nEz az alkalmazás (az e-mailekre, alkalmazásokra és a biztonságos webhelyekre is kiterjedően) figyelemmel kísérheti az Ön eszközét és hálózati tevékenységét."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Eszközét a következő felügyeli: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nRendszergazdája figyelemmel kísérheti és módosíthatja beállításait, vállalati hozzáféréseit, alkalmazásait, az eszközéhez társított adatokat és eszköze helyadatait.\n\n Ön egy VPN-hez is kapcsolódik, amely (az e-mailekre, alkalmazásokra és webhelyekre is kiterjedően) figyelemmel kísérheti hálózati tevékenységét.\n\nTovábbi tájékoztatásért forduljon rendszergazdájához."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Munkaprofilját a következő felügyeli: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nA rendszergazda (az e-mailekre, alkalmazásokra és a webhelyekre is kiterjedően) figyelemmel kísérheti hálózati tevékenységét.\n\nTovábbi információért forduljon a rendszergazdához.\n\nÖn egy VPN-hez is csatlakozik, amely szintén figyelemmel kísérheti hálózati tevékenységét."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Csatlakoztatta a(z) <xliff:g id="APPLICATION">%1$s</xliff:g> alkalmazást, amely figyelheti hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a webhelyeket."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Csatlakoztatta a(z) <xliff:g id="APPLICATION">%1$s</xliff:g> alkalmazást, amely figyelheti személyes hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a webhelyeket."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Munkaprofilját a(z) <xliff:g id="ORGANIZATION">%1$s</xliff:g> felügyeli. Csatlakoztatva van hozzá a(z) <xliff:g id="APPLICATION">%2$s</xliff:g> alkalmazás, amely figyelheti az Ön hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a webhelyeket.\n\nTovábbi információért forduljon a rendszergazdájához."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Munkaprofilját a(z) <xliff:g id="ORGANIZATION">%1$s</xliff:g> felügyeli. Csatlakoztatva van hozzá a(z) <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> alkalmazás, amely figyelheti az Ön hálózati tevékenységét, beleértve az e-maileket, az alkalmazásokat és a webhelyeket.\n\nCsatlakoztatta továbbá a(z) <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> alkalmazást, amely szintén figyelemmel kísérheti személyes hálózati tevékenységét."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Eszközét a következő felügyeli: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nA rendszergazda figyelemmel kísérheti és módosíthatja beállításait, vállalati hozzáféréseit, alkalmazásait, az eszközéhez társított adatokat és eszköze helyadatait.\n\nÖn a következőhöz csatlakozik: <xliff:g id="APPLICATION">%2$s</xliff:g>, amely (az e-mailekre, alkalmazásokra és webhelyekre is kiterjedően) figyelemmel kísérheti hálózati tevékenységét.\n\nTovábbi információért forduljon a rendszergazdához."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Munkaprofilját a következő felügyeli: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nRendszergazdája (az e-mailekre, alkalmazásokra és a biztonságos webhelyekre is kiterjedően) figyelemmel kísérheti hálózati tevékenységét.\n\nTovábbi tájékoztatásért forduljon rendszergazdájához.\n\nÖn egy VPN-hez is csatlakozik, amely szintén figyelemmel kísérheti hálózati tevékenységét."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Eszközét a következő felügyeli: <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nMunkaprofilját a következő felügyeli:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nRendszergazdája (az e-mailekre, alkalmazásokra és a biztonságos webhelyekre is kiterjedően) figyelemmel kísérheti hálózati tevékenységét.\n\nTovábbi tájékoztatásért forduljon rendszergazdájához.\n\nÖn egy VPN-hez is kapcsolódik, amely szintén figyelemmel kísérheti személyes hálózati tevékenységét."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Az eszköz addig zárolva marad, amíg kézileg fel nem oldja"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Gyorsabban megkaphatja az értesítéseket"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Már a képernyőzár feloldása előtt megtekintheti őket"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Az összes megjelenítése"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Az összes elrejtése"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Befejezés most"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Kibontás"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Összecsukás"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"A képernyő rögzítve van"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Megjelenítve tartja addig, amíg Ön fel nem oldja fel a rögzítést. A rögzítés feloldásához tartsa egyszerre lenyomva a Vissza és az Áttekintés lehetőséget."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Megjelenítve tartja addig, amíg Ön fel nem oldja a rögzítést. A feloldáshoz tartsa lenyomva az Áttekintés lehetőséget."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Elutasítás"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"A(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazás kezeli a hangerőt"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Érintse meg az eredeti érték visszaállításához."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"A munkaprofilt használja"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Kezelőfelület-hangoló"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"A beépített akkumulátor töltöttségi szintjének megjelenítése"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Az akkumulátor töltöttségi szintjének megjelenítése az állapotsori ikonban, amikor az eszköz nem töltődik"</string> - <string name="quick_settings" msgid="10042998191725428">"Gyorsbeállítások"</string> - <string name="status_bar" msgid="4877645476959324760">"Állapotsor"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demó mód"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Demó mód engedélyezése"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Demó mód megjelenítése"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Riasztás"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Munkahelyi profil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Repülős üzemmód"</string> - <string name="add_tile" msgid="2995389510240786221">"Mozaik hozzáadása"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Közvetített mozaik"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Nem fogja hallani a következő ébresztést ekkor: <xliff:g id="WHEN">%1$s</xliff:g>, ha előbb ezt nem kapcsolja ki"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Nem fogja hallani az ébresztést ekkor: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"ekkor: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"ezen a napon: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Gyorsbeállítások – <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Munkaprofil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Egyeseknek tetszik, másoknak nem"</string> - <string name="tuner_warning" msgid="8730648121973575701">"A Kezelőfelület-hangoló az Android felhasználói felületének szerkesztéséhez és testreszabásához nyújt további megoldásokat. Ezek a kísérleti funkciók változhatnak vagy megsérülhetnek a későbbi kiadásokban,illetve eltűnhetnek azokból. Körültekintően járjon el."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ezek a kísérleti funkciók változhatnak vagy megsérülhetnek a későbbi kiadásokban, illetve eltűnhetnek azokból. Körültekintően járjon el."</string> - <string name="got_it" msgid="2239653834387972602">"Értem"</string> - <string name="tuner_toast" msgid="603429811084428439">"Gratulálunk! A Kezelőfelület-hangolót hozzáadtuk a Beállításokhoz"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Eltávolítás a Beállítások közül"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Eltávolítja a Kezelőfelület-hangolót a Beállításokból, és nem használja tovább egyik funkcióját sem?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"A munkaprofilt használja"</string> </resources> diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index 5a8b03238882..9acc4987c898 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Տեղեկություններ ծրագրի մասին"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Ձեր վերջին էկրանները տեսանելի են այստեղ"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Անտեսել վերջին ծրագրերը"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Համատեսքում ցուցադրված է 1 էկրան:"</item> - <item quantity="other" msgid="5523506463832158203">"Համատեսքում ցուցադրված է %d էկրան"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">Համատեսքում ցուցադրված է %d էկրան</item> + <item quantity="other">Համատեսքում ցուցադրված է %d էկրան</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ծանուցումներ չկան"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Ընթացիկ"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Ծանուցումներ"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Թույլատրե՞լ USB-ի կարգաբերումը:"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Համակարգչի RSA-ի բանալի մատնահետքն է`\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Միշտ թույլատրել այս համակարգչից"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB վրիպազերծումը արգելված է"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Սարքի վրա այս պահին մուտք գործած օգտվողը չի կարող միացնել USB վրիպազերծումը: Այս գործառույթից օգտվելու համար մուտք գործեք հիմնական օգտվողի հաշվով՝ «<xliff:g id="NAME">%s</xliff:g>»:"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Խոշորացնել` էկրանը լցնելու համար"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Ձգել` էկրանը լցնելու համար"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Պահում է էկրանի հանույթը…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Որոնել"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Ֆոտոխցիկ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Հեռախոս"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Ձայնային հուշումներ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Ապակողպել"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Ապակողպման կոճակ, մատնահետքի սպասում"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Ապակողպել չօգտագործելով մատնահետքը"</string> <string name="unlock_label" msgid="8779712358041029439">"ապակողպել"</string> <string name="phone_label" msgid="2320074140205331708">"բացել հեռախոսը"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"բացեք ձայնային հուշումը"</string> <string name="camera_label" msgid="7261107956054836961">"բացել ֆոտոխցիկը"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Ընտրել առաջադրանքի նոր դասավորություն"</string> <string name="cancel" msgid="6442560571259935130">"Չեղարկել"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Տվյալների երկու գիծ:"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Տվյալների երեք գիծ:"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Տվյալների ազդանշանը լրիվ է:"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi-ը անջատված է:"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"WiFi-ը անջատված է:"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi-ի մեկ գիծ:"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi-ի երկու գիծ:"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi-ի երեք գիծ:"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi-ի ազդանշանը լիքն է:"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Միացված է <xliff:g id="WIFI">%s</xliff:g>-ին:"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Կապակցված է <xliff:g id="BLUETOOTH">%s</xliff:g>-ին:"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX չկա:"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-ի երկու գիծ:"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX-ի երեք գիծ:"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-ի ազդանշանը լիքն է:"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet-ը անջատված է:"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet-ը կապակցված է:"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ազդանշան չկա:"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Միացված չէ:"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Զրո գիծ:"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM չկա:"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-ը կապվում է:"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Ինքնաթիռային ռեժիմ"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM քարտ չկա:"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Օպերատորի ցանցի փոփոխում:"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Մարտկոցը <xliff:g id="NUMBER">%d</xliff:g> տոկոս է:"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Համակարգի կարգավորումներ:"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g>-ը անտեսված է:"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Բոլոր վերջին հավելվածները հեռացվել են ցուցակից:"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Մեկնարկել <xliff:g id="APP">%s</xliff:g>-ը:"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Ծանուցումը անտեսվեց:"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Ծանուցումների վահանակ:"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Արագ կարգավորումներ:"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Էկրանի կողպում:"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Կարգավորումներ"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Համատեսք"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Փակել"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Հաստատել"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Օգտվող <xliff:g id="USER">%s</xliff:g>:"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>:"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi-ն անջատվեց:"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Ինքնաթիռային ռեժիմն անջատվեց:"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Ինքնաթիռային ռեժիմը միացավ:"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Չխանգարելու ընտրանքը միացված է: Ընդհատել միայն կարևոր ծանուցումների դեպքում:"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Չանհանգստացնել՝ ընդհանուր լուռ վիճակը:"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Չխանգարելու ընտրանքը միացված է: Չընդհատել:"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Չանհանգստացնել՝ միայն զարթուցիչ"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Չխանգարելու ընտրանքն անջատված է:"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Չխանգարելու ընտրանքն անջատվեց:"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Չխանգարել"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Միայն կարևոր ծանուցումների դեպքում"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Միայն զարթուցիչ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Ընդհանուր լուռ վիճակը"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Չընդհատել"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> սարք)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth-ն անջատված է"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Միացված չէ"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ցանց չկա"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi-ը անջատված է"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Հասանելի Wi-Fi ցանցեր չկան"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Հասանելի պահված ցանցեր չկան"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Հեռարձակում"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Հեռարձակում"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Անանուն սարք"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Որոնել"</string> <string name="description_direction_up" msgid="7169032478259485180">"Սահեցրեք վերև <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-ի համար:"</string> <string name="description_direction_left" msgid="7207478719805562165">"Սահեցրեք ձախ` <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-ի համար:"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Ոչ մի ձայն և թրթռում չի անհանգստացնի ձեզ, բացառությամբ ձեր ընտրած զարթուցիչներից, հիշեցումներից, իրադարձություններից և զանգողներից:"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Առանց ընդհատումների՝ ներառյալ զարթուցիչները:"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Ոչ մի ձայն և թրթռում չի անհանգստացնի ձեզ, բացառությամբ ձեր ընտրած զարթուցիչներից, հիշեցումներից, իրադարձություններից և զանգողներից:"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Հարմարեցնել"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Այս գործողությունն արգելափակում է ԲՈԼՈՐ ձայներն ու թրթռումները, այդ թվում նաև զարթուցիչների, երաժշտության, տեսանյութերի և խաղերի ձայներն ու թրթռումները: Սակայն կկարողանաք կատարել հեռախոսազանգեր:"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Այս գործողությունն արգելափակում է ԲՈԼՈՐ ձայներն ու թրթռումները, այդ թվում նաև զարթուցիչների, երաժշտության, տեսանյութերի և խաղերի ձայներն ու թրթռումները:"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Առանց ընդհատումների"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Միայն կարևոր ընդհատումներ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Միայն զարթուցիչ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Ձեր հաջորդ զարթուցիչի ժամն է՝ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ձեր հաջորդ զարթուցիչի օրն է՝ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Դուք չեք լսի ձեր զարթուցիչը <xliff:g id="ALARM_TIME">%s</xliff:g>-ին:"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Պակաս հրատապ ծանուցումները ստորև"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Կրկին հպեք՝ բացելու համար"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Սահեցրեք վերև` ապակողպելու համար"</string> - <string name="phone_hint" msgid="4872890986869209950">"Սահահարվածեք հեռախոսի պատկերակից"</string> - <string name="voice_hint" msgid="8939888732119726665">"Սահահարվածեք ձայնային հուշման պատկերակից"</string> - <string name="camera_hint" msgid="7939688436797157483">"Սահահարվածեք խցիկի պատկերակից"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Կատարյալ լռություն: Արդյունքում կանջատվի նաև էկրանի ընթերցիչների ձայնը:"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Ընդհանուր լուռ վիճակը"</string> + <string name="phone_hint" msgid="3101468054914424646">"Հեռախոսի համար սահեցրեք աջ"</string> + <string name="camera_hint" msgid="5241441720959174226">"Խցիկի համար սահեցրեք ձախ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Առանց ընդհատումների"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Միայն կարևորները"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Միայն զարթուցիչ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Ընդհանուր\nլուռ վիճակը"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Բոլորը"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Առանց\nընդհատումների"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Միայն\nկարևորները"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Միայն\nզարթուցիչ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Լիցքավորում (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> մինչև լրիվ լիցքավորումը)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Անջատել օգտվողին"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Փոխել օգտվողին. ներկայիս օգտվողն է՝ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Ընթացիկ օգտվողը՝ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Ցույց տալ դիտարկումը"</string> <string name="user_add_user" msgid="5110251524486079492">"Ավելացնել օգտվող"</string> <string name="user_new_user_name" msgid="426540612051178753">"Նոր օգտվող"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Սկսել"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Այո, շարունակել"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Հյուր"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Հավելվածները և տվյալները ջնջելու համար հեռացրեք հյուրին"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Հեռացրեք հյուրին՝ հավելվածներն ու տվյալները ջնջելու համար"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ՀԵՌԱՑՆԵԼ ՀՅՈՒՐԻՆ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Ավելացնե՞լ նոր պրոֆիլ:"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Երբ նոր օգտվող եք ավելացնում, նա պետք է կարգավորի իր պրոֆիլը:\n\nՑանկացած օգտվող կարող է թարմացնել հավելվածները մյուս բոլոր հաշիվների համար:"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Անջատել VPN-ը"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Անջատել VPN-ը"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Սարքի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել և կառավարել կարգավորումները, կորպորատիվ հաշիվը, հավելվածները, սարքի հետ առնչվող և սարքի տեղադրության տվյալները: Լրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Ինչ-որ հավելվածի թույլ եք տվել հաստատել VPN կապակցում:\n\nԱյդ հավելվածը կարող է վերահսկել ձեր սարքի և ցանցի գործունեությունը, այդ թվում նաև էլփոստի հաշիվները, հավելվածները և կայքերը:"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Աշխատանքային պրոֆիլի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել ցանցում ունեցած գործունեությունը, այդ թվում՝ էլեկտրոնային նամակները, հավելվածները և վստահելի կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Սարքի կառավարիչ՝\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>:\nՊրոֆիլի կառավարիչ՝\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել ձեր սարքի և ցանցի գործունեությունը՝ նամակները, հավելվածները և վստահելի կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Ինչ-որ հավելվածի թույլ եք տվեք հաստատել VPN կապակցում:\n\nԱյդ հավելվածը կարող է վերահսկել ձեր սարքի և ցանցի գործունեությունը, այդ թվում նաև՝ էլեկտրոնային նամակները, հավելվածները և վստահելի կայքերը:"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Սարքի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել և կառավարել կարգավորումները, կորպորատիվ հաշիվը, հավելվածները, սարքի հետ առնչվող և սարքի տեղադրության տվյալները:\n\nՆաև ունեք VPN կապակցում, ինչը կարող է վերահսկել ձեր ցանցի գործունեությունը, այդ թվում նաև՝ էլեկտրոնային նամակները, հավելվածները և կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Աշխատանքային պրոֆիլի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել ցանցում ունեցած գործունեությունը, այդ թվում նաև էլփոստի հաշիվները, հավելվածները և կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:\n\nՆաև ունեք VPN կապակցում, ինչը կարող է վերահսկել ձեր ցանցում կատարած գործողությունները:"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Դուք կապակցված եք <xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածին, որը կարող է վերահսկել ձեր ցանցի գործունեությունը, այդ թվում նաև էլփոստի հաշիվները, հավելվածները և կայքերը:"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Դուք կապակցված եք <xliff:g id="APPLICATION">%1$s</xliff:g> հավելվածին, որը կարող է վերահսկել անձնական ցանցում կատարած ձեր գործողությունները, այդ թվում նաև էլփոստի հաշիվները, հավելվածները և կայքերը:"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Աշխատանքային պրոֆիլի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>: Այն կապակցված է <xliff:g id="APPLICATION">%2$s</xliff:g> հավելվածին, որը կարող է վերահսկել աշխատանքային ցանցում կատարած գործունեությունը, այդ թվում նաև էլփոստի հաշիվները, հավելվածները և կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Աշխատանքային պրոֆիլի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>: Այն կապակցված է <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> հավելվածին, որը կարող է վերահսկել աշխատանքային ցանցում կատարած գործունեությունը, այդ թվում նաև էլփոստի հաշիվները, հավելվածները և կայքերը:\n\nԴուք նույնպես կապակցված եք <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> հավելվածին, որը կարող է վերահսկել անձնական ցանցում կատարած ձեր գործողությունները:"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Սարքի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել և կառավարել կարգավորումները, կորպորատիվ հաշիվը, հավելվածները, սարքի հետ առնչվող և սարքի տեղադրության տվյալները:\n\nՆաև կապակցված եք <xliff:g id="APPLICATION">%2$s</xliff:g> հավելվածին, ինչը կարող է վերահսկել ձեր ցանցի գործունեությունը, այդ թվում նաև՝ էլփոստի հաշիվները, հավելվածները և կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Աշխատանքային պրոֆիլի կառավարիչն է՝ <xliff:g id="ORGANIZATION">%1$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել ցանցում ունեցած գործունեությունը, այդ թվում՝ էլեկտրոնային նամակները, հավելվածները և վստահելի կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:\n\nՆաև ունեք VPN կապակցում, ինչը կարող է վերահսկել ձեր ցանցում կատարած գործողությունները:"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Սարքի կառավարիչն է՝ <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>:\nԱշխատանքային պրոֆիլի կառավարիչն է՝\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>:\n\nԱդմինիստրատորը կարող է վերահսկել ցանցում ունեցած գործունեությունը, այդ թվում՝ էլեկտրոնային նամակները, հավելվածները և վստահելի կայքերը:\n\nԼրացուցիչ տեղեկությունների համար դիմեք ադմինիստրատորին:\n\nՆաև ունեք VPN կապակցում, ինչը կարող է վերահսկել ձեր անձնական ցանցում կատարած գործողությունները"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Սարքը կմնա արգելափակված՝ մինչև ձեռքով չբացեք"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Ավելի արագ ստացեք ծանուցումները"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Տեսեք դրանք մինչև ապակողպելը"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Տեսնել բոլորը"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Թաքցնել բոլորը"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Ավարտել"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Ընդարձակել"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Կոծկել"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Էկրանն ամրացված է"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Էկրանը կմնա տեսադաշտում, մինչև այն ապամրացնեք: Ապամրացնելու համար միաժամանակ հպեք և պահեք Համատեսքի և Հետ կոճակները:"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Էկրանը կմնա տեսադաշտում, մինչև այն ապամրացնեք: Ապամրացնելու համար հպեք և պահեք Համատեսքի կոճակը:"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Մերժել"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>-ը ձայնի ուժգնության երկխոսության հավելված է"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Դիպչեք՝ սկզբնօրինակը վերականգնելու համար:"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Դուք օգտագործում եք ձեր աշխատանքային պրոֆիլը"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Համակարգի ՕՄ-ի կարգավորիչ"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Ցուցադրել ներկառուցված մարտկոցի տոկոսայնությունը"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Ցուցադրել մարտկոցի լիցքավորման տոկոսայնությունը կարգավիճակի գոտու պատկերակի վրա, երբ այն չի լիցքավորվում"</string> - <string name="quick_settings" msgid="10042998191725428">"Արագ կարգավորումներ"</string> - <string name="status_bar" msgid="4877645476959324760">"Կարգավիճակի գոտի"</string> - <string name="demo_mode" msgid="2389163018533514619">"Ցուցադրական ռեժիմ"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Ցուցադրական ռեժիմի միացում"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Ցուցադրական ռեժիմի ցուցադրում"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Զարթուցիչ"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Android for Work-ի պրոֆիլ"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Ինքնաթիռային ռեժիմ"</string> - <string name="add_tile" msgid="2995389510240786221">"Սալիկի ավելացում"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Սալիկի հեռարձակում"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Ժամը <xliff:g id="WHEN">%1$s</xliff:g>-ի զարթուցիչը չի զանգի, եթե մինչ այդ չանջատեք այս կարգավորումը"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Ժամը <xliff:g id="WHEN">%1$s</xliff:g>-ի զարթուցիչը չի զանգի"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>-ին"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>-ին"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Արագ կարգավորումներ, <xliff:g id="TITLE">%s</xliff:g>:"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Թեժ կետ"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Աշխատանքային պրոֆիլ"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Զվարճանք մեկ՝ որոշակի մարդու համար"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Համակարգի ՕՄ-ի կարգավորիչը հնարավորություն է տալիս հարմարեցնել Android-ի օգտվողի միջերեսը: Այս փորձնական գործառույթները կարող են հետագա թողարկումների մեջ փոփոխվել, խափանվել կամ ընդհանրապես չհայտնվել: Եթե շարունակում եք, զգուշացեք:"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Այս փորձնական գործառույթները կարող են հետագա թողարկումների մեջ փոփոխվել, խափանվել կամ ընդհանրապես չհայտնվել: Եթե շարունակում եք, զգուշացեք:"</string> - <string name="got_it" msgid="2239653834387972602">"Հասկանալի է"</string> - <string name="tuner_toast" msgid="603429811084428439">"Համակարգի ՕՄ-ի կարգավորիչը ավելացվել է կարգավորումներին"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Հեռացնել կարգավորումներից"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Հեռացնե՞լ Համակարգի ՕՄ-ի կարգավորիչը կարգավորումներից և չօգտվել այլևս նրա գործառույթներից:"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Դուք աշխատանքային պրոֆիլում եք"</string> </resources> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 927b2e6bd6be..d4c1bdd95287 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -22,13 +22,13 @@ <string name="app_label" msgid="7164937344850004466">"Sistem UI"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Bersihkan"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Hapus dari daftar"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info aplikasi"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info apl"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Layar terkini Anda muncul di sini"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Tutup aplikasi terbaru"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 layar dalam Ringkasan"</item> - <item quantity="other" msgid="5523506463832158203">"%d layar dalam Ringkasan"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d layar dalam Ringkasan</item> + <item quantity="one">1 layar dalam Ringkasan</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Tidak ada pemberitahuan"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Berkelanjutan"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifikasi"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Izinkan debugging USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Sidik jari kunci RSA komputer adalah:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Selalu izinkan dari komputer ini"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Debug USB tidak diizinkan"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Pengguna yang saat ini masuk ke perangkat ini tidak dapat mengaktifkan debug USB. Untuk menggunakan fitur ini, beralih ke pengguna utama “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Perbesar utk mengisi layar"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Rentangkn utk mngisi layar"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Menyimpan tangkapan layar..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Telusuri"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telepon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Bantuan Suara"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Buka kunci"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Tombol buka kunci, menunggu sidik jari"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Buka kunci tanpa menggunakan sidik jari"</string> <string name="unlock_label" msgid="8779712358041029439">"buka kunci"</string> <string name="phone_label" msgid="2320074140205331708">"buka ponsel"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"buka bantuan suara"</string> <string name="camera_label" msgid="7261107956054836961">"buka kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Pilih tata letak tugas baru"</string> <string name="cancel" msgid="6442560571259935130">"Batal"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data dua batang."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tiga batang."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinyal data penuh."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi tidak aktif."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi tidak tersambung."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi satu baris."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi dua batang.aris"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi tiga baris."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Sinyal Wi-Fi penuh."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Tersambung ke <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Tersambung ke <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Tidak ada WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX dua batang."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX tiga batang."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Sinyal WiMAX penuh."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet terputus."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet tersambung."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Tidak ada sinyal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Tidak tersambung."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"0 baris."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Tidak ada SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Penambatan bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode pesawat."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Tidak ada kartu SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Jaringan operator berubah."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterai <xliff:g id="NUMBER">%d</xliff:g> persen."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Setelan sistem."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> disingkirkan."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Semua aplikasi terbaru telah ditutup."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Memulai <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notifikasi disingkirkan."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bayangan pemberitahuan."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Setelan cepat."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Layar kunci."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Setelan"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ringkasan."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Tutup"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Konfirmasi"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Pengguna <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi dinonaktifkan."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Mode pesawat dinonaktifkan."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Mode pesawat diaktifkan."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Status \"Jangan ganggu\" aktif, hanya untuk prioritas."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Fitur jangan ganggu aktif, senyap total."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Status \"Jangan ganggu\" aktif, tanpa gangguan."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Jangan ganggu aktif, hanya alarm."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Status \"Jangan ganggu\" nonaktif."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Status \"Jangan ganggu\" dinonaktifkan."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Jangan ganggu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Hanya untuk prioritas"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Hanya alarm"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Senyap total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Tanpa gangguan"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Perangkat)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Mati"</string> @@ -251,7 +247,7 @@ <string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"Lanskap"</string> <string name="quick_settings_ime_label" msgid="7073463064369468429">"Metode Masukan"</string> <string name="quick_settings_location_label" msgid="5011327048748762257">"Lokasi"</string> - <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Lokasi Nonaktif"</string> + <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Lokasi Mati"</string> <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Perangkat media"</string> <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Panggilan Darurat Saja"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Tidak Tersambung"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tidak Ada Jaringan"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Mati"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Tidak ada jaringan Wi-Fi yang tersedia"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Jaringan yang tersimpan tak tersedia"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Transmisi"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Melakukan transmisi"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Perangkat tanpa nama"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Telusuri"</string> <string name="description_direction_up" msgid="7169032478259485180">"Geser ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Geser ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Anda tidak akan diganggu oleh suara dan getaran, kecuali dari alarm, pengingat, acara, dan penelepon tertentu."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Tanpa gangguan, termasuk alarm."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Anda tidak akan diganggu oleh suara dan getaran, kecuali dari alarm, pengingat, acara, dan penelepon yang ditentukan."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Sesuaikan"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"SEMUA suara dan getaran, termasuk dari alarm, musik, video, dan game akan diblokir. Anda tetap dapat melakukan panggilan telepon."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"SEMUA suara dan getaran, termasuk dari alarm, musik, video, dan game akan diblokir."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Tidak ada interupsi"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Hanya interupsi prioritas"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Hanya alarm"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Alarm Anda berikutnya pukul <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Alarm Anda berikutnya hari <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tidak akan mendengar alarm pukul <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifikasi kurang darurat di bawah"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Sentuh lagi untuk membuka"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Gesek ke atas untuk membuka kunci"</string> - <string name="phone_hint" msgid="4872890986869209950">"Gesek dari ikon untuk telepon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Gesek dari ikon untuk mengaktifkan bantuan suara"</string> - <string name="camera_hint" msgid="7939688436797157483">"Gesek dari ikon untuk kamera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Senyap total. Tindakan ini juga akan mensenyapkan pembaca layar."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Senyap total"</string> + <string name="phone_hint" msgid="3101468054914424646">"Gesek ke kanan untuk menelepon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Gesek ke kiri untuk kamera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Tanpa gangguan"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Hanya untuk prioritas"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Hanya alarm"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Senyap\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Semua"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Tidak ada\ngangguan"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Hanya\nprioritas"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Hanya\nalarm"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Mengisi daya (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hingga penuh)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Beralih pengguna"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Ganti pengguna, pengguna saat ini <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Pengguna saat ini <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Tampilkan profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Tambahkan pengguna"</string> <string name="user_new_user_name" msgid="426540612051178753">"Pengguna baru"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Mulai"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ya, lanjutkan"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Pengguna tamu"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Untuk menghapus aplikasi dan data, hapus pengguna tamu"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Hapus tamu untuk menghilangkan aplikasi dan data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"HAPUS TAMU"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Tambahkan pengguna baru?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Saat Anda menambahkan pengguna baru, orang tersebut perlu menyiapkan ruangnya sendiri.\n\n1Pengguna mana pun dapat memperbarui aplikasi untuk semua pengguna lain."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Nonaktifkan VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Putuskan sambungan VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Perangkat dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau dan mengelola setelan, akses perusahaan, aplikasi, data terkait perangkat, dan informasi lokasi perangkat. Untuk informasi selengkapnya, hubungi administrator."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Anda memberikan izin kepada aplikasi untuk menyiapkan sambungan VPN.\n\nAplikasi ini ini dapat memantau aktivitas perangkat dan jaringan, termasuk email, aplikasi, dan situs web."</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Perangkat dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau dan mengelola setelan, akses perusahaan, aplikasi, data terkait perangkat, dan informasi lokasi perangkat.\n\nAnda tersambung ke VPN yang dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web.\n\nUntuk informasi selengkapnya, hubungi administrator."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Profil kerja dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web.\n\nUntuk informasi selengkapnya, hubungi administrator.\n\nAnda juga tersambung ke VPN yang dapat memantau aktivitas jaringan."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Anda tersambung ke <xliff:g id="APPLICATION">%1$s</xliff:g>, yang dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Anda tersambung ke <xliff:g id="APPLICATION">%1$s</xliff:g>, yang dapat memantau aktivitas jaringan pribadi, termasuk email, aplikasi, dan situs web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Profil kerja dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g> dan tersambung ke <xliff:g id="APPLICATION">%2$s</xliff:g>, yang dapat memantau aktivitas jaringan kerja, termasuk email, aplikasi, dan situs web.\n\nUntuk informasi selengkapnya, hubungi administrator."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Profil kerja dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g> dan tersambung ke <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, yang dapat memantau aktivitas jaringan kerja, termasuk email, aplikasi, dan situs web.\n\nAnda juga tersambung ke <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, yang dapat memantau aktivitas jaringan pribadi."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Perangkat dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau dan mengelola setelan, akses perusahaan, aplikasi, data terkait perangkat, dan informasi lokasi perangkat.\n\nAnda tersambung ke <xliff:g id="APPLICATION">%2$s</xliff:g>, yang dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web.\n\nUntuk informasi selengkapnya, hubungi administrator."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Profil kerja dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web aman.\n\nUntuk informasi selengkapnya, hubungi administrator."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Perangkat dikelola oleh:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nProfil kerja dikelola oleh:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministrator dapat memantau aktivitas perangkat dan jaringan, termasuk email, aplikasi, dan situs web aman.\n\nUntuk informasi selengkapnya, hubungi administrator."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Anda memberikan izin kepada aplikasi untuk menyiapkan sambungan VPN.\n\nAplikasi ini dapat memantau aktivitas perangkat dan jaringan, termasuk email, aplikasi, dan situs web aman."</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Perangkat dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau dan mengelola setelan, akses perusahaan, aplikasi, data terkait perangkat, dan informasi lokasi perangkat.\n\nAnda tersambung ke VPN, yang dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web.\n\nUntuk informasi selengkapnya, hubungi administrator."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Profil kerja dikelola oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web aman.\n\nUntuk informasi selengkapnya, hubungi administrator.\n\nAnda juga tersambung ke VPN, yang dapat memantau aktivitas jaringan."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Perangkat dikelola oleh <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nProfil kerja dikelola oleh:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministrator dapat memantau aktivitas jaringan, termasuk email, aplikasi, dan situs web aman.\n\nUntuk informasi selengkapnya, hubungi administrator.\n\nAnda juga tersambung ke VPN, yang dapat memantau aktivitas jaringan"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Perangkat akan tetap terkunci hingga Anda membukanya secara manual"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Dapatkan pemberitahuan lebih cepat"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Lihat sebelum membuka kunci"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Lihat semua"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Sembunyikan semua"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Akhiri sekarang"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Luaskan"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Ciutkan"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Layar dipasangi pin"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ini akan terus ditampilkan sampai Anda melepas pin. Sentuh dan tahan tombol Kembali dan Ringkasan secara bersamaan untuk melepas pin."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ini akan terus ditampilkan sampai Anda melepas pin. Sentuh dan tahan tombol Ringkasan untuk melepas pin."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tolak"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> adalah dialog volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Sentuh untuk memulihkan aslinya."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Anda menggunakan profil kerja"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Penyetel Antarmuka Pengguna Sistem"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Tampilkan persentase baterai yang tersemat"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Tampilkan persentase tingkat baterai dalam ikon bilah status saat tidak mengisi daya"</string> - <string name="quick_settings" msgid="10042998191725428">"Setelan Cepat"</string> - <string name="status_bar" msgid="4877645476959324760">"Bilah status"</string> - <string name="demo_mode" msgid="2389163018533514619">"Mode demo"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Aktifkan mode demo"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Tampilkan mode demo"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil kerja"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Mode pesawat"</string> - <string name="add_tile" msgid="2995389510240786221">"Tambahkan ubin"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Ubin Siaran"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Anda tidak akan mendengar alarm berikutnya <xliff:g id="WHEN">%1$s</xliff:g> jika Anda tidak menonaktifkannya sebelum waktu tersebut"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Anda tidak akan mendengar alarm berikutnya <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"pukul <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"pada <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Setelan Cepat, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profil kerja"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Tidak semua orang menganggapnya baik"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Penyetel Antarmuka Pengguna Sistem memberikan cara tambahan untuk mengubah dan menyesuaikan antarmuka pengguna Android. Fitur eksperimental ini dapat berubah, rusak, atau menghilang dalam rilis di masa mendatang. Lanjutkan dengan hati-hati."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Fitur eksperimental ini dapat berubah, rusak, atau menghilang dalam rilis di masa mendatang. Lanjutkan dengan hati-hati."</string> - <string name="got_it" msgid="2239653834387972602">"Mengerti"</string> - <string name="tuner_toast" msgid="603429811084428439">"Selamat! Penyetel Antarmuka Pengguna Sistem telah ditambahkan ke Setelan"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Hapus dari Setelan"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Hapus Penyetel Antarmuka Pengguna Sistem dari Setelan dan berhenti menggunakan semua fiturnya?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Anda berada di Profil kerja"</string> </resources> diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml index 5d9eee510144..72b8a0a26cf3 100644 --- a/packages/SystemUI/res/values-is-rIS/strings.xml +++ b/packages/SystemUI/res/values-is-rIS/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Upplýsingar um forrit"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Nýlegar skjámyndir birtast hér"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Hunsa nýleg forrit"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Ein skjámynd í yfirliti"</item> - <item quantity="other" msgid="5523506463832158203">"%d skjámyndir í yfirliti"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d skjámynd í yfirliti</item> + <item quantity="other">%d skjámyndir í yfirliti</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Engar tilkynningar"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Áframhaldandi"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Tilkynningar"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Leyfa USB-villuleit?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Fingrafar RSA-lykils tölvunnar er:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Leyfa alltaf úr þessari tölvu"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-villuleit ekki leyfð"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Notandinn sem er skráður inn í þetta tæki núna getur ekki kveikt á USB-villuleit. Til þess að nota þennan eiginleika skal skipta yfir í aðalnotandann, sem er „<xliff:g id="NAME">%s</xliff:g>“."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Fylla skjá með aðdrætti"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Teygja yfir allan skjáinn"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Vistar skjámynd…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Leita"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Myndavél"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Sími"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Raddaðstoð"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Taka úr lás"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Hnappur til að taka úr lás, beðið eftir fingrafari"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Taka úr lás án þess að nota fingrafar"</string> <string name="unlock_label" msgid="8779712358041029439">"taka úr lás"</string> <string name="phone_label" msgid="2320074140205331708">"opna síma"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"opna raddaðstoð"</string> <string name="camera_label" msgid="7261107956054836961">"opna myndavél"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Velja nýtt útlit verkefna"</string> <string name="cancel" msgid="6442560571259935130">"Hætta við"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Sendistyrkur gagnatengingar tvö strik."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Sendistyrkur gagnatengingar er þrjú strik."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Fullur sendistyrkur gagnatengingar."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Slökkt á Wi-Fi."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi ótengt."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi: Eitt strik."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi: Tvö strik."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi: Þrjú strik."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Fullur Wi-Fi sendistyrkur."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Tengt við <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Tengt við <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Engin WiMAX-tenging."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: Tvö strik."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX: Þrjú strik."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Fullur WiMAX-sendistyrkur."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet aftengt."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet tengt."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ekkert merki."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Engin tenging."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Engin strik."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Ekkert SIM-kort."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Tjóðrun með Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flugstilling"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Ekkert SIM-kort."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Skipt um farsímakerfi."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> prósent á rafhlöðu."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Kerfisstillingar."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> vísað frá."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Öll nýleg forrit fjarlægð."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Ræsir <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Tilkynningu lokað."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Tilkynningasvæði."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Flýtistillingar."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lásskjár."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Stillingar"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Yfirlit."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Loka"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Staðfesta"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Notandi: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Slökkt á Wi-Fi."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Slökkt á flugstillingu."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Kveikt á flugstillingu."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Kveikt á „Ónáðið ekki“, aðeins forgangur."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Kveikt á „Ónáðið ekki“, algjör þögn."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Kveikt á „Ónáðið ekki“, engar truflanir."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Kveikt á „Ónáðið ekki“, aðeins vekjarar."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Slökkt á „Ónáðið ekki“."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Slökkt á „Ónáðið ekki“."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ónáðið ekki"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Aðeins forgangur"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Aðeins vekjarar"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Algjör þögn"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Engar truflanir"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> tæki)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Slökkt á Bluetooth"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Engin tenging"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ekkert net"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Slökkt á Wi-Fi"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Engin Wi-Fi net í boði"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Engin vistuð net til staðar"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Útsending"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Sendir út"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Ónefnt tæki"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Leita"</string> <string name="description_direction_up" msgid="7169032478259485180">"Strjúktu upp til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Strjúktu til vinstri til að <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Þú verður ekki fyrir truflunum af hljóðmerkjum og titringi, fyrir utan vekjara, áminningar, viðburði og símtöl sem þú leyfir fyrir fram."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Engar truflanir. Ekki einu sinni vekjarar."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Þú verður ekki fyrir truflunum af hljóðmerkjum og titringi, fyrir utan vekjara, áminningar, viðburði og símtöl sem þú leyfir fyrir fram."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Sérsníða"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Þetta lokar á ÖLL hljóðmerki og titring, þ.m.t. frá vekjurum, tónlist, myndskeiðum og leikjum. Þú getur áfram hringt símtöl."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Þetta lokar á ÖLL hljóðmerki og titring, þ.m.t. frá vekjurum, tónlist, myndskeiðum og leikjum."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Engin truflun"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Aðeins forgangstruflanir"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Aðeins vekjarar"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Næsti vekjari er kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Næsti vekjari er <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Ekki mun heyrast í vekjaranum kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Minna áríðandi tilkynningar fyrir neðan"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Snertu aftur til að opna"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Strjúktu upp til að opna"</string> - <string name="phone_hint" msgid="4872890986869209950">"Strjúktu frá tákninu fyrir síma"</string> - <string name="voice_hint" msgid="8939888732119726665">"Strjúktu frá tákninu fyrir raddaðstoð"</string> - <string name="camera_hint" msgid="7939688436797157483">"Strjúktu frá tákninu fyrir myndavél"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Algjör þögn. Þetta þaggar líka niður í skjálesurum."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Algjör þögn"</string> + <string name="phone_hint" msgid="3101468054914424646">"Strjúktu til hægri fyrir síma"</string> + <string name="camera_hint" msgid="5241441720959174226">"Strjúktu til vinstri fyrir myndavél"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Engar truflanir"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Aðeins forgangur"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Aðeins vekjarar"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Algjör\nþögn"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Allar"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Engar\ntruflanir"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Aðeins\nforgangur"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Aðeins\nvekjarar"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Í hleðslu (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> fram að fullri hleðslu)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Skipta um notanda"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Skipta um notanda; núverandi notandi er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Núverandi notandi er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Sýna snið"</string> <string name="user_add_user" msgid="5110251524486079492">"Bæta notanda við"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nýr notandi"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Byrja upp á nýtt"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Já, halda áfram"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gestanotandi"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Til að eyða forritum og gögnum skal eyða gestanotanda"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Fjarlægðu gestinn til að eyða forritum og gögnum"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"FJARLÆGJA GEST"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Bæta nýjum notanda við?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Þegar þú bætir nýjum notanda við þarf sá notandi að setja upp svæðið sitt.\n\nHvaða notandi sem er getur uppfært forrit fyrir alla aðra notendur."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Slökkva á VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Aftengja VPN-net"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Tækinu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með og stjórnað stillingum, fyrirtækjaaðgangi, forritum, gögnum sem tengd eru tækinu og staðsetningarupplýsingum tækisins. Hafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Þú veittir forriti heimild til að koma á VPN-tengingu.\n\nÞetta forrit getur fylgst með virkni þinni í tækinu og á netinu, þar á meðal tölvupósti, forritum og vefsvæðum."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Vinnusniðinu þínu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Tækinu er stjórnað af:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVinnusniðinu þínu er stjórnað af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með virkni þinni í tækinu og á netinu, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Þú veittir forriti heimild til að koma á VPN-tengingu.\n\nÞetta forrit getur fylgst með virkni þinni í tækinu og á netinu, þar á meðal tölvupósti, forritum og öruggum vefsvæðum."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Tækinu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með og stjórnað stillingum, fyrirtækjaaðgangi, forritum, gögnum sem tengd eru tækinu og staðsetningarupplýsingum tækisins.\n\nÞú ert með tengingu við VPN-net sem getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Vinnusniðinu þínu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú ert einnig með tengingu við VPN-net sem getur fylgst með netnotkun þinni."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Þú ert með tengingu við <xliff:g id="APPLICATION">%1$s</xliff:g>, sem getur fylgst með netnotkun þinni, þ. á m. tölvupósti, forritum og vefsvæðum."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Þú ert með tengingu við <xliff:g id="APPLICATION">%1$s</xliff:g>, sem getur fylgst með persónulegri netnotkun þinni, þ. á m. tölvupósti, forritum og vefsvæðum."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Vinnusniðinu þínu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Það er tengt <xliff:g id="APPLICATION">%2$s</xliff:g>, sem getur fylgst með vinnutengdri netnotkun þinni, þar á meðal tölvupósti, forritum og vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Vinnusniðinu þínu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Það er tengt <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, sem getur fylgst með vinnutengdri netnotkun þinni, þar á meðal tölvupósti, forritum og vefsvæðum.\n\nÞú ert einnig með tengingu við <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, sem getur fylgst með persónulegri netnotkun þinni."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Tækinu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með og stjórnað stillingum, fyrirtækjaaðgangi, forritum, gögnum sem tengd eru tækinu og staðsetningarupplýsingum tækisins.\n\nÞú ert með tengingu við <xliff:g id="APPLICATION">%2$s</xliff:g>, sem getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Vinnusniðinu þínu er stjórnað af <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú ert einnig með tengingu við VPN-net sem getur fylgst með netnotkun þinni."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Tækinu er stjórnað af <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVinnusniðinu þínu er stjórnað af:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nKerfisstjórinn þinn getur fylgst með netnotkun þinni, þar á meðal tölvupósti, forritum og öruggum vefsvæðum.\n\nHafðu samband við kerfisstjórann til að fá frekari upplýsingar.\n\nÞú ert einnig með tengingu við VPN-net sem getur fylgst með persónulegri netnotkun þinni"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Tækið verður læst þar til þú opnar það handvirkt"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Fáðu tilkynningar hraðar"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Sjáðu þær áður en þú opnar"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Sjá allt"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Fela allt"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Hætta núna"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Stækka"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Minnka"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skjárinn er festur"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Þetta heldur þessu opnu þangað til þú losar. Haltu bakk- og yfirlitshnöppunum inni á sama tíma til að losa."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Þetta heldur þessu opnu þangað til þú losar. Haltu yfirlitshnappinum inni til að losa."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Hafna"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er hljóðstyrksvalmyndin"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Snertu til að færa í upprunalegt horf."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Þú ert að nota vinnusniðið"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Fínstillingar kerfisviðmóts"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Sýna innfellda rafhlöðustöðu"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Sýna rafhlöðustöðuna í stöðustikunni þegar tækið er ekki í hleðslu"</string> - <string name="quick_settings" msgid="10042998191725428">"Flýtistillingar"</string> - <string name="status_bar" msgid="4877645476959324760">"Stöðustika"</string> - <string name="demo_mode" msgid="2389163018533514619">"Prufustilling"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Kveikja á prufustillingu"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Sýna prufustillingu"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Vekjari"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Vinnusnið"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Flugstilling"</string> - <string name="add_tile" msgid="2995389510240786221">"Bæta reit við"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Útsendingarreitur"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Ekki mun heyrast í vekjaranum <xliff:g id="WHEN">%1$s</xliff:g> nema þú slökkvir á þessu áður"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Ekki mun heyrast í vekjaranum <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Flýtistillingar, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Heitur reitur"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Vinnusnið"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Þetta er ekki allra"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Fínstillingar kerfisviðmóts gera þér kleift að fínstilla og sérsníða notendaviðmót Android. Þessir tilraunaeiginleikar geta breyst, bilað eða horfið í síðari útgáfum. Gakktu því hægt um gleðinnar dyr."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Þessir tilraunaeiginleikar geta breyst, bilað eða horfið í síðari útgáfum. Gakktu því hægt um gleðinnar dyr."</string> - <string name="got_it" msgid="2239653834387972602">"Ég skil"</string> - <string name="tuner_toast" msgid="603429811084428439">"Til hamingju! Fínstillingum kerfisviðmóts hefur verið bætt við stillingar"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Fjarlægja úr stillingum"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Viltu fjarlægja fínstillingar kerfisviðmóts úr stillingum og hætta að nota eiginleika þeirra?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Þú ert í vinnusniðinu"</string> </resources> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index 78fa12fd4fb1..9a00c5b10e76 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informazioni applicazione"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Le tue schermate recenti vengono visualizzate in questa sezione"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignora app recenti"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 schermata in Panoramica"</item> - <item quantity="other" msgid="5523506463832158203">"%d schermate in Panoramica"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d schermate in Panoramica</item> + <item quantity="one">1 schermata in Panoramica</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nessuna notifica"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"In corso"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notifiche"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Consentire debug USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Fingerprint della chiave RSA del computer: \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Consenti sempre da questo computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Debug USB non consentito"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"L\'utente che ha eseguito l\'accesso a questo dispositivo non può attivare il debug USB. Per utilizzare questa funzione, passa all\'utente principale \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom per riempire schermo"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Estendi per riemp. schermo"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Salvataggio screenshot..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Cerca"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotocamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefono"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Sblocca"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Pulsante Sblocca, in attesa dell\'impronta digitale"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Sblocca senza utilizzare l\'impronta digitale"</string> <string name="unlock_label" msgid="8779712358041029439">"sblocca"</string> <string name="phone_label" msgid="2320074140205331708">"apri telefono"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"apri Voice Assist"</string> <string name="camera_label" msgid="7261107956054836961">"apri fotocamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Seleziona un nuovo layout per le attività"</string> <string name="cancel" msgid="6442560571259935130">"Annulla"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dati: due barre."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Dati: tre barre."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Massimo segnale dati."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi non attivo."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Rete Wi-Fi scollegata."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi: una barra."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi: due barre."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi: tre barre."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Massimo segnale Wi-Fi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Connesso a <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Connesso a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nessun segnale WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: due barre."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX: tre barre."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Massimo segnale WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Connessione Ethernet annullata."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Connessione Ethernet stabilita."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Nessun segnale."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Non connesso."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nessuna barra."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nessuna SIM presente."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Tethering Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modalità aereo."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Nessuna SIM presente."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Cambio rete operatore."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> eliminata."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Tutte le applicazioni recenti sono state rimosse."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Avvio di <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notifica eliminata."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Area notifiche."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Impostazioni rapide."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Schermata di blocco."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Impostazioni"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Panoramica."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Chiudi"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Conferma"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utente <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi disattivato."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Modalità aereo disattivata."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modalità aereo attivata."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Non disturbare\" attivo, solo con priorità."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Opzione \"Non disturbare\" attiva, silenzio totale."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Non disturbare\" attivo, nessuna interruzione."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Non disturbare\" attivo, solo sveglie."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Non disturbare\" non attivo."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Non disturbare\" non attivo."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Non disturbare"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Solo con priorità"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Solo sveglie"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silenzio totale"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Nessuna interruzione"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivi)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth spento"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Non connesso"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nessuna rete"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi disattivato"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nessuna rete Wi-Fi disponibile"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nessuna rete salvata disponibile"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Trasmetti"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"In trasmissione"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo senza nome"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Ricerca"</string> <string name="description_direction_up" msgid="7169032478259485180">"Su per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"A sinistra per <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Non verrai disturbato da suoni e vibrazioni, ad eccezione di sveglie, promemoria, eventi e chiamate da contatti da te specificati."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Senza interruzioni. Neanche sveglie."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Non verrai disturbato da suoni e vibrazioni, ad eccezione di sveglie, promemoria, eventi e chiamanti da te specificati."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizza"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Verranno bloccati TUTTI i suoni e le vibrazioni, anche di sveglie, musica, video e giochi. Potrai ancora telefonare."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Verranno bloccati TUTTI i suoni e le vibrazioni, anche di sveglie, musica, video e giochi."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Nessuna interruzione"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Solo interruzioni con priorità"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Solo sveglie"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Il tuo prossimo allarme è alle ore <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Il tuo prossimo allarme è il giorno <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Il tuo allarme non suonerà alle <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notifiche meno urgenti in basso"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Tocca di nuovo per aprire"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Scorri verso l\'alto per sbloccare"</string> - <string name="phone_hint" msgid="4872890986869209950">"Scorri per accedere al telefono"</string> - <string name="voice_hint" msgid="8939888732119726665">"Scorri dall\'icona per accedere a Voice Assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Scorri dall\'icona per accedere alla fotocamera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silenzio totale. Anche il volume degli screen reader verrà completamente azzerato."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silenzio totale"</string> + <string name="phone_hint" msgid="3101468054914424646">"Scorri verso destra per accedere al telefono"</string> + <string name="camera_hint" msgid="5241441720959174226">"Scorri verso sinistra per accedere alla fotocamera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Nessuna interruzione"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Solo con priorità"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Solo sveglie"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silenzio\ntotale"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Tutte"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nessuna\ninterruzione"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Solo con\npriorità"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Solo\nsveglie"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"In carica (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> al termine)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Cambio utente"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Cambia utente, utente corrente <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Utente corrente <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostra profilo"</string> <string name="user_add_user" msgid="5110251524486079492">"Aggiungi utente"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nuovo utente"</string> @@ -344,11 +343,11 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Ricomincia"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sì, continua"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Utente ospite"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Per eliminare app e dati, rimuovi l\'utente ospite"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Rimuovi l\'ospite per eliminare app e dati"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"RIMUOVI OSPITE"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Aggiungere un nuovo utente?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Il nuovo utente, una volta aggiunto, deve impostare il proprio spazio.\n\nQualsiasi utente può aggiornare le app per tutti gli altri."</string> - <string name="battery_saver_notification_title" msgid="237918726750955859">"Risparmio energetico attivo"</string> + <string name="battery_saver_notification_title" msgid="237918726750955859">"Risparmio batteria attivo"</string> <string name="battery_saver_notification_text" msgid="820318788126672692">"Riduce le prestazioni e i dati in background"</string> <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Disattiva risparmio energetico"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"Contenuti nascosti"</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Disattiva VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Scollega VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Il tuo dispositivo è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'amministratore può monitorare e gestire impostazioni, accesso aziendale, app e dati associati al dispositivo, incluse le informazioni sulla posizione del dispositivo. Per ulteriori informazioni, contatta l\'amministratore."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Hai autorizzato l\'app a configurare una connessione VPN.\n\nQuesta app può monitorare il tuo dispositivo e l\'attività di rete, inclusi email, app e siti web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Il tuo profilo di lavoro è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'amministratore può monitorare la tua attività di rete, inclusi siti web protetti, email e app.\n\nPer ulteriori informazioni, contatta l\'amministratore."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Il tuo dispositivo è gestito da:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nIl tuo profilo di lavoro è gestito da:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nL\'amministratore può monitorare il tuo dispositivo e l\'attività di rete, inclusi siti web protetti, email e app.\n\nPer ulteriori informazioni, contatta l\'amministratore."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Hai autorizzato l\'app a configurare una connessione VPN.\n\nQuesta app può monitorare il tuo dispositivo e l\'attività di rete, inclusi siti web protetti, email e app."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Il tuo dispositivo è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'amministratore può monitorare e gestire impostazioni, accesso aziendale, app e dati associati al dispositivo, incluse le informazioni sulla posizione del dispositivo.\n\nSei connesso a una rete VPN da cui è possibile monitorare la tua attività di rete, inclusi siti web, email e app.\n\nPer ulteriori informazioni, contatta l\'amministratore."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Il tuo profilo di lavoro è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'amministratore può monitorare l\'attività di rete, inclusi email, app e siti web.\n\nPer ulteriori informazioni, contatta l\'amministratore.\n\nSei connesso anche a VPN, da cui è possibile monitorare la tua attività di rete."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Sei connesso a <xliff:g id="APPLICATION">%1$s</xliff:g>, da cui è possibile monitorare la tua attività di rete, inclusi email, app e siti web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Sei connesso a <xliff:g id="APPLICATION">%1$s</xliff:g>, da cui è possibile monitorare la tua attività di rete personale, inclusi email, app e siti web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Il tuo profilo di lavoro è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>. È connesso a <xliff:g id="APPLICATION">%2$s</xliff:g>, da cui è possibile monitorare la tua attività di rete lavorativa, inclusi email, app e siti web.\n\nPer ulteriori informazioni, contatta il tuo amministratore."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Il tuo profilo di lavoro è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>. È connesso a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, da cui è possibile monitorare la tua attività di rete lavorativa, inclusi email, app e siti web.\n\nSei connesso anche a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, da cui è possibile monitorare la tua attività di rete personale."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Il tuo dispositivo è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'amministratore può monitorare e gestire impostazioni, accesso aziendale, app e dati associati al dispositivo, incluse le informazioni sulla posizione del dispositivo.\n\nSei connesso a <xliff:g id="APPLICATION">%2$s</xliff:g>, da cui è possibile monitorare la tua attività di rete, inclusi email, app e siti web.\n\nPer ulteriori informazioni, contatta l\'amministratore."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Il tuo profilo di lavoro è gestito da <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nL\'amministratore può monitorare l\'attività di rete, inclusi siti web protetti, email e app.\n\nPer ulteriori informazioni, contatta l\'amministratore.\n\nSei connesso a una rete VPN da cui è possibile monitorare la tua attività di rete."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Il tuo dispositivo è gestito da <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nIl tuo profilo è gestito da:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nL\'amministratore può monitorare l\'attività di rete, inclusi siti web protetti, email e app.\n\nPer ulteriori informazioni, contatta l\'amministratore.\n\nSei collegato a una rete VPN da cui è possibile monitorare la tua attività di rete."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Il dispositivo resterà bloccato fino allo sblocco manuale"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Ricevi notifiche più velocemente"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Visualizza prima di sbloccare"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Mostra tutto"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Nascondi tutto"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Termina adesso"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Espandi"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Comprimi"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"La schermata è bloccata"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"La schermata rimane visibile finché la sblocchi. Tocca e tieni premuti contemporaneamente Indietro e Panoramica per sbloccare."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"La schermata rimane visibile finché la sblocchi. Tocca Panoramica e tieni premuto per sbloccare."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Nega"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> rappresenta la finestra di dialogo relativa al volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tocca per ripristinare l\'originale."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Stai utilizzando il profilo di lavoro"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sintetizzatore interfaccia utente di sistema"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostra percentuale batteria incorporata"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostra la percentuale di carica della batteria nell\'icona della barra di stato quando non è in carica"</string> - <string name="quick_settings" msgid="10042998191725428">"Impostazioni rapide"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra di stato"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modalità demo"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Attiva modalità demo"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostra modalità demo"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Sveglia"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profilo di lavoro"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modalità aereo"</string> - <string name="add_tile" msgid="2995389510240786221">"Aggiungi riquadro"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Riquadro di trasmissione"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Non sentirai la tua prossima sveglia <xliff:g id="WHEN">%1$s</xliff:g> se non disattivi questa impostazione prima della sveglia"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Non sentirai la tua prossima sveglia <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"alle <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Impostazioni rapide: <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profilo di lavoro"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Il divertimento riservato a pochi eletti"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Il sintetizzatore interfaccia utente di sistema mette a disposizione altri metodi per modificare e personalizzare l\'interfaccia utente di Android. Queste funzioni sperimentali potrebbero cambiare, interrompersi o scomparire nelle versioni successive. Procedi con cautela."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Queste funzioni sperimentali potrebbero cambiare, interrompersi o scomparire nelle versioni successive. Procedi con cautela."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Complimenti! Il sintetizzatore interfaccia utente di sistema è stato aggiunto alle impostazioni."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Rimuovi dalle impostazioni"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Vuoi rimuovere il sintetizzatore interfaccia utente di sistema dalle impostazioni e smettere di utilizzare tutte le sue funzioni?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Hai attivato il profilo di lavoro"</string> </resources> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index a0ce2393eba6..276c8cddd571 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"פרטי אפליקציה"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"המסכים האחרונים מופיעים כאן"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"סגור אפליקציות אחרונות"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"מסך אחד ב\'סקירה\'"</item> - <item quantity="other" msgid="5523506463832158203">"%d מסכים ב\'סקירה\'"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="two">%d מסכים ב’סקירה‘</item> + <item quantity="many">%d מסכים ב’סקירה‘</item> + <item quantity="other">%d מסכים ב’סקירה‘</item> + <item quantity="one">מסך אחד ב’סקירה‘</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"אין התראות"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"מתמשך"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"התראות"</string> @@ -60,11 +62,9 @@ <string name="label_view" msgid="6304565553218192990">"הצג"</string> <string name="always_use_device" msgid="1450287437017315906">"השתמש כברירת מחדל עבור מכשיר USB זה"</string> <string name="always_use_accessory" msgid="1210954576979621596">"השתמש כברירת מחדל עבור אביזר USB זה"</string> - <string name="usb_debugging_title" msgid="4513918393387141949">"האם לאפשר ניפוי באגים ב-USB?"</string> + <string name="usb_debugging_title" msgid="4513918393387141949">"האם לאפשר ניקוי באגים ב-USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"טביעת האצבע של מפתח ה-RSA של המחשב היא:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"אפשר תמיד ממחשב זה"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"לא ניתן לבצע ניפוי באגים ב-USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"המכשיר המחובר כעת אל המכשיר הזה אינו יכול להפעיל ניפוי באגים ב-USB. כדי להשתמש בתכונה הזו יש לעבור אל המשתמש הראשי, “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"הגדל תצוגה כדי למלא את המסך"</string> <string name="compat_mode_off" msgid="4434467572461327898">"מתח כדי למלא את המסך"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"שומר צילום מסך..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"חפש"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"מצלמה"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"טלפון"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"מסייע קולי"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ביטול נעילה"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"לחצן ביטול נעילה, ממתין לטביעת אצבע"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"בטל את הנעילה בלי להשתמש בטביעת האצבע"</string> <string name="unlock_label" msgid="8779712358041029439">"בטל את הנעילה"</string> <string name="phone_label" msgid="2320074140205331708">"פתח את הטלפון"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"פתח את המסייע הקולי"</string> <string name="camera_label" msgid="7261107956054836961">"פתח את המצלמה"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"בחר פריסה חדשה להצגת משימות"</string> <string name="cancel" msgid="6442560571259935130">"ביטול"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"שני פסים של נתונים."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"שלושה פסים של נתונים."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"אות הנתונים מלא."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi כבוי."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi מנותק."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"פס אחד של Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"שני פסים של Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"שלושה פסים של Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"אות ה-Wi-Fi מלא."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"מחובר אל <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"מחובר אל <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ללא WiMAX."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"שני פסים של WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"שלושה פסים של WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"אות ה-WiMAX מלא."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"אתרנט מנותק."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"אתרנט מחובר."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"אין אות."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"לא מחובר."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"אפס פסים."</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"אין כרטיס SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"שיתוף אינטרנט דרך Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"מצב טיסה"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"אין כרטיס SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"רשת ספק משתנה."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> אחוזים של סוללה."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"הגדרות מערכת"</string> @@ -165,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> נדחה."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"כל האפליקציות האחרונות נסגרו."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"מפעיל את <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"הודעה נדחתה."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"לוח הודעות."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"הגדרות מהירות."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"מסך נעילה."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"הגדרות"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"סקירה."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"סגור"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"אשר"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"משתמש <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi כבוי."</string> @@ -184,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"מצב טיסה נכבה."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"מצב טיסה הופעל."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\'נא לא להפריע\' פועל. הודעות בעדיפות בלבד."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\'נא לא להפריע\' פועל. שקט מוחלט."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\'נא לא להפריע\' פועל. ללא הפרעות."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\'נא לא להפריע\' הופעל. התראות בלבד."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\'נא לא להפריע\' כבוי."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\'נא לא להפריע\' כבוי."</string> @@ -239,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"נא לא להפריע"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"עדיפות בלבד"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"התראות בלבד"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"שקט מוחלט"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ללא הפרעות"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> מכשירים)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth מופסק"</string> @@ -264,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"לא מחובר"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"אין רשת"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi כבוי"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"אין רשתות Wi-Fi זמינות"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"אין רשתות שמורות זמינות"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"מעביר"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"מכשיר ללא שם"</string> @@ -306,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"חיפוש"</string> <string name="description_direction_up" msgid="7169032478259485180">"הסט למעלה כדי להציג <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"הסט שמאלה כדי להציג <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"צלילים ורטט לא יופעלו, פרט להתראות, תזכורות, אירועים ומתקשרים שתציין."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ללא הפרעות. גם לא התראות."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"צלילים ורטט לא יפריעו לך, פרט להתראות, תזכורות, אירועים ומתקשרים שתציין."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"התאם אישית"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"פעולה זו מבטלת את כל הצלילים והרטט, כולל צלילים ורטט שמקורם בהתראות, מוזיקה, סרטונים ומשחקים. תוכל עדיין להתקשר."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"פעולה זו מבטלת את כל הצלילים והרטט, כולל בהתראות, מוזיקה, סרטונים ומשחקים."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"ללא הפרעות"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"רק הפרעות בעדיפות גבוהה"</string> + <string name="zen_alarms" msgid="5055668280767657759">"התראות בלבד"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"ההתראה הבאה שלך היא ב-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ההתראה הבאה שלך היא ב<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"לא תשמע את ההתראה שלך ב-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"הודעות בדחיפות נמוכה יותר בהמשך"</string> <string name="notification_tap_again" msgid="8524949573675922138">"גע שוב כדי לפתוח"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"החלק מעלה כדי לבטל את הנעילה"</string> - <string name="phone_hint" msgid="4872890986869209950">"החלק מהסמל כדי להפעיל את הטלפון"</string> - <string name="voice_hint" msgid="8939888732119726665">"החלק מהסמל כדי להפעיל את המסייע הקולי"</string> - <string name="camera_hint" msgid="7939688436797157483">"החלק מהסמל כדי להפעיל את המצלמה"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"שקט מוחלט. הגדרה זו תשתיק גם קוראי מסך."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"שקט מוחלט"</string> + <string name="phone_hint" msgid="3101468054914424646">"כדי להפעיל את הטלפון, החלק שמאלה"</string> + <string name="camera_hint" msgid="5241441720959174226">"החלק ימינה להפעלת המצלמה"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ללא הפרעות"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"עדיפות בלבד"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"התראות בלבד"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"שקט\nמוחלט"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"הכל"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ללא\nהפרעות"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"התראות בעדיפות\nבלבד"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"התראות\nבלבד"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"טוען (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> עד לסיום)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"החלפת משתמש"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"החלף משתמש. המשתמש הנוכחי הוא <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"משתמש נוכחי <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"הצג פרופיל"</string> <string name="user_add_user" msgid="5110251524486079492">"הוסף משתמש"</string> <string name="user_new_user_name" msgid="426540612051178753">"משתמש חדש"</string> @@ -337,12 +338,12 @@ <string name="guest_exit_guest_dialog_title" msgid="8480693520521766688">"להסיר אורח?"</string> <string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"כל האפליקציות והנתונים בפעילות זו באתר יימחקו."</string> <string name="guest_exit_guest_dialog_remove" msgid="7402231963862520531">"הסר"</string> - <string name="guest_wipe_session_title" msgid="6419439912885956132">"שמחים לראותך שוב!"</string> + <string name="guest_wipe_session_title" msgid="6419439912885956132">"ברוך שובך, אורח!"</string> <string name="guest_wipe_session_message" msgid="8476238178270112811">"האם ברצונך להמשיך בפעילות באתר?"</string> <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"התחל מחדש"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"כן, המשך"</string> <string name="guest_notification_title" msgid="1585278533840603063">"משתמש אורח"</string> - <string name="guest_notification_text" msgid="335747957734796689">"הסר את המשתמש האורח כדי למחוק אפליקציות ונתונים"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"הסר אורח כדי למחוק אפליקציות ונתונים"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"הסר אורח"</string> <string name="user_add_user_title" msgid="4553596395824132638">"האם להוסיף משתמש חדש?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"בעת הוספת משתמש חדש, על משתמש זה להגדיר את השטח שלו.\n\nכל משתמש יכול לעדכן אפליקציות עבור כל המשתמשים האחרים."</string> @@ -364,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"השבת VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"נתק את ה-VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"המכשיר מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nמנהל המערכת יכול לעקוב אחר הגדרות, גישה עסקית, אפליקציות, נתונים המשויכים למכשיר ומידע על מיקום המכשיר, ולנהל אותם. למידע נוסף, פנה אל מנהל המערכת."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"נתת לאפליקציה כלשהי הרשאה להגדיר חיבור VPN.\n\nהאפליקציה הזו יכולה לעקוב אחר הפעילות שלך ברשת ובמכשיר, כולל הודעות אימייל, אפליקציות ואתרים."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"פרופיל העבודה שלך מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nמנהל המערכת יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה אל מנהל המערכת."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"המכשיר מנוהל על ידי:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nפרופיל העבודה שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nמנהל המערכת יכול לעקוב אחר פעילות המכשיר והרשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה למנהל המערכת."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"נתת לאפליקציה הרשאה להגדיר חיבור VPN.\n\nהאפליקציה הזאת יכולה לעקוב אחר המכשיר והפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"המכשיר מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nמנהל המערכת יכול לעקוב אחר הגדרות, גישה עסקית, אפליקציות, נתונים המשויכים למכשיר ומידע על מיקום המכשיר, ולנהל אותם.\n\nאתה מחובר ל-VPN שיכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים.\n\nלמידע נוסף, פנה למנהל המערכת."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"פרופיל העבודה שלך מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nמנהל המערכת שלך יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים.\n\nלמידע נוסף, פנה למנהל המערכת שלך.\n\nאתה מחובר גם לרשת VPN, שיכולה לעקוב אחר הפעילות שלך ברשת."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"אתה מחובר לאפליקציה <xliff:g id="APPLICATION">%1$s</xliff:g>, שיכולה לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"אתה מחובר לאפליקציה <xliff:g id="APPLICATION">%1$s</xliff:g>, שיכולה לעקוב אחר הפעילות שלך ברשת הפרטית, כולל הודעות אימייל, אפליקציות ואתרים."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"פרופיל העבודה שלך מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>. הוא מחובר לאפליקציה <xliff:g id="APPLICATION">%2$s</xliff:g>, שיכולה לעקוב אחר הפעילות שלך ברשת העסקית, כולל הודעות אימייל, אפליקציות ואתרים.\n\nלמידע נוסף, פנה למנהל המערכת שלך."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"פרופיל העבודה שלך מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>. הוא מחובר לאפליקציה <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, שיכולה לעקוב אחר הפעילות שלך ברשת העסקית, כולל הודעות אימייל, אפליקציות ואתרים.\n\nאתה מחובר גם לאפליקציה <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, שיכולה לעקוב אחר הפעילות שלך ברשת הפרטית."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"המכשיר שלך מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nמנהל המערכת שלך יכול לעקוב אחר הגדרות, גישה עסקית, אפליקציות, נתונים המשויכים למכשיר שלך ומידע על מיקום המכשיר, ולנהל אותם.\n\nאתה מחובר לאפליקציה <xliff:g id="APPLICATION">%2$s</xliff:g>, שיכולה לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים.\n\nלמידע נוסף, פנה למנהל המערכת שלך."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"פרופיל העבודה שלך מנוהל על ידי <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nמנהל המערכת יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה אל מנהל המערכת.\n\nאתה מחובר גם ל-VPN שיכול לעקוב אחר הפעילות שלך ברשת."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"המכשיר מנוהל על ידי <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nפרופיל העבודה שלך מנוהל על ידי:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nמנהל המערכת יכול לעקוב אחר הפעילות שלך ברשת, כולל הודעות אימייל, אפליקציות ואתרים מאובטחים.\n\nלמידע נוסף, פנה אל מנהל המערכת.\n\nאתה מחובר גם ל-VPN שיכול לעקוב אחר הפעילות האישית שלך ברשת"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"המכשיר יישאר נעול עד שתבטל את נעילתו באופן ידני"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"קבל התראות מהר יותר"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"צפה בהן לפני שתבטל נעילה"</string> @@ -381,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"הצג הכל"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"הסתר הכל"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"סיים כעת"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"הרחב"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"כווץ"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"המסך מוצמד"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"שומר בתצוגה עד לביטול ההצמדה. גע והחזק בו-זמנית ב\'הקודם\' ו\'סקירה\' כדי לבטל הצמדה."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"שומר בתצוגה עד לביטול ההצמדה. גע והחזק בו-זמנית ב\'הקודם\' ו\'סקירה\' כדי לבטל הצמדה."</string> @@ -397,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"דחה"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> הוא תיבת הדו-שיח של עוצמת הקול"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"גע כדי לשחזר את עוצמת הקול המקורית."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"אתה משתמש בפרופיל העבודה שלך"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"הצג בשורת הסטטוס את אחוז עוצמת הסוללה"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"הצג את אחוז עוצמת הסוללה בתוך הסמל שבשורת הסטטוס כשהמכשיר אינו בטעינה"</string> - <string name="quick_settings" msgid="10042998191725428">"הגדרות מהירות"</string> - <string name="status_bar" msgid="4877645476959324760">"שורת סטטוס"</string> - <string name="demo_mode" msgid="2389163018533514619">"מצב הדגמה"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"הפעל מצב הדגמה"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"הצג מצב הדגמה"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"אתרנט"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"התראה"</string> - <string name="status_bar_work" msgid="6022553324802866373">"פרופיל עבודה"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"מצב טיסה"</string> - <string name="add_tile" msgid="2995389510240786221">"הוסף אריח"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"אריח שידור"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"לא תשמע את ההתראה הבאה שלך <xliff:g id="WHEN">%1$s</xliff:g>, אלא אם תשבית קודם את ההגדרה הזו"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"לא תשמע את ההתראה הבאה שלך <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"בשעה <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"ב-<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"הגדרות מהירות, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"נקודה לשיתוף אינטרנט"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"פרופיל עבודה"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"מהנה בשביל חלק מהאנשים, אבל לא בשביל כולם"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner מספק לך דרכים נוספות להתאים אישית את ממשק המשתמש של Android. התכונות הניסיוניות האלה עשויות להשתנות, להתקלקל או להיעלם בגרסאות עתידיות. המשך בזהירות."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"התכונות הניסיוניות האלה עשויות להשתנות, להתקלקל או להיעלם בגרסאות עתידיות. המשך בזהירות."</string> - <string name="got_it" msgid="2239653834387972602">"הבנתי"</string> - <string name="tuner_toast" msgid="603429811084428439">"מזל טוב! System UI Tuner נוסף ל\'הגדרות\'"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"הסר מההגדרות"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"האם להסיר את System UI Tuner ולהפסיק להשתמש בכל התכונות שלו?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"אתה נמצא בפרופיל העבודה"</string> </resources> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index adf4059f9060..757fa7015db1 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"アプリ情報"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"ここに最近の画面が表示されます"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"最近使ったアプリをクリア"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"[最近]に1個の画面があります"</item> - <item quantity="other" msgid="5523506463832158203">"[最近]に%d個の画面があります"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">[最近]に%d個の画面があります</item> + <item quantity="one">[最近]に1個の画面があります</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"通知なし"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"実行中"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"通知"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USBデバッグを許可しますか?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"このパソコンのRSAキーのフィンガープリント:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"このパソコンからのUSBデバッグを常に許可する"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USBデバッグは許可されていません"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"この端末に現在ログインしているユーザーでは、USBデバッグをONにすることはできません。この機能を使用するには、メインユーザーの「<xliff:g id="NAME">%s</xliff:g>」に切り替えてください。"</string> <string name="compat_mode_on" msgid="6623839244840638213">"画面サイズに合わせて拡大"</string> <string name="compat_mode_off" msgid="4434467572461327898">"画面サイズに合わせて拡大"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"スクリーンショットを保存中..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"検索"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"カメラ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"電話"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"音声アシスト"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ロック解除"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"ロック解除ボタン、指紋を待っています"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"指紋認証を使用せずにロック解除"</string> <string name="unlock_label" msgid="8779712358041029439">"ロック解除"</string> <string name="phone_label" msgid="2320074140205331708">"電話を起動"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"音声アシストを開く"</string> <string name="camera_label" msgid="7261107956054836961">"カメラを起動"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"新しいタスクレイアウトの選択"</string> <string name="cancel" msgid="6442560571259935130">"キャンセル"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"データ信号:レベル2"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"データ信号:レベル3"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"データ信号:フル"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi OFF"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fiが切断されました。"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fiレベル1"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fiレベル2"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fiレベル3"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi電波フル"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>に接続しました。"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>に接続しました。"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX電波状態:圏外"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX電波状態:レベル2"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX電波状態:レベル3"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX電波状態:フル"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"イーサネット接続を解除しました。"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"イーサネットに接続しました。"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"圏外です。"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"接続されていません。"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"レベル0"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIMがありません。"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetoothテザリング。"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"機内モード。"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIMカードが挿入されていません。"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"携帯通信会社のネットワークを変更します。"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g>は削除されました。"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"最近のアプリケーションをすべて消去しました。"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g>を開始しています。"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"通知が削除されました。"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知シェード"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"クイック設定"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ロック画面"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"最近"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"閉じる"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"確認"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ユーザー: <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-FiをOFFにしました。"</string> @@ -185,8 +181,8 @@ <string name="accessibility_quick_settings_airplane_on" msgid="6406141469157599296">"機内モードがONです。"</string> <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"機内モードをOFFにしました。"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"機内モードをONにしました。"</string> - <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"[通知を非表示]はONで、優先する通知のみです。"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"[通知を非表示]はONで、サイレントです。"</string> + <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"[通知を非表示]はONで、重要な通知のみです。"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"[通知を非表示]はONで、サイレントです。"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"[通知を非表示]はONで、アラームのみです。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"[通知を非表示]はOFFです。"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"[通知を非表示]をOFFにしました。"</string> @@ -239,9 +235,9 @@ <string name="start_dreams" msgid="7219575858348719790">"スクリーンセーバー"</string> <string name="ethernet_label" msgid="7967563676324087464">"イーサネット"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"通知を非表示"</string> - <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"優先する通知のみ"</string> + <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"重要な通知のみ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"アラームのみ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"サイレント"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"サイレント"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth(端末数<xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth OFF"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"接続されていません"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ネットワークなし"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi OFF"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fiネットワークを利用できません"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"保存されているネットワークがありません"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"キャスト"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"キャストしています"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"名前のないデバイス"</string> @@ -308,29 +304,32 @@ <string name="description_target_search" msgid="3091587249776033139">"検索します"</string> <string name="description_direction_up" msgid="7169032478259485180">"上にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string> <string name="description_direction_left" msgid="7207478719805562165">"左にスライドして<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>を行います。"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"アラーム、リマインダー、予定、指定した人からの着信以外で音やバイブレーションに煩わされることはありません。"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"サイレント(アラームも鳴りません)"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"アラーム、リマインダー、予定、指定した人からの着信以外で音やバイブレーションに煩わされることはありません。"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"カスタマイズ"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"アラーム、音楽、動画、ゲームを含むすべての音とバイブレーションがブロックされます。電話をかけることはできます。"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"アラーム、音楽、動画、ゲームを含むすべての音とバイブレーションがブロックされます。"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"サイレント"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"重要な通知のみ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"アラームのみ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"次のアラームは<xliff:g id="ALARM_TIME">%s</xliff:g>です"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"次のアラームは<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>です"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g>のアラームは鳴りません"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"緊急度の低い通知を下に表示"</string> <string name="notification_tap_again" msgid="8524949573675922138">"開くにはもう一度タップしてください"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"ロック解除するには上にスワイプしてください"</string> - <string name="phone_hint" msgid="4872890986869209950">"右にスワイプして通話"</string> - <string name="voice_hint" msgid="8939888732119726665">"アイコンからスワイプして音声アシストを起動"</string> - <string name="camera_hint" msgid="7939688436797157483">"左にスワイプしてカメラを起動"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"サイレント。スクリーンリーダーも消音されます。"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"サイレント"</string> - <string name="interruption_level_priority" msgid="6426766465363855505">"優先する通知のみ"</string> + <string name="phone_hint" msgid="3101468054914424646">"右にスワイプして電話を表示"</string> + <string name="camera_hint" msgid="5241441720959174226">"左にスワイプしてカメラを表示"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"サイレント"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"重要な通知のみ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"アラームのみ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"サイレント\n"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"すべて"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"通知\nなし"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"重要な\n通知のみ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"アラーム\nのみ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中(フル充電まで<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ユーザーを切り替える"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ユーザーを切り替える、現在のユーザーは<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"現在のユーザー: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"プロファイルを表示"</string> + <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"プロフィールを表示"</string> <string name="user_add_user" msgid="5110251524486079492">"ユーザーを追加"</string> <string name="user_new_user_name" msgid="426540612051178753">"新しいユーザー"</string> <string name="guest_nickname" msgid="8059989128963789678">"ゲスト"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"最初から開始"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"続行"</string> <string name="guest_notification_title" msgid="1585278533840603063">"ゲストユーザー"</string> - <string name="guest_notification_text" msgid="335747957734796689">"アプリとデータを削除するには、ゲストユーザーを削除します"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"アプリとデータを削除するにはゲストを削除します"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ゲストを削除"</string> <string name="user_add_user_title" msgid="4553596395824132638">"新しいユーザーを追加しますか?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"新しいユーザーを追加したら、そのユーザーは自分のスペースをセットアップする必要があります。\n\nすべてのユーザーは他のユーザーに代わってアプリを更新できます。"</string> @@ -358,23 +357,20 @@ <string name="media_projection_action_text" msgid="8470872969457985954">"今すぐ開始"</string> <string name="empty_shade_text" msgid="708135716272867002">"通知はありません"</string> <string name="device_owned_footer" msgid="3802752663326030053">"端末が監視されている可能性があります"</string> - <string name="profile_owned_footer" msgid="8021888108553696069">"プロファイルが監視されている可能性があります"</string> + <string name="profile_owned_footer" msgid="8021888108553696069">"プロフィールが監視されている可能性があります"</string> <string name="vpn_footer" msgid="2388611096129106812">"ネットワークが監視されている可能性があります"</string> <string name="monitoring_title_device_owned" msgid="7121079311903859610">"端末の監視"</string> - <string name="monitoring_title_profile_owned" msgid="6790109874733501487">"プロファイルの監視"</string> + <string name="monitoring_title_profile_owned" msgid="6790109874733501487">"プロフィールの監視"</string> <string name="monitoring_title" msgid="169206259253048106">"ネットワーク監視"</string> <string name="disable_vpn" msgid="4435534311510272506">"VPNを無効にする"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPNを切断"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"この端末は<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n管理者は設定、コーポレートアクセス、アプリ、端末に関連付けられたデータ、端末の位置情報を監視、管理できます。詳しくは管理者にお問い合わせください。"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"アプリにVPN接続の設定を許可しました。\n\nこのアプリはあなたの端末やネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"この仕事用プロファイルは<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"この端末は次の組織によって管理されています。\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nあなたのプロフィールは次の組織によって管理されています。\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\n管理者はあなたの端末やネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"アプリにVPN接続のセットアップを許可しました。\n\nこのアプリはあなたの端末やネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"この端末は<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n管理者は設定、コーポレートアクセス、アプリ、端末に関連付けられたデータ、端末の位置情報を監視、管理できます。\n\nVPNに接続しているため、VPNもネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"この仕事用プロファイルは<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。\n\nVPNにも接続しているため、VPNもネットワークアクティビティを監視できます。"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"<xliff:g id="APPLICATION">%1$s</xliff:g>に接続しています。このアプリはあなたのネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"<xliff:g id="APPLICATION">%1$s</xliff:g>に接続しています。このアプリはあなたの個人のネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"この仕事用プロファイルは<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理され、<xliff:g id="APPLICATION">%2$s</xliff:g>に接続しています。このアプリはあなたの仕事のネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"この仕事用プロファイルは<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理され、<xliff:g id="APPLICATION_WORK">%2$s</xliff:g>に接続しています。このアプリはあなたの仕事のネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。\n\n<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>にも接続しているため、個人のネットワークアクティビティも監視できます。"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"この端末は<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n管理者は設定、コーポレートアクセス、アプリ、端末に関連付けられたデータ、端末の位置情報を監視、管理できます。\n\n<xliff:g id="APPLICATION">%2$s</xliff:g>に接続しているため、このアプリもネットワークアクティビティ(メール、アプリ、ウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"この仕事用プロファイルは<xliff:g id="ORGANIZATION">%1$s</xliff:g>によって管理されています。\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます。\n\n詳しくは管理者にお問い合わせください。\n\nVPNにも接続しているため、VPNもネットワークアクティビティを監視できます。"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"この端末は<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>によって管理されています。\nあなたの仕事用プロファイルは次の組織によって管理されています。\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\n管理者はあなたのネットワークアクティビティ(メール、アプリ、保護されたウェブサイトなど)を監視できます\n\n。詳しくは管理者にお問い合わせください。\n\nVPNにも接続しているためVPNも個人的なネットワークアクティビティを監視できます"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"手動でロックを解除するまでロックされたままとなります"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"通知をすばやく確認できます"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ロックを解除する前にご確認ください"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"すべて表示"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"すべて非表示"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"今すぐ終了"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"展開"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"折りたたむ"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"画面が固定されました"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"固定を解除するまで画面が常に表示されるようになります。[戻る]と[最近]を同時に押し続けると固定が解除されます。"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"固定を解除するまで画面が常に表示されるようになります。[最近]を押し続けると固定が解除されます。"</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"許可しない"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>を音量ダイアログとして使用"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"タップすると元の音量ダイアログが復元されます。"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"仕事用プロファイルを使用しています"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"システムUI調整ツール"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"内蔵電池の残量の割合を表示する"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"充電していないときには電池残量の割合をステータスバーアイコンに表示する"</string> - <string name="quick_settings" msgid="10042998191725428">"クイック設定"</string> - <string name="status_bar" msgid="4877645476959324760">"ステータスバー"</string> - <string name="demo_mode" msgid="2389163018533514619">"デモモード"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"デモモードを有効にする"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"デモモードを表示"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"イーサネット"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"アラーム"</string> - <string name="status_bar_work" msgid="6022553324802866373">"仕事用プロファイル"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"機内モード"</string> - <string name="add_tile" msgid="2995389510240786221">"タイルを追加"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ブロードキャストタイル"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"この設定をOFFにしないと次回のアラーム(<xliff:g id="WHEN">%1$s</xliff:g>)は鳴りません"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"次回のアラーム(<xliff:g id="WHEN">%1$s</xliff:g>)は鳴りません"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"クイック設定、<xliff:g id="TITLE">%s</xliff:g>。"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"アクセスポイント"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"仕事用プロファイル"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"一部の方のみお楽しみいただける限定公開ツール"</string> - <string name="tuner_warning" msgid="8730648121973575701">"システムUI調整ツールでは、Androidユーザーインターフェースの調整やカスタマイズを行えます。これらの試験運用機能は今後のリリースで変更となったり、中止となったり、削除されたりする可能性がありますのでご注意ください。"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"これらの試験運用機能は今後のリリースで変更となったり、中止となったり、削除されたりする可能性がありますのでご注意ください。"</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"システムUI調整ツールを設定に追加しました"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"設定から削除"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"設定からシステムUI調整ツールを削除して、全機能の使用を停止しますか?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"仕事用プロファイルを使用しています"</string> </resources> diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml index 8472a135446d..0dfa0ebe24e5 100644 --- a/packages/SystemUI/res/values-ka-rGE/strings.xml +++ b/packages/SystemUI/res/values-ka-rGE/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"აპის შესახებ"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"თქვენი ბოლო ეკრანები აქ გამოჩნდება"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ბოლო აპების გაუქმება"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"მიმოხილვაში ნაჩვენებია 1 ეკრანი"</item> - <item quantity="other" msgid="5523506463832158203">"მიმოხილვაში ნაჩვენებია %d ეკრანი"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d ეკრანი მიმოხილვაში</item> + <item quantity="one">1 ეკრანი მიმოხილვაში</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"შეტყობინებები არ არის."</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"მიმდინარე"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"შეტყობინებები"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"გააქტიურდეს USB გამართვა?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"კომპიუტერის RSA გასაღების თითის ანაბეჭდია:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ყოველთვის დართე ნება ამ კომპიუტერიდან."</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB ხარვეზების გამართვა ნებადართული არაა"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ამ მოწყობილობაზე ამჟამად შესულ მომხმარებელს არ შეუძლია USB ხარვეზების გამართვის ფუნქციის ჩართვა. ამ ფუნქციის გამოსაყენებლად მიუერთდით მთავარ მომხმარებელს „<xliff:g id="NAME">%s</xliff:g>“."</string> <string name="compat_mode_on" msgid="6623839244840638213">"მასშტაბი შეცვალეთ ეკრანის შესავსებად."</string> <string name="compat_mode_off" msgid="4434467572461327898">"გაწიეთ ეკრანის შესავსებად."</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"სკრინშოტის შენახვა…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ძიება"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"კამერა"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ტელეფონი"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ხმოვანი დახმარება"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"განბლოკვა"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"განბლოკვის ღილაკი, ელოდება თითის ანაბეჭდს"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"თქვენი თითის ანაბეჭდის გარეშე განბლოკვა"</string> <string name="unlock_label" msgid="8779712358041029439">"განბლოკვა"</string> <string name="phone_label" msgid="2320074140205331708">"ტელეფონის გახსნა"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ხმოვანი დახმარების გახსნა"</string> <string name="camera_label" msgid="7261107956054836961">"კამერის გახსნა"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"ახალი ამოცანის განლაგების არჩევა"</string> <string name="cancel" msgid="6442560571259935130">"გაუქმება"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"მონაცემების გადაცემა: ორი ზოლი"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"მონაცემების გადაცემა: სამი ზოლი"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"მონაცემთა გადაცემის საიმედო სიგნალი."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi გამორთულია."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi არ არის დაკავშირებული."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi სიგნალი ერთ ზოლზეა."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi სიგნალი ორ ზოლზეა."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi სამი ზოლი."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi სიგნალი სრულია."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"დაკავშირებულია <xliff:g id="WIFI">%s</xliff:g>-თან."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"დაკავშირებულია <xliff:g id="BLUETOOTH">%s</xliff:g>-თან."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX არ არის."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX-ის ორი ზოლი."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX-ის სამი ზოლი."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX სიგნალი სრულია."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet კავშირი შეწყვეტილია."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet დაკავშირებულია."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"სიგნალი არ არის."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"არ არის დაკავშირებული."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"სიგნალი ნულ ზოლზეა."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM არ არის."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-ის ჩართვა"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"თვითმფრინავის რეჟიმი"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM ბარათი არ არის."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"ოპერატორის ქსელის შეცვლა"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ბატარეა: <xliff:g id="NUMBER">%d</xliff:g> პროცენტი."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"სისტემის პარამეტრები."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ამოშლილია სიიდან."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"ყველა ბოლო აპლიკაცია გაუქმდა."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> იწყება."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"შეტყობინება წაიშალა."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"შეტყობინებების ფარდა"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"სწრაფი პარამეტრები"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ეკრანის დაბლოკვა."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"პარამეტრები"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"მიმოხილვა"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"დახურვა"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"დადასტურება"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"მომხმარებელი: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi გამორთულია."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"თვითმფრინავის რეჟიმი გამოირთო."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"თვითმფრინავის რეჟიმი ჩაირთო."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ჩართულია რეჟიმი „არ შემაწუხოთ\", მხოლოდ პრიორიტეტები."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"„ნუ შემაწუხებთ“ ჩართულია, სრული სიჩუმე."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ჩართულია რეჟიმი „არ შემაწუხოთ\", შეწყვეტის გარეშე."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"„ნუ შემაწუხებთ“ ჩართულია, მხოლოდ გაფრთხილებები."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"„არ შემაწუხოთ“ გამორთულია"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"„არ შემაწუხოთ\" რეჟიმი გამორთულია."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"არ შემაწუხოთ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"მხოლოდ პრიორიტეტული"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"მხოლოდ გაფრთხილებები"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"სრული სიჩუმე"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"შეფერხებების გაეშე"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> მოწყობილობა)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth გამორთულია"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"არ არის დაკავშირებული."</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ქსელი არ არის"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi გამორთულია"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fi ქსელები მიუწვდომელია"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"შენახული ქსელები მიუწვდომელია"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"ტრანსლირება"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"გადაიცემა"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"უსახელო მოწყობილობა"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ძიება"</string> <string name="description_direction_up" msgid="7169032478259485180">"გაასრიალეთ ზემოთ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-თვის."</string> <string name="description_direction_left" msgid="7207478719805562165">"გაასრიალეთ მარცხნივ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-თვის."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"თქვენ მიერ მითითებული გაფრთხილებების, შეხსენებების, ღონისძიებებისა და აბონენტების გარდა, არავითარი ხმა და ვიბრაცია არ შეგაწუხებთ."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"წყვეტების გარეშე. მაღვიძარების შემთხვევაშიც კი."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"თქვენ მიერ მითითებული მაღვიძარების, შეხსენებების, ღონისძიებებისა და ზარების გარდა, არავითარი ხმა და ვიბრაცია არ შეგაწუხებთ."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"მორგება"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ეს ბლოკავს ყველა ხმასა და ვიბრაციას, მათ შორის, მაღვიძარების, მუსიკის, ვიდეოებისა და თამაშების. მიუხედავად ამისა, თქვენ მაინც შეძლებთ სატელეფონო ზარების განხორციელებას."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"ეს ბლოკავს ყველა ხმასა და ვიბრაციას, მათ შორის, მაღვიძარების, მუსიკის, ვიდეოებისა და თამაშების."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"შეწყვეტების გარეშე"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"მხოლოდ პრიორიტეტული შეწყვეტები"</string> + <string name="zen_alarms" msgid="5055668280767657759">"მხოლოდ გაფრთხილებები"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"თქვენი შემდეგი მაღვიძარაა <xliff:g id="ALARM_TIME">%s</xliff:g>-ზე"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"თქვენი შემდეგი მაღვიძარაა <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"თქვენს მაღვიძარას <xliff:g id="ALARM_TIME">%s</xliff:g>-ზე ვერ გაიგონებთ"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"ქვემოთ მითითებულია ნაკლებად სასწრაფო შეტყობინებები"</string> <string name="notification_tap_again" msgid="8524949573675922138">"შეეხეთ ისევ გასახსნელად"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"გაასრიალეთ ზევით განსაბლოკად"</string> - <string name="phone_hint" msgid="4872890986869209950">"ტელეფონისთვის გადაფურცლეთ ხატულადან"</string> - <string name="voice_hint" msgid="8939888732119726665">"ხმოვანი დახმარებისთვის გადაფურცლეთ ხატულადან"</string> - <string name="camera_hint" msgid="7939688436797157483">"კამერისთვის გადაფურცლეთ ხატულადან"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"სრული სიჩუმე. ეს დაადუმებს ეკრანის წამკითხველებსაც."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"სრული სიჩუმე"</string> + <string name="phone_hint" msgid="3101468054914424646">"გადაფურცლეთ მარჯვნივ ტელეფონისთვის"</string> + <string name="camera_hint" msgid="5241441720959174226">"კამერისთვის მარცხენა შენაცვლება"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"შეფერხებების გარეშე"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"მხოლოდ პრიორიტეტული"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"მხოლოდ გაფრთხილებები"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"სრული\nსიჩუმე"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"ყველა"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"არ არის\nშეფერხებები"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"მხოლოდ\nპრიორიტეტულები"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"მხოლოდ\nგაფრთხილებები"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>-ის შეცვლა დასრულებამდე)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"მომხმარებლის გადართვა"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"მომხმარებლის გდართვა. ამჟამინდელი მომხმარებელი <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"ამჟამინდელი მომხმარებელი <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"პროფილის ჩვენება"</string> <string name="user_add_user" msgid="5110251524486079492">"მომხმარებლის დამატება"</string> <string name="user_new_user_name" msgid="426540612051178753">"ახალი მომხმარებელი"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ხელახლა დაწყება"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"დიახ, გავაგრძელოთ"</string> <string name="guest_notification_title" msgid="1585278533840603063">"სტუმარი მომხმარებელი"</string> - <string name="guest_notification_text" msgid="335747957734796689">"აპებისა და მონაცემების წასაშლელად ამოშალეთ სტუმარი"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"აპებისა და მონაცემების წასაშლელად, ამოშალეთ სტუმარი"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"სტუმრის ამოშლა"</string> <string name="user_add_user_title" msgid="4553596395824132638">"დაემატოს ახალი მომხმარებელი?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"ახალი მომხმარებლის დამატებისას, ამ მომხმარებელს საკუთარი სივრცის შექმნა მოუწევს.\n\nნებისმიერ მომხმარებელს შეუძლია აპები ყველა სხვა მომხმარებლისათვის განაახლოს."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN-ის გაუქმება"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN-ის გათიშვა"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"თქვენ მოწყობილობას მართავს <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია ამ მოწყობილობასთან ასოცირებული პარამეტრების, კორპორატიული წვდომის, აპებისა და მონაცემების, მათ შორის, ქსელის აქტივობისა და თქვენი მოწყობილობის მდებარეობის ინფორმაციის მონიტორინგი და მართვა. დამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"თქვენ მიეცით ნებართვა აპს, დააყენოს VPN კავშირი.\n\nამ აპს შეუძლია თქვენი მოწყობილობის და ქსელის აქტივობის, მათ შორის, ელფოსტის, აპებისა და ვებსაიტების მონიტორინგი."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"თქვენ სამუშაო პროფილს მართავს <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპების და უსაფრთხო ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"თქვენ მოწყობილობას მართავს:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nთქვენ სამუშაო პროფილს მართავს:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი მოწყობილობისა და ქსელის აქტივობის, მათ შორის, ელფოსტის, აპების და უსაფრთხო ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"თქვენ მიეცით ნებართვა აპს, რათა დააყენოს VPN კავშირი.\n\nამ აპს შეუძლია თქვენი მოწყობილობის და ქსელის აქტივობის, მათ შორის, ელფოსტების, აპების და უსაფრთხო საიტების მონიტორინგი."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"თქვენ მოწყობილობას მართავს <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია ამ მოწყობილობასთან ასოცირებული პარამეტრების, კორპორატიული წვდომის, აპებისა და მონაცემების, და ასევე თქვენი მოწყობილობის მდებარეობის ინფორმაციის მონიტორინგი და მართვა.\n\nთქვენ ასევე დაკავშირებული ხართ VPN-თან, რომელსაც შეუძლია თქვენი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპების და ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"თქვენს სამუშაო პროფილს მართავს <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი, მათ შორის, ელფოსტის, აპებისა და ვებ-საიტების.\n\nდამატებითი ინფორმაციისთვის, დაუკავშირდით თქვენს ადმინისტრატორს.\n\nთქვენ ასევე დაკავშირებული ხართ VPN-თან, რომელსაც შეუძლია თქვენი ქსელის აქტივობის მონიტორინგი."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"თქვენ დაუკავშირდით <xliff:g id="APPLICATION">%1$s</xliff:g>-ს, რომელსაც შეუძლია თქვენი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპებისა და ვებსაიტების მონიტორინგი."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"თქვენ დაუკავშირდით <xliff:g id="APPLICATION">%1$s</xliff:g>-ს, რომელსაც შეუძლია თქვენი პირადი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპებისა და ვებსაიტების მონიტორინგი."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"თქვენი სამუშაო პროფილი <xliff:g id="ORGANIZATION">%1$s</xliff:g>-ის მიერ იმართება. ის დაკავშირებულია <xliff:g id="APPLICATION">%2$s</xliff:g>-თან, რომელსაც შეუძლია თქვენი სამსახურის ქსელის აქტივობის, მათ შორის, ელფოსტის, აპებისა და ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისთვის მიმართეთ თქვენს ადმინისტრატორს."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"თქვენი სამუშაო პროფილი <xliff:g id="ORGANIZATION">%1$s</xliff:g>-ის მიერ იმართება. ის დაკავშირებულია <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>-თან, რომელსაც შეუძლია თქვენი სამსახურის ქსელის აქტივობის, მათ შორის, ელფოსტის, აპებისა და ვებსაიტების მონიტორინგი.\n\nასევე, დაკავშირებული ხართ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>-თან, რომელსაც შეუძლია თქვენი პირადი ქსელის აქტივობის მონიტორინგი."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"თქვენს მოწყობილობას მართავს <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nადმინისტრატორს შეუძლია თქვენი მოწყობილობასთან ასოცირებული პარამეტრების, კორპორატიული წვდომის, აპებისა და მონაცემების, და ასევე მოწყობილობის მდებარეობის ინფორმაციის მონიტორინგი და მართვა.\n\nთქვენ დაკავშირებული ხართ <xliff:g id="APPLICATION">%2$s</xliff:g>-თან, რომელსაც შეუძლია თქვენი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპებისა და ვებ-საიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"თქვენ სამუშაო პროფილს მართავს <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპების და უსაფრთხო ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს.\n\nთქვენ ასევე დაკავშირებული ხართ VPN-თან, რომელსაც შეუძლია თქვენი პირადი ქსელის აქტივობის მონიტორინგი."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"თქვენ მოწყობილობას მართავს <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nთქვენ სამუშაო პროფილს მართავს:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nთქვენს ადმინისტრატორს შეუძლია თქვენი ქსელის აქტივობის, მათ შორის, ელფოსტის, აპების და უსაფრთხო ვებსაიტების მონიტორინგი.\n\nდამატებითი ინფორმაციისათვის, დაუკავშირდით თქვენს ადმინისტრატორს.\n\nთქვენ ასევე დაკავშირებული ხართ VPN-თან, რომელსაც შეუძლია თქვენი პირადი ქსელის აქტივობის მონიტორინგი"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"მოწყობილობის დარჩება ჩაკეტილი, სანამ ხელით არ გახსნით"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"შეტყობინებების უფრო სწრაფად მიღება"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"იხილეთ განბლოკვამდე"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"ყველას ჩვენება"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"ყველას დამალვა"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"გამორთვა"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"გავრცობა"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ჩაკეცვა"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ეკრანი ჩამაგრებულია"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ამით ის ხედში დარჩება, სანამ ჩამაგრებას არ გააუქმებთ. ჩამაგრების გასაუქმებლად შეეხეთ და დააყოვნეთ „დაბრუნება“-ზე და „მიმოხილვა“-ზე ერთდროულად."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"ამით ის ხედში დარჩება, სანამ ჩამაგრებას არ გააუქმებთ. ჩამაგრების გასაუქმებლად შეეხეთ და დააყოვნეთ „მიმოხილვა“-ზე."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"უარყოფა"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ხმოვან დიალოგშია"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ორიგინალის აღდგენისათვის, შეეხეთ."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"თქვენ სამსახურის პროფილს იყენებთ"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"სისტემის UI ტუნერი"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"ჩამაგრებული ბატარეის პროცენტის ჩვენება"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ბატარეის დონის პროცენტის ჩვენება სტატუსის ზოლის ხატულას შიგნით, როდესაც არ იტენება"</string> - <string name="quick_settings" msgid="10042998191725428">"სწრაფი პარამეტრები"</string> - <string name="status_bar" msgid="4877645476959324760">"სტატუსის ზოლი"</string> - <string name="demo_mode" msgid="2389163018533514619">"დემო-რეჟიმი"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"დემო-რეჟიმის ჩართვა"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"დემო-რეჟიმის ჩვენება"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ეთერნეტი"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"მაღვიძარა"</string> - <string name="status_bar_work" msgid="6022553324802866373">"სამსახურის პროფილი"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"თვითმფრინავის რეჟიმი"</string> - <string name="add_tile" msgid="2995389510240786221">"მოზაიკის დამატება"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"მაუწყებლობის მოზაიკა"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"ვერ გაიგონებთ მომდევნო მაღვიძარას <xliff:g id="WHEN">%1$s</xliff:g>-ზე, თუ არ გამორთავთ ამას მანამდე"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"ვერ გაიგონებთ მომდევნო მაღვიძარას <xliff:g id="WHEN">%1$s</xliff:g>-ზე"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>-ზე"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>-ზე"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"სწრაფი პარამეტრები, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"წვდომის წერტილი"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"სამსახურის პროფილი"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"ზოგისთვის გასართობია, მაგრამ არა ყველასთვის"</string> - <string name="tuner_warning" msgid="8730648121973575701">"სისტემის UI ტუნერი გაძლევთ დამატებით გზებს Android-ის სამომხმარებლო ინტერფეისის პარამეტრების დაყენებისთვის. ეს ექსპერიმენტული მახასიათებლები შეიძლება შეიცვალოს, შეწყდეს ან გაქრეს მომავალ ვერსიებში. სიფრთხილით გააგრძელეთ."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ეს ექსპერიმენტული მახასიათებლები შეიძლება შეიცვალოს, შეწყდეს ან გაქრეს მომავალ ვერსიებში. სიფრთხილით გააგრძელეთ."</string> - <string name="got_it" msgid="2239653834387972602">"გასაგებია"</string> - <string name="tuner_toast" msgid="603429811084428439">"გილოცავთ! სისტემის UI ტუნერი დაემატა პარამეტრებს"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"პარამეტრებიდან წაშლა"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"გსურთ სისტემის UI ტუნერის პარამეტრებიდან წაშლა და მისი ყველა ფუნქციის გამოყენების შეწყვეტა?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"თქვენ სამუშაო პროფილში ხართ"</string> </resources> diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml index 2f36da4da3bd..5b3661850e49 100644 --- a/packages/SystemUI/res/values-kk-rKZ/strings.xml +++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml @@ -19,16 +19,16 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="7164937344850004466">"Жүйе интерфейсі"</string> + <string name="app_label" msgid="7164937344850004466">"Жүйенің пайдаланушы интерфейстері"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Тазалау"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Тізімнен алу"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Қолданба ақпараты"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Мұнда жақындағы экрандар көрсетіледі"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Жуықта қолданылған қолданбаларды қоспау"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"«Шолу» ішінде 1 экран"</item> - <item quantity="other" msgid="5523506463832158203">"«Шолу» ішінде %d экран"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">«Шолу» ішінде %d экран</item> + <item quantity="one">«Шолу» ішінде 1 экран</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Хабарлар жоқ"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Ағымдағы"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Хабарлар"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB жөндеуге рұқсат берілсін бе?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Бұл компьютердің RSA перне саусақ таңбасы:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Осы компьютерден әрқашан рұқсат беру"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB жөндеу рұқсат етілмеген"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Қазір кірген пайдаланушы атымен USB жөндеу іске қосылмайды. Бұл мүмкіндікті пайдалану үшін негізгі пайдаланушыға («<xliff:g id="NAME">%s</xliff:g>») ауысыңыз."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Экранды толтыру үшін ұлғайту"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Экранды толтыру үшін созу"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Скриншотты сақтауда…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Іздеу"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Дауыс көмекшісі"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Бекітпесін ашу"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Құлыпты ашу түймесі, саусақ ізі күтілуде"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Саусақ ізін пайдаланбай құлыпты ашу"</string> <string name="unlock_label" msgid="8779712358041029439">"бекітпесін ашу"</string> <string name="phone_label" msgid="2320074140205331708">"телефонды ашу"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ашық дауыс көмекшісі"</string> <string name="camera_label" msgid="7261107956054836961">"камераны ашу"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Жаңа тапсырма пішімін таңдау"</string> <string name="cancel" msgid="6442560571259935130">"Бас тарту"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Дерекқор екі баған."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Дерекқор үш баған."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Дерекқор сигналы толы."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi өшірулі."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi ажыратылған."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi бір жолақ."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi екі жолақ."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi үш жолақ."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi сигналы толық."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> қосылған."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> қосылған."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX сигналы жоқ."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX екі жолақ."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX үш жолақ."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX сигналы толық."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet ажыратылған."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet қосылған."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Сигнал жоқ."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Жалғанбаған."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Нөл жолақ."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM жоқ."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth тетеринг."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Ұшақ режимі."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM картасы жоқ."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Оператор желісі өзгертілуде."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Батарея <xliff:g id="NUMBER">%d</xliff:g> пайыз."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Жүйе параметрлері."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> алынып тасталған."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Барлық жақындағы қабылданбаған қолданбалар."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> іске қосылуда."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Хабар алынып тасталды."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Хабарландыру тақтасы"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Жылдам параметрлер."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Бекіту экраны."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Параметрлер"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Шолу."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Жабу"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Растау"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Пайдаланушы <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi өшірілді."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Ұшақ режимі өшірілді."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Ұшақ режимі қосылды."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Мазаламау режимі қосулы, тек басымдық"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Мазаламау режимі қосулы, толық тыныштық."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Мазаламау режимі қосулы, үзілістерсіз"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Кедергі жасамаңыз, тек дабылдар."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Мазаламау режимі өшірулі"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Мазаламау режимі өшірілді."</string> @@ -222,8 +218,8 @@ <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"Интернет байланысы жоқ"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi қосулы"</string> <string name="gps_notification_searching_text" msgid="8574247005642736060">"GPS қызметін іздеуде"</string> - <string name="gps_notification_found_text" msgid="4619274244146446464">"Орын GPS арқылы орнатылған"</string> - <string name="accessibility_location_active" msgid="2427290146138169014">"Орын өтініштері қосылған"</string> + <string name="gps_notification_found_text" msgid="4619274244146446464">"Аймақ GPS арқылы орнатылған"</string> + <string name="accessibility_location_active" msgid="2427290146138169014">"Аймақ өтініштері қосылған"</string> <string name="accessibility_clear_all" msgid="5235938559247164925">"Барлық хабарларды жойыңыз."</string> <string name="status_bar_notification_inspect_item_title" msgid="5668348142410115323">"Хабарландыру параметрлері"</string> <string name="status_bar_notification_app_settings_title" msgid="5525260160341558869">"<xliff:g id="APP_NAME">%s</xliff:g> параметрлері"</string> @@ -237,21 +233,21 @@ <string name="start_dreams" msgid="7219575858348719790">"Қалғу"</string> <string name="ethernet_label" msgid="7967563676324087464">"Этернет"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Мазаламау"</string> - <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Маңыздылары ғана"</string> + <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Тек басымдық"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Тек дабылдар"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Толық тыныштық"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Үзулерсіз"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> құрылғылары)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth өшірулі"</string> - <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"Жұптасқан құрылғылар жоқ"</string> + <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"Жұпталған құрылғылар қол жетімді емес"</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Жарықтығы"</string> <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"Автоматты түрде бұру"</string> <string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"Бұру бекітілген"</string> <string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"Портрет"</string> <string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"Пейзаж"</string> <string name="quick_settings_ime_label" msgid="7073463064369468429">"Енгізу әдісі"</string> - <string name="quick_settings_location_label" msgid="5011327048748762257">"Орын"</string> - <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Орын өшірулі"</string> + <string name="quick_settings_location_label" msgid="5011327048748762257">"Аймақ"</string> + <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Аймақ өшірулі"</string> <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Meдиа құрылғысы"</string> <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI (алынған сигнал қуатының көрсеткіші)"</string> <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Тек қана төтенше қоңыраулар"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Жалғанбаған"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Желі жоқ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi өшірулі"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Қолжетімді Wi-Fi желілері жоқ"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Сақталған желілер қол жетімді емес"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Трансляциялау"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Трансляциялануда"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Атаусыз құрылғы"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Іздеу"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін жоғары сырғыту."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үшін солға сырғыту."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Дабылдар, еске салғыштар, оқиғалар мен өзіңіз көрсеткен контактілердің қоңырауларынан басқа дыбыстар мен дірілдер мазаламайтын болады."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Үзілулер болмайды. Тіпті дабылдар да."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Дабылдар, еске салғыштар, оқиғалар мен өзіңіз көрсеткен контактілердің қоңырауларынан басқа дыбыстар мен дірілдер мазаламайтын болады."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Реттеу"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"БАРЛЫҚ, соның ішінде дабылдардың, музыканың, бейнелердің және ойындардың дыбыстары мен дірілдері өшіріледі. Бірақ телефон қоңыраулары шалына береді."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"БАРЛЫҚ, соның ішінде дабылдардың, музыканың, бейнелердің және ойындардың дыбыстары мен дірілдері өшіріледі."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Үзулерсіз"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Тек басым үзулер"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Тек дабылдар"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Келесі дабыл — <xliff:g id="ALARM_TIME">%s</xliff:g> уақытында"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Келесі дабыл — <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> уақытында дабылды естімейсіз"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Шұғылдығы азырақ хабарландырулар төменде"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Ашу үшін қайтадан түртіңіз"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Құлыпты ашу үшін жоғары сырғытыңыз"</string> - <string name="phone_hint" msgid="4872890986869209950">"Телефонды ашу үшін белгішеден әрі қарай сырғытыңыз"</string> - <string name="voice_hint" msgid="8939888732119726665">"Дауыс көмекшісін ашу үшін белгішеден әрі қарай сырғытыңыз"</string> - <string name="camera_hint" msgid="7939688436797157483">"Камераны ашу үшін белгішеден әрі қарай сырғытыңыз"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Толық тыныштық. Экранды оқу құралдары да өшеді."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Толық тыныштық"</string> - <string name="interruption_level_priority" msgid="6426766465363855505">"Маңыздылары ғана"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Бекітпесін ашу үшін жанаңыз"</string> + <string name="phone_hint" msgid="3101468054914424646">"Телефон үшін оңға жанаңыз"</string> + <string name="camera_hint" msgid="5241441720959174226">"Камера үшін солға жанаңыз"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Кедергілерсіз"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"Тек басымдық"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Тек дабылдар"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Толық\nтыныштық"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Барлығы"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Кедергілер\nжоқ"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Тек\nбасымдық"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Тек\nдабылдар"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарядталуда (толғанша <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Пайдаланушыны ауыстыру"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Пайдаланушыны ауыстыру, ағымдағы пайдаланушы <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Ағымдағы пайдаланушы: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Профильді көрсету"</string> <string name="user_add_user" msgid="5110251524486079492">"Пайдаланушы қосу"</string> <string name="user_new_user_name" msgid="426540612051178753">"Жаңа пайдаланушы"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Қайта бастау"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Иә, жалғастыру"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Қонақ пайдаланушы"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Қолданбалар мен деректерді жою үшін, қонақ пайдаланушыны алып тастаңыз"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Қолданбалар мен деректерді жою үшін қонақты кетіру"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ҚОНАҚТЫ КЕТІРУ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Жаңа пайд-ны қосу керек пе?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Жаңа пайдаланушыны қосқанда сол адам өз кеңістігін реттеуі керек.\n\nКез келген пайдаланушы барлық басқа пайдаланушылар үшін қолданбаларды жаңарта алады."</string> @@ -363,16 +362,13 @@ <string name="monitoring_title" msgid="169206259253048106">"Желіні бақылау"</string> <string name="disable_vpn" msgid="4435534311510272506">"VPN функциясын өшіру"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN желісін ажырату"</string> - <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Құрылғыңызды басқаратын:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nСіздің әкімшіңіз параметрлерді, корпоративтік мүмкіндікті, қолданбаларды, құрылғыңызбен байланысты деректерді және құрылғыңыздың орналасуы туралы ақпаратты қадағалай алады. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Қолданбаға VPN байланысын орнату рұқсатын бердіңіз.\n\nБұл қолданба құрылғыңызды және желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және веб-сайттарды бақылай алады."</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Құрылғыңызды басқаратын:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nСіздің әкімшіңіз параметрлерді, корпоративтік мүмкіндікті, қолданбаларды, құрылғыңызбен байланысты деректерді және құрылғыңыздың орналасуы туралы ақпаратты қадағалай алады.\n\nСіз электрондық пошта, қолданбалар және сайттарды қосқандағы желілік әрекеттеріңізді бақылай алатын VPN желісіне қосылдыңыз.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Жұмыс профиліңізді <xliff:g id="ORGANIZATION">%1$s</xliff:g> басқарады.\n\nӘкімші желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және веб-сайттарды бақылай алады.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз.\n\nСондай-ақ сіз желідегі белсенділігіңізді бақылай алатын VPN желісіне қосылғансыз."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Сіз желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және веб-сайттарды бақылай алатын <xliff:g id="APPLICATION">%1$s</xliff:g> қолданбасына қосылғансыз."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Сіз жеке желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және веб-сайттарды бақылай алатын <xliff:g id="APPLICATION">%1$s</xliff:g> қолданбасына қосылғансыз."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Жұмыс профиліңізді <xliff:g id="ORGANIZATION">%1$s</xliff:g> басқарады. Ол жұмыс кезінде желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және веб-сайттарды бақылай алатын <xliff:g id="APPLICATION">%2$s</xliff:g> қолданбасына қосылған.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Жұмыс профиліңізді <xliff:g id="ORGANIZATION">%1$s</xliff:g> басқарады. Ол желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және веб-сайттарды бақылай алатын <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> қолданбасына қосылған.\n\nСондай-ақ сіз желідегі жеке белсенділігіңізді бақылай алатын <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> қолданбасына қосылғансыз."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Құрылғыңызды <xliff:g id="ORGANIZATION">%1$s</xliff:g> басқарады.\n\nӘкімші параметрлерді, корпоративтік рұқсатты, қолданбаларды, құрылғыңызбен байланысты деректерді және құрылғының орны туралы ақпаратты бақылай және басқара алады.\n\nСіз желідегі белсенділігіңізді, соның ішінде электрондық пошталарды, қолданбаларды және евб-сайттарды бақылай алатын <xliff:g id="APPLICATION">%2$s</xliff:g> қолданбасына қосылғансыз.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> + <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Құрылғыңызды басқаратын:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nСіздің әкімшіңіз параметрлерді, корпоративтік қатынасты, қолданбаларды, құрылғыңызбен байланысты деректерді және құрылғыңыздың орналасуы туралы ақпаратты қадағалай алады. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Сіздің жұмыс профиліңізді басқаратын:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nСіздің әкімшіңіз электрондық пошта, қолданбалар және қауіпсіз сайттармен қоса желі әрекеттеріңізді қадағалай алады.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Құрылғыңызды басқаратын:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nЖұмыс профиліңізді басқаратын:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nСіздің әкімшіңіз электрондық пошта, қолданбалар және қауіпсіз сайттарды қосқанда, құрылғыңызды және желілік белсенділікті қадағалай алады.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Сіз қолданбаға VPN байланысын орнатуға рұқсат бердіңіз.\n\nБұл қолданба электрондық пошта, қолданбалар және қауіпсіз сайттарды қосқанда, құрылғыны және желілік әрекеттерді қадағалай алады."</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Құрылғыңызды басқаратын:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nСіздің әкімшіңіз параметрлерді, корпоративтік қатынасты, қолданбаларды, құрылғыңызбен байланысты деректерді және құрылғыңыздың орналасуы туралы ақпаратты қадағалай алады.\n\nСіз электрондық пошта, қолданбалар және сайттарды қосқандағы желілік әрекеттеріңізді бақылай алатын VPN желісіне қосылдыңыз\n\nҚосымша ақпарат алу үшін, әкімшіге хабарласыңыз."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Сіздің жұмыс профиліңізді басқаратын:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nСіздің әкімшіңіз электрондық пошта, қолданбалар және қауіпсіз сайттармен қоса желі әрекеттеріңізді қадағалай алады.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз.\n\nСіз сондай-ақ сіздің жеке желілік әрекеттеріңізді бақылай алатын VPN желісіне қосылдыңыз."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Құрылғыңызды басқаратын:<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nЖұмыс профиліңізді басқаратын:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nСіздің әкімшіңіз электрондық пошта, қолданбалар және қауіпсіз сайттарды қосқанда, құрылғыңызды және желілік белсенділікті қадағалай алады.\n\nҚосымша ақпарат алу үшін әкімшіге хабарласыңыз.\n\nСіз сондай-ақ сіздің жеке желілік әрекеттеріңізді бақылай алатын VPN желісіне қосылдыңыз"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Қолмен бекітпесін ашқанша құрылғы бекітілген күйде қалады"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Хабарландыруларды тезірек алу"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Бекітпесін ашу алдында оларды көру"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Барлығын көру"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Барлығын жасыру"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Қазір өшіру"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Жаю"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Жию"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Экран түйрелді"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Бұл сіз оны босатқанша оны көрсетіп тұрады. Босату үшін «Кері» және «Шолу» түймелерін бір уақытта басып тұрыңыз."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Бұл сіз оны босатқанша оны көрсетіп тұрады. Босату үшін «Шолу» түймесін бір уақытта басып тұрыңыз."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Өшіру"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> — көлем диалогтық терезесі"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Түпнұсқаны қалпына келтіру үшін түртіңіз."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Сіз жұмыс профиліңізді пайдаланып жатырсыз"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Жүйелік пайдаланушылық интерфейс тюнері"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Ендірілген батарея пайыздық шамасын көрсету"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Зарядталмай тұрғанда, күй жолағы белгішесінің ішінде батарея деңгейінің пайыздық шамасын көрсетеді"</string> - <string name="quick_settings" msgid="10042998191725428">"Жылдам параметрлер"</string> - <string name="status_bar" msgid="4877645476959324760">"Күйін көрсету жолағы"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демо режимі"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Демо режимін қосу"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Демо режимін көрсету"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Дабыл"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Жұмыс профилі"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Ұшақ режимі"</string> - <string name="add_tile" msgid="2995389510240786221">"Тақтайша қосу"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Трансляция тақтайшасы"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Бұны уақытынан бұрын өшірмесеңіз, келесі <xliff:g id="WHEN">%1$s</xliff:g> дабылыңызды есітпейсіз"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Келесі <xliff:g id="WHEN">%1$s</xliff:g> дабылыңызды есітпейсіз"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Жылдам параметрлер, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Хот-спот"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Жұмыс профилі"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Кейбіреулерге қызық, бірақ барлығына емес"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Жүйелік пайдаланушылық интерфейс тюнері Android пайдаланушылық интерфейсін реттеудің қосымша жолдарын береді. Бұл эксперименттік мүмкіндіктер болашақ шығарылымдарда өзгеруі, бұзылуы немесе жоғалуы мүмкін. Сақтықпен жалғастырыңыз."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Бұл эксперименттік мүмкіндіктер болашақ шығарылымдарда өзгеруі, бұзылуы немесе жоғалуы мүмкін. Сақтықпен жалғастырыңыз."</string> - <string name="got_it" msgid="2239653834387972602">"Түсіндім"</string> - <string name="tuner_toast" msgid="603429811084428439">"Құттықтаймыз! Жүйелік пайдаланушылық интерфейс тюнері \"Параметрлер\" тармағына қосылды"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Параметрлерден жою"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Жүйелік пайдаланушылық интерфейс тюнерін \"Параметрлер\" тармағынан жойып, оның барлық мүмкіндіктерін пайдалануды тоқтату керек пе?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Жұмыс профиліндесіз"</string> </resources> diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index 043cda266991..3fb8c2e21481 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ព័ត៌មានកម្មវិធី"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"អេក្រង់បច្ចុប្បន្នរបស់អ្នកបង្ហាញនៅទីនេះ"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"បដិសេធកម្មវិធីថ្មីៗ"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"អេក្រង់ 1 ក្នុងទិដ្ឋភាព"</item> - <item quantity="other" msgid="5523506463832158203">"អេក្រង់ %d ក្នុងទិដ្ឋភាព"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">អេក្រង់ %d ក្នុងទិដ្ឋភាព</item> + <item quantity="one">អេក្រង់ 1 ក្នុងទិដ្ឋភាព</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"គ្មានការជូនដំណឹង"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"បន្ត"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"ការជូនដំណឹង"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"អនុញ្ញាតការកែកំហុសយូអេសប៊ី?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ស្នាមម្រាមដៃ RSA របស់កុំព្យូទ័រគឺ៖ \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"អនុញ្ញាតជានិច្ចសម្រាប់កុំព្យូទ័រនេះ"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"មិនអនុញ្ញាតការកែកំហុសតាមរយៈយូអេសប៊ីទេ"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"អ្នកប្រើដែលបានចូលទៅឧបករណ៍នេះនាពេលបច្ចុប្បន្នមិនអាចបើកការកែកំហុសតាមរយៈយូអេសប៊ីបានទេ។ ដើម្បីប្រើលក្ខណៈពិសេសនេះ សូមប្តូរទៅអ្នកប្រើចម្បង “<xliff:g id="NAME">%s</xliff:g>”។"</string> <string name="compat_mode_on" msgid="6623839244840638213">"ពង្រីកដើម្បីឲ្យពេញអេក្រង់"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ទាញដើម្បីឲ្យពេញអេក្រង់"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"កំពុងរក្សាទុករូបថតអេក្រង់…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ស្វែងរក"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ម៉ាស៊ីនថត"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ទូរស័ព្ទ"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ជំនួយសំឡេង"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ដោះសោ"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"ប៊ូតុងដោះសោ កំពុងរង់ចាំស្នាមម្រាមដៃ"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ដោះសោដោយមិនបាច់ប្រើស្នាមម្រាមដៃរបស់អ្នក"</string> <string name="unlock_label" msgid="8779712358041029439">"ដោះសោ"</string> <string name="phone_label" msgid="2320074140205331708">"បើកទូរស័ព្ទ"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"បើកជំនួយសំឡេង"</string> <string name="camera_label" msgid="7261107956054836961">"បើកម៉ាស៊ីនថត"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"ជ្រើសប្លង់ភារកិច្ចថ្មី"</string> <string name="cancel" msgid="6442560571259935130">"បោះបង់"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ទិន្នន័យពីរកាំ។"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ទិន្នន័យបីកាំ។"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"សញ្ញាទិន្នន័យពេញ។"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"បិទវ៉ាយហ្វាយ។"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"បានផ្ដាច់វ៉ាយហ្វាយ។"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"សញ្ញាវ៉ាយហ្វាយមួយកាំ។"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"សេវាវ៉ាយហ្វាយពីរកាំ។"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"វ៉ាយហ្វាយបីកាំ។"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"សញ្ញាវ៉ាយហ្វាយពេញ។"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"បានភ្ជាប់ទៅ <xliff:g id="WIFI">%s</xliff:g> ។"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"បានភ្ជាប់ទៅ <xliff:g id="BLUETOOTH">%s</xliff:g> ។"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"គ្មាន WiMAX ។"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX ពីរកាំ។"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX បីកាំ។"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"សញ្ញា WiMAX ពេញ។"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"បានផ្តាច់អ៊ីសឺរណិត។"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"បានភ្ជាប់អ៊ីសឺរណិត។"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"គ្មានសញ្ញា។"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"មិនបានតភ្ជាប់។"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"សូន្យកាំ។"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"គ្មានស៊ីមកាត។"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ការភ្ជាប់ប៊្លូធូស។"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"របៀបពេលជិះយន្តហោះ"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"គ្មានស៊ីមកាតទេ។"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"ការប្តូរបណ្តាញក្រុមហ៊ុនផ្តល់សេវា។"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ថ្ម <xliff:g id="NUMBER">%d</xliff:g> ភាគរយ។"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"ការកំណត់ប្រព័ន្ធ។"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> បដិសេធ។"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"កម្មវិធីថ្មីៗទាំងអស់ត្រូវបានបោះបង់។"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"ចាប់ផ្ដើម <xliff:g id="APP">%s</xliff:g> ។"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"បានបដិសេធការជូនដំណឹង"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"ពណ៌ការជូនដំណឹង"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ការកំណត់រហ័ស។"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ចាក់សោអេក្រង់។"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ការកំណត់"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ទិដ្ឋភាព។"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"បិទ"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"បញ្ជាក់"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"អ្នកប្រើ <xliff:g id="USER">%s</xliff:g> ។"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"បានបិទវ៉ាយហ្វាយ។"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"បានបិទរបៀបជិះយន្តហោះ។"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"បានបើករបៀបជិះយន្តហោះ។"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"បានបើកមុខងារកុំរំខាន (អាទិភាពប៉ុណ្ណោះ)។"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"មុខងារកុំរំខានបានបើក ស្ងៀមស្ងាត់ទាំងស្រុង។"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"បានបើកមុខងារកុំរំខាន សូមកុំរំខាន"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"មុខងារកុំរំខានបានបើក សម្លេងរោទិ៍ប៉ុណ្ណោះ។"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"បានបិទមុខងារកុំរំខាន។"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"បានបិទមុខងារកុំរំខាន។"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"កុំរំខាន"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"អាទិភាពប៉ុណ្ណោះ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"ស្ងៀមស្ងាត់ទាំងស្រុង"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"សូមកុំរំខាន"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ប៊្លូធូស"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ប៊្លូធូស (ឧបករណ៍ <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ប៊្លូធូសបានបិទ"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"មិនបានតភ្ជាប់"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"គ្មានបណ្ដាញ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"វ៉ាយហ្វាយបានបិទ"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"គ្មានបណ្តាញ Wi-Fi ទេ"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"មិនមានបណ្ដាញដែលបានរក្សាទុក"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"ខាស"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"ការចាត់ថ្នាក់"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ឧបករណ៍ដែលមិនមានឈ្មោះ"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ស្វែងរក"</string> <string name="description_direction_up" msgid="7169032478259485180">"រុញឡើងលើដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ។"</string> <string name="description_direction_left" msgid="7207478719805562165">"រុញទៅឆ្វេងដើម្បី <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ។"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"អ្នកនឹងមិនរំខានដោយសម្លេង និងរំញ័រឡើយ លើកលែងតែសម្លេងរោទិ៍ ការរំលឹក ព្រឹត្តិការណ៍ និងអ្នកហៅដែលអ្នកបានបញ្ជាក់ប៉ុណ្ណោះ។"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"គ្មានការផ្អាក។ គ្មានការជូនដំណឹងពីព្រឹត្តិការណ៍។"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"អ្នកនឹងមិនរំខានដោយសម្លេង និងរំញ័រឡើយ លើកលែងតែសម្លេងរោទិ៍ ការរំលឹក ព្រឹត្តិការណ៍ និងអ្នកហៅដែលអ្នកបញ្ជាក់។"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"ប្ដូរតាមបំណង"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"វារារាំងសំឡេង និងរំញ័រទាំងអស់ ដោយរួមបញ្ចូលទាំងសំឡេងរោទិ៍ តន្ត្រី វីដេអូ និងហ្គេម។ អ្នកនឹងនៅតែអាចធ្វើការហៅទូរស័ព្ទបានដដែល។"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"វារារាំងសំឡេង និងរំញ័រទាំងអស់ដែលចេញពីម៉ោងរោទិ៍ តន្ត្រី វីដេអូ និងហ្គេម។"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"គ្មានការផ្អាក"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"តែការផ្អាកអាទិភាពប៉ុណ្ណោះ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"ការជូនដំណឹងបន្ទាប់របស់អ្នកគឺនៅម៉ោង <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ការជូនដំណឹងបន្ទាប់របស់អ្នកគឺនៅ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"អ្នកនឹងមិនឮការជូនដំណឹងរបស់អ្នកនៅម៉ោង <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"ការជូនដំណឹងមិនសូវបន្ទាន់ខាងក្រោម"</string> <string name="notification_tap_again" msgid="8524949573675922138">"ប៉ះម្ដងទៀតដើម្បីបើក"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"អូសឡើងលើ ដើម្បីដោះសោ"</string> - <string name="phone_hint" msgid="4872890986869209950">"អូសចេញពីរូបតំណាងដើម្បីប្រើទូរស័ព្ទ"</string> - <string name="voice_hint" msgid="8939888732119726665">"អូសចេញពីរូបតំណាងដើម្បីប្រើជំនួយសំឡេង"</string> - <string name="camera_hint" msgid="7939688436797157483">"អូសចេញពីរូបតំណាងដើម្បីប្រើកាមេរ៉ា"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"បិទសំឡេងទាំងស្រុង។ វាក៏នឹងបិទសំឡេងកម្មវិធីអានអេក្រង់ផងដែរ។"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"ស្ងៀមស្ងាត់ទាំងស្រុង"</string> + <string name="phone_hint" msgid="3101468054914424646">"អូសទៅស្ដាំដើម្បីបើកទូរស័ព្ទ"</string> + <string name="camera_hint" msgid="5241441720959174226">"អូសទៅឆ្វេងដើម្បីប្រើម៉ាស៊ីនថត"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"គ្មានការរំខាន"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"អាទិភាពប៉ុណ្ណោះ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"សំឡេងរោទ៍ប៉ុណ្ណោះ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"ស្ងៀមស្ងាត់\nទាំងស្រុង"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"ទាំងអស់"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"មិនមានការរំខា\nទេ"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"អាទិភាព\nប៉ុណ្ណោះ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"សំឡេងរោទ៍\nប៉ុណ្ណោះ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"កំពុងបញ្ចូលថ្ម (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ទើបពេញ)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ប្ដូរអ្នកប្រើ"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ប្ដូរអ្នកប្រើ អ្នកប្រើបច្ចុប្បន្ន <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"អ្នកប្រើបច្ចុប្បន្ន <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"បង្ហាញប្រវត្តិរូប"</string> <string name="user_add_user" msgid="5110251524486079492">"បន្ថែមអ្នកប្រើ"</string> <string name="user_new_user_name" msgid="426540612051178753">"អ្នកប្រើថ្មី"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ចាប់ផ្ដើម"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"បាទ/ចាស បន្ត"</string> <string name="guest_notification_title" msgid="1585278533840603063">"អ្នកប្រើភ្ញៀវ"</string> - <string name="guest_notification_text" msgid="335747957734796689">"ដើម្បីលុបកម្មវិធី និងទិន្នន័យ សូមយកអ្នកប្រើជាភ្ញៀវចេញ"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"យកភ្ញៀវចេញដើម្បីលុបកម្មវិធី និងទិន្នន័យ"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"យកភ្ញៀវចេញ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"បន្ថែមអ្នកប្រើថ្មី?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"ពេលអ្នកបន្ថែមអ្នកប្រើថ្មី អ្នកប្រើនោះត្រូវកំណត់ទំហំផ្ទាល់របស់គេ។\n\nអ្នកប្រើណាមួយក៏អាចធ្វើបច្ចុប្បន្នភាពកម្មវិធីសម្រាប់អ្នកប្រើផ្សេងបានដែរ។"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"បិទ VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"ផ្ដាច់ VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"ឧបករណ៍របស់អ្នកត្រូវបានគ្រប់គ្រងដោយ៖ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកអាចឃ្លាំមើល និងគ្រប់គ្រងការកំណត់ ការចូលដំណើរការជាក្រុម កម្មវិធី ទិន្នន័យដែលជាប់ទាក់ទងនឹងឧបករណ៍របស់អ្នក និងព័ត៌មានទីតាំងនៃឧបករណ៍របស់អ្នក។ សម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"អ្នកបានអនុញ្ញាតឲ្យកម្មវិធីដំឡើងការតភ្ជាប់ VPN។\n\nកម្មវិធីនេះអាចឃ្លាំមើលឧបករណ៍ និងសកម្មភាពបណ្តាញរបស់អ្នក រាប់បញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រ។"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"ប្រវត្តិការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>។\n\nអ្នកគ្រប់គ្រងរបស់អ្នកមានលទ្ធភាពអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី គេហទំព័រមានសុវត្ថិភាព។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"ឧបករណ៍របស់អ្នកត្រូវបានគ្រប់គ្រងដោយ៖\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nប្រវត្តិការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ៖\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកអាចឃ្លាំមើលឧបករណ៍របស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រមានសុវត្ថិភាព។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"អ្នកបានអនុញ្ញាតឲ្យកម្មវិធីដំឡើងការភ្ជាប់ VPN។\n\nកម្មវិធីនេះអាចឃ្លាំមើលសកម្មភាពបណ្តាញ និងឧបករណ៍របស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រមានសុវត្ថិភាព។"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"ឧបករណ៍របស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកអាចឃ្លាំមើល និងគ្រប់គ្រងការកំណត់ ការចូលដំណើរការជាក្រុម កម្មវិធី ទិន្នន័យដែលជាប់ទាក់ទងនឹងឧបករណ៍របស់អ្នក និងព័ត៌មានទីតាំងនៃឧបករណ៍របស់អ្នក។\n\nអ្នកត្រូវបានភ្ជាប់ជាមួយ VPN ដែលវាអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រ។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"ប្រវត្តិការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកមានលទ្ធភាពអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី គេហទំព័រ។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។\n\nអ្នកក៏ត្រូវបានភ្ជាប់ជាមួួយ VPN ផងដែរ ដែលវាអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក។"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"អ្នកត្រូវបានតភ្ជាប់ទៅ <xliff:g id="APPLICATION">%1$s</xliff:g> ដែលអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រាប់បញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រ។"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"អ្នកត្រូវបានតភ្ជាប់ទៅ <xliff:g id="APPLICATION">%1$s</xliff:g> ដែលអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រាប់បញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រ។"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"ប្រវត្តិរូបការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>។ វាត្រូវបានតភ្ជាប់ទៅនឹង <xliff:g id="APPLICATION">%2$s</xliff:g> ដែលអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រាប់បញ្ចូលទាំងអ៊ីមែល កម្មវិធី គេហទំព័រ។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រប់របស់អ្នក។"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"ប្រវត្តិរូបការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>។ វាត្រូវបានតភ្ជាប់ទៅនឹង <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ដែលអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រាប់បញ្ចូលទាំងអ៊ីមែល កម្មវិធី គេហទំព័រ។\n\nអ្នកក៏ត្រូវបានតភ្ជាប់ផងដែរទៅនឹង <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ដែលអាចឃ្លាំមើលសកម្មភាពបណ្តាញផ្ទាល់ខ្លួនរបស់អ្នក។"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"ឧបករណ៍របស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកអាចឃ្លាំមើល និងគ្រប់គ្រងការកំណត់ ការចូលប្រើជាក្រុម កម្មវិធី ទិន្នន័យដែលជាប់ទាក់ទងនឹងឧបករណ៍របស់អ្នក និងព័ត៌មានទីតាំងនៃឧបករណ៍របស់អ្នក។\n\nអ្នកត្រូវបានភ្ជាប់ជាមួយ <xliff:g id="APPLICATION">%2$s</xliff:g> ដែលវាអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រ។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"ប្រវត្តិការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកមានលទ្ធភាពអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី គេហទំព័រមានសុវត្ថិភាព។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។\n\nអ្នកក៏ត្រូវបានភ្ជាប់ជាមួួយ VPN ផងដែរ ដែលវាអាចឃ្លាំមើលសកម្មភាពបណ្តាញរបស់អ្នក។"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"ឧបករណ៍នេះត្រូវបានគ្រប់គ្រងដោយ <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nប្រវត្តិការងាររបស់អ្នកត្រូវបានគ្រប់គ្រងដោយ៖\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nអ្នកគ្រប់គ្រងរបស់អ្នកអាចឃ្លាំមើលឧបករណ៍របស់អ្នក រួមបញ្ចូលទាំងអ៊ីមែល កម្មវិធី និងគេហទំព័រមានសុវត្ថិភាព។\n\nសម្រាប់ព័ត៌មានបន្ថែម សូមទាក់ទងអ្នកគ្រប់គ្រងរបស់អ្នក។\n\nអ្នកក៏ត្រូវបានភ្ជាប់ជាមួយ VPN ផងដែរ ដែលវាអាចឃ្លាំមើលសកម្មភាពបណ្តាញផ្ទាល់ខ្លួនរបស់អ្នក"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ឧបករណ៍នឹងចាក់សោរហូតដល់អ្នកដោះសោដោយដៃ"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"ទទួលបានការជូនដំណឹងកាន់តែលឿន"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ឃើញពួកវាមុនពេលដោះសោ"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"មើលទាំងអស់"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"លាក់ទាំងអស់"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"បញ្ចប់ឥឡូវនេះ"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"ពង្រីក"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"បង្រួម"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"អេក្រង់ត្រូវបានភ្ជាប់"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"រក្សាទុកវាក្នុងទិដ្ឋភាពរហូតដល់អ្នកផ្ដាច់។ ប៉ះ ហើយសង្កត់ថយក្រោយ និងទិដ្ឋភាពនៅពេលតែមួយដើម្បីផ្ដាច់។"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"វារក្សាទុកក្នុងទិដ្ឋភាពរហូតដល់អ្នកផ្ដាច់។ ប៉ះ និងសង្កត់ទិដ្ឋភាពដើម្បីផ្ដាច់។"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"បដិសេធ"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> គឺជាប្រអប់សម្លេង"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ប៉ះដើម្បីស្តារច្បាប់ដើម។"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"អ្នកកំពុងប្រើប្រវត្តិរូបការងាររបស់អ្នក"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"កម្មវិធីសម្រួល UI ប្រព័ន្ធ"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"បង្ហាញភាគរយថាមពលថ្មដែលបានបង្កប់"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"បង្ហាញភាគរយនៃកម្រិតថាមពលថ្មនៅក្នុងរូបតំណាងរបារស្ថានភាពនៅពេលមិនសាកថ្ម"</string> - <string name="quick_settings" msgid="10042998191725428">"ការកំណត់រហ័ស"</string> - <string name="status_bar" msgid="4877645476959324760">"របារស្ថានភាព"</string> - <string name="demo_mode" msgid="2389163018533514619">"របៀបសាកល្បង"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"បើករបៀបសាកល្បង"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"បង្ហាញរបៀបសាកល្បង"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"អ៊ីសឺរណិត"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"ម៉ោងរោទ៍"</string> - <string name="status_bar_work" msgid="6022553324802866373">"ប្រវត្តិរូបការងារ"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"របៀបក្នុងយន្តហោះ"</string> - <string name="add_tile" msgid="2995389510240786221">"បន្ថែមក្រឡាល្អិត"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ការផ្សាយជាក្រឡាល្អិត"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"អ្នកនឹងមិនលឺម៉ោងរោទ៍ <xliff:g id="WHEN">%1$s</xliff:g> បន្ទាប់របស់អ្នកទេ ប្រសិនបើអ្នកមិនបិទរបៀបនេះមុនពេលនោះទេ"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"អ្នកនឹងមិនលឺម៉ោងរោទ៍ <xliff:g id="WHEN">%1$s</xliff:g> បន្ទាប់របស់អ្នកទេ"</string> - <string name="alarm_template" msgid="3980063409350522735">"នៅ <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"នៅ <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"ការកំណត់រហ័ស <xliff:g id="TITLE">%s</xliff:g>។"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ហតស្ប៉ត"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"ប្រវត្តិរូបការងារ"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"ល្អសម្រាប់អ្នកប្រើមួយចំនួន តែមិនសម្រាប់គ្រប់គ្នាទេ"</string> - <string name="tuner_warning" msgid="8730648121973575701">"កម្មវិធីសម្រួល UI ប្រព័ន្ធផ្តល់ជូនអ្នកនូវមធ្យោបាយបន្ថែមទៀតដើម្បីកែសម្រួល និងប្តូរចំណុចប្រទាក់អ្នកប្រើ Android តាមបំណង។ លក្ខណៈពិសេសសាកល្បងនេះអាចនឹងផ្លាស់ប្តូរ បំបែក ឬបាត់បង់បន្ទាប់ពីការចេញផ្សាយនាពេលអនាគត។ សូមបន្តដោយប្រុងប្រយ័ត្ន។"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"លក្ខណៈពិសេសសាកល្បងនេះអាចនឹងផ្លាស់ប្តូរ បំបែក ឬបាត់បង់បន្ទាប់ពីការចេញផ្សាយនាពេលអនាគត។ សូមបន្តដោយប្រុងប្រយ័ត្ន។"</string> - <string name="got_it" msgid="2239653834387972602">"យល់ហើយ"</string> - <string name="tuner_toast" msgid="603429811084428439">"សូមអបអរសាទរ! កម្មវិធីសម្រួល UI ប្រព័ន្ធត្រូវបានបន្ថែមទៅការកំណត់ហើយ"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"យកចេញពីការកំណត់"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"យកកម្មវិធីសម្រួល UI ប្រព័ន្ធចេញពីការកំណត់ ហើយឈប់ប្រើលក្ខណៈពិសេសរបស់វាទាំងអស់?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"អ្នកកំពុងនៅក្នុងប្រវត្តិរូបការងារ"</string> </resources> diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index 7d5b242c8ecc..5c26c70bbfa5 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿ"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಪರದೆಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ಇತ್ತೀಚಿನ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ವಜಾಗೊಳಿಸು"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"ಸಮಗ್ರ ನೋಟದಲ್ಲಿರುವ 1 ಪರದೆ"</item> - <item quantity="other" msgid="5523506463832158203">"ಸಮಗ್ರ ನೋಟದಲ್ಲಿರುವ %d ಪರದೆಗಳು"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">ಸಮಗ್ರ ನೋಟದಲ್ಲಿರುವ %d ಪರದೆಗಳು</item> + <item quantity="other">ಸಮಗ್ರ ನೋಟದಲ್ಲಿರುವ %d ಪರದೆಗಳು</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ಯಾವುದೇ ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"ಅಧಿಸೂಚನೆಗಳು"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಅನುಮತಿಸುವುದೇ?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ಕಂಪ್ಯೂಟರ್ನ RSA ಕೀ ಫಿಂಗರ್ ಪ್ರಿಂಟ್ ಹೀಗಿದೆ :\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ಈ ಕಂಪ್ಯೂಟರ್ನಿಂದ ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB ಡೀಬಗ್ ಮಾಡುವಿಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿಲ್ಲ"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ಬಳಕೆದಾರರು ಪ್ರಸ್ತುತ ಈ ಸಾಧನಕ್ಕೆ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ USB ಡೀಬಗ್ ಮಾಡುವುದನ್ನು ಆನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಲು, “<xliff:g id="NAME">%s</xliff:g>” ಅವರನ್ನು ಪ್ರಾಥಮಿಕ ಬಳಕೆದಾರರಿಗೆ ಬದಲಾಯಿಸಿ."</string> <string name="compat_mode_on" msgid="6623839244840638213">"ಪರದೆ ತುಂಬಿಸಲು ಝೂಮ್ ಮಾಡು"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ಪರದೆ ತುಂಬಿಸಲು ವಿಸ್ತಾರಗೊಳಿಸು"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ಸ್ಕ್ರೀನ್ಶಾಟ್ ಉಳಿಸಲಾಗುತ್ತಿದೆ…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ಹುಡುಕು"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ಕ್ಯಾಮರಾ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ಫೋನ್"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ಧ್ವನಿ ಸಹಾಯಕ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ಅನ್ಲಾಕ್"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"ಅನ್ಲಾಕ್ ಬಟನ್, ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗೆ ಕಾಯಲಾಗುತ್ತಿದೆ"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ನಿಮ್ಮ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಬಳಸದೆಯೇ ಅನ್ಲಾಕ್ ಮಾಡಿ"</string> <string name="unlock_label" msgid="8779712358041029439">"ಅನ್ಲಾಕ್ ಮಾಡು"</string> <string name="phone_label" msgid="2320074140205331708">"ಫೋನ್ ತೆರೆಯಿರಿ"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ಧ್ವನಿ ಸಹಾಯಕವನ್ನು ತೆರೆ"</string> <string name="camera_label" msgid="7261107956054836961">"ಕ್ಯಾಮರಾ ತೆರೆಯಿರಿ"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"ಹೊಸ ಕಾರ್ಯ ವಿನ್ಯಾಸವನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string> <string name="cancel" msgid="6442560571259935130">"ರದ್ದುಮಾಡು"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ಡೇಟಾ ಎರಡು ಪಟ್ಟಿಗಳು."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ಡೇಟಾ ಮೂರು ಪಟ್ಟಿಗಳು."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ಡೇಟಾ ಸಂಕೇತ ತುಂಬಿದೆ."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"ವೈಫೈ ಆಫ್."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"ವೈಫೈ ಸಂಪರ್ಕ ಕಡಿತಗೊಂಡಿದೆ."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"ವೈಫೈ ಒಂದು ಪಟ್ಟಿ."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"ವೈಫೈ ಎರಡು ಪಟ್ಟಿಗಳು."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"ವೈಫೈ ಮೂರು ಪಟ್ಟಿಗಳು."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"ವೈಫೈ ಸಿಗ್ನಲ್ ಪೂರ್ತಿ ಇದೆ."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX ಸಂಕೇತವಿಲ್ಲ."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX ಎರಡು ಪಟ್ಟಿಗಳು."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX ಮೂರು ಪಟ್ಟಿಗಳು."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX ಸಿಗ್ನಲ್ ಪೂರ್ತಿ ಇದೆ."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ಇಥರ್ನೆಟ್ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ಇಥರ್ನೆಟ್ ಸಂಪರ್ಕಗೊಳಿಸಲಾಗಿದೆ."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"ಸಂಕೇತವಿಲ್ಲ."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"ಶೂನ್ಯ ಪಟ್ಟಿಗಳು."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"ಯಾವುದೇ ಸಿಮ್ ಇಲ್ಲ."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ಬ್ಲೂಟೂತ್ ಟೆಥರಿಂಗ್."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"ಏರೋಪ್ಲೇನ್ ಮೋಡ್"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"ಯಾವುದೇ ಸಿಮ್ ಇಲ್ಲ."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"ವಾಹಕ ನೆಟ್ವರ್ಕ್ ಬದಲಾಯಿಸುವಿಕೆ."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ಬ್ಯಾಟರಿ <xliff:g id="NUMBER">%d</xliff:g> ಪ್ರತಿಶತ."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್ಗಳು."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ವಜಾಗೊಳಿಸಲಾಗಿದೆ."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"ಇತ್ತೀಚಿನ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ವಜಾಗೊಳಿಸಲಾಗಿದೆ."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ಅಧಿಸೂಚನೆ ವಜಾಗೊಂಡಿದೆ."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"ಅಧಿಸೂಚನೆಯ ಛಾಯೆ."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳು."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ಲಾಕ್ ಪರದೆ."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ಸಮಗ್ರ ನೋಟ."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"ಮುಚ್ಚು"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"ದೃಢೀಕರಿಸು"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ಬಳಕೆದಾರ <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ವೈಫೈ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್ ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್ ಅನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್, ಆದ್ಯತೆ ಮಾತ್ರ."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್ ಆಗಿದೆ, ಒಟ್ಟು ನಿಶ್ಯಬ್ಧ."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆನ್ ಆಗಿದೆ, ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"ಅಲಾರಮ್ಗಳಿಗೆ ಮಾತ್ರ ಅಡಚಣೆ ಮಾಡಬೇಡಿ."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಆಫ್ ಆಗಿದೆ."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ತೊಂದರೆ ಮಾಡಬೇಡಿ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> @@ -199,7 +195,7 @@ <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"ಸ್ಥಳ ವರದಿಮಾಡುವಿಕೆಯು ಆನ್ ಆಗಿದೆ."</string> <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"ಸ್ಥಳ ವರದಿಮಾಡುವಿಕೆಯನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"ಸ್ಥಳ ವರದಿಮಾಡುವಿಕೆಯನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ."</string> - <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"<xliff:g id="TIME">%s</xliff:g> ಗಂಟೆಗೆ ಅಲಾರಂ ಹೊಂದಿಸಲಾಗಿದೆ."</string> + <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"<xliff:g id="TIME">%s</xliff:g> ಗಂಟೆಗೆ ಅಲಾರಾಂ ಹೊಂದಿಸಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_close" msgid="3115847794692516306">"ಪ್ಯಾನಲ್ ಮುಚ್ಚಿ."</string> <string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"ಹೆಚ್ಚು ಸಮಯ."</string> <string name="accessibility_quick_settings_less_time" msgid="2404728746293515623">"ಕಡಿಮೆ ಸಮಯ."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ಆದ್ಯತೆ ಮಾತ್ರ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ಅಲಾರಮ್ಗಳು ಮಾತ್ರ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"ಸಂಪೂರ್ಣ ನಿಶ್ಯಬ್ಧ"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ಬ್ಲೂಟೂತ್"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ಬ್ಲೂಟೂತ್ (<xliff:g id="NUMBER">%d</xliff:g> ಸಾಧನಗಳು)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ಬ್ಲೂಟೂತ್ ಆಫ್"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"ಸಂಪರ್ಕಗೊಂಡಿಲ್ಲ"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ನೆಟ್ವರ್ಕ್ ಇಲ್ಲ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ಆಫ್"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ಯಾವುದೇ ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ಗಳು ಲಭ್ಯವಿಲ್ಲ"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"ಯಾವುದೇ ಉಳಿಸಲಾದ ನೆಟ್ವರ್ಕ್ಗಳು ಲಭ್ಯವಿಲ್ಲ"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"ಬಿತ್ತರಿಸುವಿಕೆ"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ಹೆಸರಿಸದಿರುವ ಸಾಧನ"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ಹುಡುಕಿ"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗಾಗಿ ಮೇಲಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ಗಾಗಿ ಎಡಕ್ಕೆ ಸ್ಲೈಡ್ ಮಾಡಿ."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"ಅಲಾರಮ್ಗಳು, ಜ್ಞಾಪನೆಗಳು, ಈವೆಂಟ್ಗಳು ಮತ್ತು ನೀವು ಸೂಚಿಸುವ ಕರೆದಾರರನ್ನು ಹೊರತುಪಡಿಸಿ, ಧ್ವನಿಗಳು ಮತ್ತು ವೈಬ್ರೇಶನ್ಗಳಿಂದ ನಿಮಗೆ ತೊಂದರೆ ಆಗುವುದಿಲ್ಲ."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ಅಲಾರಂಗಳನ್ನು ಸೇರಿದಂತೆ ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"ಅಲಾರಮ್ಗಳು, ಜ್ಞಾಪನೆಗಳು, ಈವೆಂಟ್ಗಳು ಮತ್ತು ನೀವು ಸೂಚಿಸುವ ಕರೆದಾರರನ್ನು ಹೊರತುಪಡಿಸಿ, ಧ್ವನಿಗಳು ಮತ್ತು ವೈಬ್ರೇಶನ್ಗಳಿಂದ ನಿಮಗೆ ತೊಂದರೆ ಆಗುವುದಿಲ್ಲ."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"ಕಸ್ಟಮೈಸ್ ಮಾಡು"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ಇದು ಅಲಾರಮ್ಗಳು, ಸಂಗೀತ, ವೀಡಿಯೊಗಳು, ಮತ್ತು ಆಟಗಳು ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಧ್ವನಿಗಳು ಮತ್ತು ವೈಬ್ರೇಶನ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ. ನಿಮಗೆ ಈಗಲೂ ಫೋನ್ ಕರೆಗಳನ್ನು ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"ಇದು ಅಲಾರಮ್ಗಳು, ಸಂಗೀತ, ವೀಡಿಯೊಗಳು, ಮತ್ತು ಆಟಗಳು ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಧ್ವನಿಗಳು ಮತ್ತು ವೈಬ್ರೇಶನ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"ಆದ್ಯತೆಯ ಅಡಚಣೆಗಳು ಮಾತ್ರ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ಅಲಾರಮ್ಗಳು ಮಾತ್ರ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"ನಿಮ್ಮ ಮುಂದಿನ ಅಲಾರಂ <xliff:g id="ALARM_TIME">%s</xliff:g> ಗೆ ಆಗಿದೆ"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ನಿಮ್ಮ ಮುಂದಿನ ಅಲಾರಮ್ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> ಆಗಿದೆ"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> ಗೆ ನೀವು ನಿಮ್ಮ ಅಲಾರಂ ಆಲಿಸುವುದಿಲ್ಲ"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"ಕೆಳಗೆ ಕಡಿಮೆ ಅವಸರದ ಅಧಿಸೂಚನೆಗಳು"</string> <string name="notification_tap_again" msgid="8524949573675922138">"ತೆರೆಯಲು ಮತ್ತೊಮ್ಮೆ ಸ್ಪರ್ಶಿಸಿ"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"ಅನ್ಲಾಕ್ ಮಾಡಲು ಸ್ವೈಪ್ ಮಾಡಿ"</string> - <string name="phone_hint" msgid="4872890986869209950">"ಫೋನ್ಗಾಗಿ ಐಕಾನ್ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string> - <string name="voice_hint" msgid="8939888732119726665">"ಧ್ವನಿ ಸಹಾಯಕ್ಕಾಗಿ ಐಕಾನ್ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string> - <string name="camera_hint" msgid="7939688436797157483">"ಕ್ಯಾಮರಾಗಾಗಿ ಐಕಾನ್ನಿಂದ ಸ್ವೈಪ್ ಮಾಡಿ"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"ಒಟ್ಟು ಮೌನ. ಇದು ಪರದೆ ರೀಡರ್ ಅನ್ನು ಮೌನವಾಗಿರಿಸುತ್ತದೆ."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"ಸಂಪೂರ್ಣ ನಿಶ್ಯಬ್ಧ"</string> + <string name="phone_hint" msgid="3101468054914424646">"ಫೋನ್ಗಾಗಿ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string> + <string name="camera_hint" msgid="5241441720959174226">"ಕ್ಯಾಮರಾಗಾಗಿ ಎಡಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ಯಾವುದೇ ಅಡಚಣೆಗಳಿಲ್ಲ"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ಆದ್ಯತೆ ಮಾತ್ರ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"ಅಲಾರಮ್ಗಳು ಮಾತ್ರ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"ಸಂಪೂರ್ಣ\nನಿಶ್ಯಬ್ಧ"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"ಎಲ್ಲ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ಯಾವುದೇ\nಅಡಚಣೆಗಳಿಲ್ಲ"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ಆದ್ಯತೆ\nಮಾತ್ರ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ಅಲಾರಮ್ಗಳು\nಮಾತ್ರ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ( ಪೂರ್ತಿ ಆಗುವವರೆಗೆ <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ಬಳಕೆದಾರರನ್ನು ಬದಲಿಸಿ, ಪ್ರಸ್ತುತ ಬಳಕೆದಾರ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"<xliff:g id="CURRENT_USER_NAME">%s</xliff:g> ಪ್ರಸ್ತುತ ಬಳಕೆದಾರ"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"ಪ್ರೊಫೈಲ್ ತೋರಿಸು"</string> <string name="user_add_user" msgid="5110251524486079492">"ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ"</string> <string name="user_new_user_name" msgid="426540612051178753">"ಹೊಸ ಬಳಕೆದಾರರು"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ಪ್ರಾರಂಭಿಸಿ"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ಹೌದು, ಮುಂದುವರಿ"</string> <string name="guest_notification_title" msgid="1585278533840603063">"ಅತಿಥಿ ಬಳಕೆದಾರ"</string> - <string name="guest_notification_text" msgid="335747957734796689">"ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಡೇಟಾ ಅಳಿಸಲು, ಅತಿಥಿ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಿ"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಡೇಟಾವನ್ನು ಅಳಿಸಲು ಅತಿಥಿಯನ್ನು ತೆಗೆದುಹಾಕಿ"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ಅತಿಥಿಯನ್ನು ತೆಗೆದುಹಾಕಿ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸುವುದೇ?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"ನೀವು ಒಬ್ಬ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿದಾಗ, ಆ ವ್ಯಕ್ತಿಯು ಅವರ ಸ್ಥಳವನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ.\n\nಯಾವುದೇ ಬಳಕೆದಾರರು ಎಲ್ಲಾ ಇತರೆ ಬಳಕೆದಾರರಿಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನವೀಕರಿಸಬಹುದು."</string> @@ -351,7 +350,7 @@ <string name="battery_saver_notification_action_text" msgid="109158658238110382">"ಬ್ಯಾಟರಿ ಉಳಿತಾಯವನ್ನು ಆಫ್ ಮಾಡಿ"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"ವಿಷಯಗಳನ್ನು ಮರೆಮಾಡಲಾಗಿದೆ"</string> <string name="media_projection_dialog_text" msgid="3071431025448218928">"ನಿಮ್ಮ ಪರದೆಯ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲಾಗುವ ಎಲ್ಲವನ್ನೂ <xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> ಯು ಸೆರೆಹಿಡಿಯಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ."</string> - <string name="media_projection_remember_text" msgid="3103510882172746752">"ಮತ್ತೊಮ್ಮೆ ತೋರಿಸದಿರು"</string> + <string name="media_projection_remember_text" msgid="3103510882172746752">"ಮತ್ತೊಮ್ಮೆ ತೋರಿಸದಿರಿ"</string> <string name="clear_all_notifications_text" msgid="814192889771462828">"ಎಲ್ಲವನ್ನೂ ತೆರವುಗೊಳಿಸು"</string> <string name="media_projection_action_text" msgid="8470872969457985954">"ಈಗ ಪ್ರಾರಂಭಿಸಿ"</string> <string name="empty_shade_text" msgid="708135716272867002">"ಯಾವುದೇ ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"</string> @@ -364,31 +363,25 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ಸಂಪರ್ಕಕಡಿತಗೊಳಿಸಿ"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"ನಿಮ್ಮ ಸಾಧನವನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಅವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸೆಟ್ಟಿಂಗ್ಗಳು, ಕಾರ್ಪೊರೇಟ್ ಪ್ರವೇಶ, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಹಾಗೂ ನಿಮ್ಮ ಸಾಧನದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಡೇಟಾ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳ ಮಾಹಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಮತ್ತು ನಿರ್ವಹಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"ನೀವು VPN ಸಂಪರ್ಕ ಹೊಂದಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿ ನೀಡಿರುವಿರಿ.\n\nಈ ಅಪ್ಲಿಕೇಶನ್ ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಅವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಇವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಇವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"ನೀವು VPN ಸಂಪರ್ಕ ಹೊಂದಿಸಲು ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅನುಮತಿ ನೀಡಿರುವಿರಿ.\n\nಈ ಅಪ್ಲಿಕೇಶನ್ ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"ನಿಮ್ಮ ಸಾಧನವನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಅವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸೆಟ್ಟಿಂಗ್ಗಳು, ಕಾರ್ಪೊರೇಟ್ ಪ್ರವೇಶ, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಹಾಗೂ ನಿಮ್ಮ ಸಾಧನದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಡೇಟಾ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳ ಮಾಹಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದು.\n\nನೀವು VPN ಗೆ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿರುವಿರಿ, ಅದು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ನಿರ್ವಹಿಸಬಹುದು.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.\n\nನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ VPN ಗೆ ಕೂಡಾ ನೀವು ಸಂಪರ್ಕಗೊಂಡಿರುವಿರಿ."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"ನೀವು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ <xliff:g id="APPLICATION">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವಿರಿ."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"ನೀವು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳು ಸೇರಿದಂತೆ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ <xliff:g id="APPLICATION">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವಿರಿ."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ. ಇದು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ಕೆಲಸದ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ <xliff:g id="APPLICATION">%2$s</xliff:g> ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ. ಇದು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ಕೆಲಸದ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿದೆ.\n\nನೀವು ಕೂಡಾ ವೈಯಕ್ತಿಕ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿರುವಿರಿ."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"ನಿಮ್ಮ ಸಾಧನವನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸೆಟ್ಟಿಂಗ್ಗಳು, ಕಾರ್ಪೊರೇಟ್ ಪ್ರವೇಶ, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಹಾಗೂ ನಿಮ್ಮ ಸಾಧನದೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದ ಡೇಟಾ ಮತ್ತು ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳ ಮಾಹಿತಿಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು ಮತ್ತು ನಿರ್ವಹಿಸಬಹುದು.\n\nಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದಾದ <xliff:g id="APPLICATION">%2$s</xliff:g> ಗೆ ಸಂಪರ್ಕಿತಗೊಂಡಿರುವಿರಿ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು <xliff:g id="ORGANIZATION">%1$s</xliff:g> ಅವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.\n\nನೀವು VPN ಗೆ ಸಹ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿರುವಿರಿ, ಅದು ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"ನಿಮ್ಮ ಸಾಧನವನ್ನು <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> ಅವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ.\nನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಇವರು ನಿರ್ವಹಿಸುತ್ತಿದ್ದಾರೆ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಇಮೇಲ್ಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದ್ದಾರೆ.\n\nಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.\n\nನೀವು VPN ಗೆ ಸಹ ಸಂಪರ್ಕವನ್ನು ಹೊಂದಿರುವಿರಿ, ಅದು ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ನೆಟ್ವರ್ಕ್ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಬಹುದು"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ನೀವಾಗಿಯೇ ಅನ್ಲಾಕ್ ಮಾಡುವವರೆಗೆ ಸಾಧನವು ಲಾಕ್ ಆಗಿಯೇ ಇರುತ್ತದೆ"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"ವೇಗವಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ನೀವು ಅನ್ಲಾಕ್ ಮಾಡುವ ಮೊದಲೇ ಅವುಗಳನ್ನು ನೋಡಿ"</string> - <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ಧನ್ಯವಾದಗಳು"</string> + <string name="hidden_notifications_cancel" msgid="3690709735122344913">"ಬೇಡ ಧನ್ಯವಾದಗಳು"</string> <string name="hidden_notifications_setup" msgid="41079514801976810">"ಹೊಂದಿಸು"</string> <string name="notification_expand_button_text" msgid="1037425494153780718">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"ಎಲ್ಲ ಮರೆಮಾಡಿ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ಈಗಲೇ ಅಂತ್ಯಗೊಳಿಸು"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"ವಿಸ್ತರಿಸು"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ಸಂಕುಚಿಸು"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ಪರದೆಯನ್ನು ಪಿನ್ ಮಾಡಲಾಗಿದೆ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ನೀವು ಅನ್ಪಿನ್ ಮಾಡುವವರೆಗೆ ಅದನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿಡುತ್ತದೆ. ಅನ್ಪಿನ್ ಮಾಡಲು ಒಂದೇ ಸಮಯದಲ್ಲಿ ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ ಹಾಗೂ ಅವಲೋಕಿಸಿ."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"ನೀವು ಅನ್ಪಿನ್ ಮಾಡುವವರೆಗೆ ಅದನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿಡುತ್ತದೆ. ಅನ್ಪಿನ್ ಮಾಡಲು ಅವಲೋಕನವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ."</string> <string name="screen_pinning_positive" msgid="3783985798366751226">"ತಿಳಿಯಿತು"</string> - <string name="screen_pinning_negative" msgid="3741602308343880268">"ಧನ್ಯವಾದಗಳು"</string> + <string name="screen_pinning_negative" msgid="3741602308343880268">"ಬೇಡ ಧನ್ಯವಾದಗಳು"</string> <string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"<xliff:g id="TILE_LABEL">%1$s</xliff:g> ಮರೆಮಾಡುವುದೇ?"</string> <string name="quick_settings_reset_confirmation_message" msgid="2235970126803317374">"ನೀವು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಅದನ್ನು ಆನ್ ಮಾಡಿದಾಗ ಅದು ಮರುಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ."</string> <string name="quick_settings_reset_confirmation_button" msgid="2660339101868367515">"ಮರೆಮಾಡಿ"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ನಿರಾಕರಿಸು"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ವಾಲ್ಯೂಮ್ ಸಂವಾದವಾಗಿದೆ"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ಮೂಲ ಮರುಸ್ಥಾಪಿಸಲು ಸ್ಪರ್ಶಿಸಿ."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ನಿಮ್ಮ ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ನೀವು ಬಳಸುತ್ತಿರುವಿರಿ"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"ಸಿಸ್ಟಮ್ UI ಟ್ಯೂನರ್"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"ಎಂಬೆಡ್ ಮಾಡಲಾದ ಬ್ಯಾಟರಿ ಶೇಕಡಾ ತೋರಿಸಿ"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ಚಾರ್ಜ್ ಮಾಡದಿರುವಾಗ ಸ್ಥಿತಿ ಪಟ್ಟಿ ಐಕಾನ್ ಒಳಗೆ ಬ್ಯಾಟರಿ ಮಟ್ಟದ ಶೇಕಡಾವನ್ನು ತೋರಿಸಿ"</string> - <string name="quick_settings" msgid="10042998191725428">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string> - <string name="status_bar" msgid="4877645476959324760">"ಸ್ಥಿತಿ ಪಟ್ಟಿ"</string> - <string name="demo_mode" msgid="2389163018533514619">"ಡೆಮೊ ಮೋಡ್"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"ಡೆಮೊ ಮೋಡ್ ಸಕ್ರಿಯಗೊಳಿಸಿ"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ಡೆಮೊ ಮೋಡ್ ತೋರಿಸು"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ಇಥರ್ನೆಟ್"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"ಅಲಾರಮ್"</string> - <string name="status_bar_work" msgid="6022553324802866373">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್"</string> - <string name="add_tile" msgid="2995389510240786221">"ಟೈಲ್ ಸೇರಿಸಿ"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ಟೈಲ್ ಅನ್ನು ಪ್ರಸಾರ ಮಾಡಿ"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"ನೀವು ಈ ಅಲಾರಮ್ ಆಫ್ ಮಾಡುವವರೆಗೆ ನಿಮ್ಮ ಮುಂದಿನ <xliff:g id="WHEN">%1$s</xliff:g> ಅಲಾರಮ್ ಅನ್ನು ನೀವು ಆಲಿಸುವುದಿಲ್ಲ"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"ನಿಮ್ಮ ಮುಂದಿನ <xliff:g id="WHEN">%1$s</xliff:g> ಅಲಾರಮ್ ಅನ್ನು ನೀವು ಆಲಿಸುವುದಿಲ್ಲ"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> ರಲ್ಲಿ"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> ರಂದು"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"ತ್ವರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳು, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ಹಾಟ್ಸ್ಪಾಟ್"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"ಕೆಲವರಿಗೆ ಮೋಜು ಆಗಿದೆ ಎಲ್ಲರಿಗೆ ಇಲ್ಲ"</string> - <string name="tuner_warning" msgid="8730648121973575701">"ಸಿಸ್ಟಮ್ UI ಟ್ಯೂನರ್ ನಿಮಗೆ Android ಬಳಕೆದಾರ ಅಂತರಸಂಪರ್ಕವನ್ನು ಸರಿಪಡಿಸಲು ಮತ್ತು ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಹೆಚ್ಚುವರಿ ಮಾರ್ಗಗಳನ್ನು ನೀಡುತ್ತದೆ. ಈ ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯಗಳು ಭವಿಷ್ಯದ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಬದಲಾಗಬಹುದು, ವಿರಾಮವಾಗಬಹುದು ಅಥವಾ ಕಾಣಿಸಿಕೊಳ್ಳದಿರಬಹುದು. ಎಚ್ಚರಿಕೆಯಿಂದ ಮುಂದುವರಿಯಿರಿ."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ಈ ಪ್ರಾಯೋಗಿಕ ವೈಶಿಷ್ಟ್ಯಗಳು ಭವಿಷ್ಯದ ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಬದಲಾಗಬಹುದು, ವಿರಾಮವಾಗಬಹುದು ಅಥವಾ ಕಾಣಿಸಿಕೊಳ್ಳದಿರಬಹುದು. ಎಚ್ಚರಿಕೆಯಿಂದ ಮುಂದುವರಿಯಿರಿ."</string> - <string name="got_it" msgid="2239653834387972602">"ಅರ್ಥವಾಯಿತು"</string> - <string name="tuner_toast" msgid="603429811084428439">"ಅಭಿನಂದನೆಗಳು! ಸಿಸ್ಟಮ್ UI ಟ್ಯೂನರ್ ಅನ್ನು ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಸೇರಿಸಲಾಗಿದೆ"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"ಸೆಟ್ಟಿಂಗ್ಗಳಿಂದ ತೆಗೆದುಹಾಕಿ"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ಸೆಟ್ಟಿಂಗ್ಗಳಿಂದ ಸಿಸ್ಟಮ್ UI ಟ್ಯೂನರ್ ತೆಗೆದುಹಾಕುವುದೇ ಮತ್ತು ಅದರ ಎಲ್ಲಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸುವುದೇ?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"ನೀವು ಕೆಲಸದ ಪ್ರೊಫೈಲ್ನಲ್ಲಿರುವಿರಿ"</string> </resources> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 2a906a469606..b768acce4021 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"앱 정보"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"여기에 최근 화면이 표시됩니다."</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"최근에 사용한 앱 숨기기"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"최근 사용에 화면 1개"</item> - <item quantity="other" msgid="5523506463832158203">"최근 사용에 화면 %d개"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">최근 사용에 화면 %d개 있음</item> + <item quantity="one">최근 사용에 화면 1개 있음</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"알림 없음"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"진행 중"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"알림"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB 디버깅을 허용하시겠습니까?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"컴퓨터 RSA 키 지문:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"이 컴퓨터에서 항상 허용"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB 디버깅이 허용되지 않음"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"현재 이 기기에 로그인한 사용자는 USB 디버깅을 사용할 수 없습니다. 이 기능을 사용하려면 기본 사용자 \'<xliff:g id="NAME">%s</xliff:g>\'님으로 전환하세요."</string> <string name="compat_mode_on" msgid="6623839244840638213">"전체화면 모드로 확대"</string> <string name="compat_mode_off" msgid="4434467572461327898">"전체화면 모드로 확대"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"캡쳐화면 저장 중..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"검색"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"카메라"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"전화"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"음성 지원"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"잠금 해제"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"잠금 해제 버튼, 지문 파일 대기 중"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"지문 파일을 사용하지 않고 잠금 해제"</string> <string name="unlock_label" msgid="8779712358041029439">"잠금 해제"</string> <string name="phone_label" msgid="2320074140205331708">"휴대전화 열기"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"음성 지원 열기"</string> <string name="camera_label" msgid="7261107956054836961">"카메라 열기"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"새 작업 레이아웃 선택"</string> <string name="cancel" msgid="6442560571259935130">"취소"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"데이터 신호 막대가 두 개입니다."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"데이터 신호 막대가 세 개입니다."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"데이터 신호가 강합니다."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi가 꺼져 있습니다."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi 연결이 끊어졌습니다."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi 신호 막대가 하나입니다."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi 신호 막대가 두 개입니다."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi 신호 막대가 세 개입니다."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi 신호가 강합니다."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>에 연결되었습니다."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>에 연결되었습니다."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX가 없습니다."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 신호 막대가 두 개입니다."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX 신호 막대가 세 개입니다."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX 신호가 강합니다."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"이더넷에서 연결 해제되었습니다."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"이더넷에 연결되었습니다."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"신호가 없습니다."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"연결되지 않았습니다."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"신호 막대가 없습니다."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM이 없습니다."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"블루투스 테더링입니다."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"비행기 모드입니다."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM 카드가 없습니다."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"이동통신사 네트워크가 변경됩니다."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"배터리 <xliff:g id="NUMBER">%d</xliff:g>퍼센트"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"시스템 설정"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g>이(가) 제거되었습니다."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"최근 사용한 애플리케이션을 모두 닫았습니다."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g>을(를) 시작하는 중입니다."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"알림이 제거되었습니다."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"알림 세부정보"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"빠른 설정"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"화면을 잠급니다."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"설정"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"최근 사용"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"닫기"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"확인"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"사용자 <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi가 사용 중지되었습니다."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"비행기 모드가 사용 중지되었습니다."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"비행기 모드를 사용합니다."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"알림 일시중지 사용, 중요 알림만 수신"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"알림 일시중지 사용, 모두 차단"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"알림 일시중지 사용, 방해 금지"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"알림 일시중지 사용, 알람만 수신"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"알림 일시중지 사용 중지"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"알림 일시중지가 사용 중지되었습니다."</string> @@ -238,8 +234,8 @@ <string name="ethernet_label" msgid="7967563676324087464">"이더넷"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"알림 일시중지"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"중요 알림만"</string> - <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"알람만"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"모두 차단"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"알람만 수신"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"방해 금지"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"블루투스"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"블루투스(<xliff:g id="NUMBER">%d</xliff:g>개의 기기)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"블루투스 사용 안함"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"연결되어 있지 않음"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"네트워크가 연결되지 않음"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi 꺼짐"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"사용 가능한 Wi-Fi 네트워크 없음"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"저장된 네트워크가 없습니다."</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"전송"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"전송 중"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"이름이 없는 기기"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"검색"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 위로 슬라이드"</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>하려면 왼쪽으로 슬라이드"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"지정한 알람, 알림, 이벤트, 발신자를 제외하고 소리와 진동을 끕니다."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"어떤 방해도 받지 않습니다. 알람도 울리지 않습니다."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"지정한 알람, 알림, 이벤트, 발신자를 제외하고 소리와 진동을 끕니다."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"맞춤설정"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"알람, 음악, 동영상, 게임을 포함하여 모든 소리와 진동을 끕니다. 전화는 걸 수 있습니다."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"알람, 음악, 동영상, 게임을 포함하여 모든 소리와 진동을 끕니다."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"모든 알림 차단"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"최우선 알림만 수신"</string> + <string name="zen_alarms" msgid="5055668280767657759">"알람만 수신"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"다음 알람 시각: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"다음 알람 일시: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g>에 알람을 들을 수 없습니다."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"아래에 덜 급한 알림 표시"</string> <string name="notification_tap_again" msgid="8524949573675922138">"다시 터치하여 열기"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"위로 스와이프하여 잠금 해제"</string> - <string name="phone_hint" msgid="4872890986869209950">"전화 기능을 사용하려면 아이콘에서 스와이프하세요."</string> - <string name="voice_hint" msgid="8939888732119726665">"음성 지원을 사용하려면 아이콘에서 스와이프하세요."</string> - <string name="camera_hint" msgid="7939688436797157483">"카메라를 사용하려면 아이콘에서 스와이프하세요."</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"전체 무음입니다. 이렇게 하면 스크린 리더도 무음으로 설정됩니다."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"모두 차단"</string> + <string name="phone_hint" msgid="3101468054914424646">"전화 기능을 사용하려면 오른쪽으로 스와이프하세요."</string> + <string name="camera_hint" msgid="5241441720959174226">"카메라를 사용하려면 왼쪽으로 스와이프하세요."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"방해 금지"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"중요 알림만"</string> - <string name="interruption_level_alarms" msgid="5226306993448328896">"알람만"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"모두\n차단"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"알람만 수신"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"모두 수신"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"방해\n금지"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"중요 알림만\n허용"</string> - <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"알람만\n"</string> + <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"알람만\n수신"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"충전 중(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> 후 충전 완료)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"사용자 전환"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"사용자 전환, 현재 사용자 <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"현재 사용자: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"프로필 표시"</string> <string name="user_add_user" msgid="5110251524486079492">"사용자 추가"</string> <string name="user_new_user_name" msgid="426540612051178753">"새 사용자"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"다시 시작"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"예, 계속합니다."</string> <string name="guest_notification_title" msgid="1585278533840603063">"게스트 사용자"</string> - <string name="guest_notification_text" msgid="335747957734796689">"앱 및 데이터를 삭제하려면 게스트 사용자를 삭제하세요."</string> + <string name="guest_notification_text" msgid="7513706222848825467">"게스트를 삭제하여 앱 및 데이터 삭제"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"게스트 삭제"</string> <string name="user_add_user_title" msgid="4553596395824132638">"새 사용자를 추가할까요?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"추가된 새로운 사용자는 자신의 공간을 설정해야 합니다.\n\n모든 사용자는 다른 사용자들을 위하여 앱을 업데이트할 수 있습니다."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN 사용 중지"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN 연결 해제"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"이 기기는 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자는 설정, 기업 액세스, 앱, 기기와 관련된 데이터, 기기의 위치 정보를 모니터링하고 관리할 수 있습니다. 자세한 내용은 관리자에게 문의하세요."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"VPN 연결을 설정할 수 있는 권한을 앱에 부여했습니다.\n\n이 앱에서 이메일, 앱, 웹사이트와 같은 내 네트워크 활동 및 기기를 모니터링할 수 있습니다."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"직장 프로필은 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자는 이메일, 앱, 보안 웹사이트를 포함한 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"기기 관리자:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\n직장 프로필 관리자:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\n관리자는 이메일, 앱, 보안 웹사이트를 비롯한 네트워크 활동과 기기를 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"VPN 연결을 설정할 수 있는 권한을 앱에 부여했습니다.\n\n이 앱에서 이메일, 앱, 보안 웹사이트 등의 네트워크 활동과 기기를 모니터링할 수 있습니다."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"이 기기는 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자는 설정, 기업 액세스, 앱, 기기와 관련된 데이터, 기기의 위치 정보를 모니터링하고 관리할 수 있습니다.\n\nVPN에 연결되어 있으므로 VPN 업체에서 이메일, 앱, 웹사이트를 비롯한 내 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"직장 프로필은 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자는 이메일, 앱, 웹사이트와 같은 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요.\n\n또한 VPN에 연결되어 있으며 여기에서 내 네트워크 활동을 모니터링할 수 있습니다."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"<xliff:g id="APPLICATION">%1$s</xliff:g>에 연결되었습니다. 이 앱은 이메일, 앱, 웹사이트와 같은 내 네트워크 활동을 모니터링할 수 있습니다."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"<xliff:g id="APPLICATION">%1$s</xliff:g>에 연결되었습니다. 이 앱은 이메일, 앱, 웹사이트와 같은 내 네트워크 활동을 모니터링할 수 있습니다."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"직장 프로필은 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다. 이는 <xliff:g id="APPLICATION">%2$s</xliff:g>에 연결되어 있으며 여기에서 이메일, 앱, 웹사이트와 같은 직장 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"직장 프로필은 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다. 이는 <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>에 연결되어 있으며 여기에서 이메일, 앱, 웹사이트와 같은 직장 네트워크 활동을 모니터링할 수 있습니다.\n\n또한 <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>에 연결되어 있으며, 여기에서 내 개인 네트워크 활동을 모니터링할 수 있습니다."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"<xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 기기를 관리합니다.\n\n관리자는 설정, 기업 액세스, 앱, 기기와 연결된 데이터, 기기의 위치 정보를 모니터링하고 관리할 수 있습니다.\n\n<xliff:g id="APPLICATION">%2$s</xliff:g>에 연결되어 있으며 여기에서 이메일, 앱, 웹사이트와 같은 내 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"직장 프로필은 <xliff:g id="ORGANIZATION">%1$s</xliff:g>에서 관리합니다.\n\n관리자는 이메일, 앱, 보안 웹사이트를 포함한 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요.\n\n또한 현재 VPN에 연결되어 있으므로 VPN 업체에서도 내 네트워크 활동을 모니터링할 수 있습니다."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"기기 관리자: <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>. \n직장 프로필 관리자:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\n관리자는 이메일, 앱, 보안 웹사이트를 비롯한 내 네트워크 활동을 모니터링할 수 있습니다.\n\n자세한 내용은 관리자에게 문의하세요.\n\n또한 현재 VPN에 연결되어 있으므로 VPN 업체에서도 내 네트워크 활동을 모니터링할 수 있습니다."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"수동으로 잠금 해제할 때까지 기기가 잠금 상태로 유지됩니다."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"알림을 더욱 빠르게 받기"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"잠금 해제하기 전에 알림을 봅니다."</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"모두 보기"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"모두 숨기기"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"지금 종료"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"펼치기"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"접기"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"화면 고정됨"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 뒤로와 최근 사용을 동시에 길게 터치합니다."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"고정 해제하기 전까지 계속 표시됩니다. 고정 해제하려면 최근 사용을 길게 터치합니다."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"거부"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>은(는) 볼륨 대화입니다."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"원본을 복원하려면 터치하세요."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"직장 프로필을 사용하고 있습니다."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"시스템 UI 튜너"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"내장형 배터리 잔량 비율 표시"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"충전 중이 아닌 경우 상태 표시줄 아이콘 내에 배터리 잔량 비율 표시"</string> - <string name="quick_settings" msgid="10042998191725428">"빠른 설정"</string> - <string name="status_bar" msgid="4877645476959324760">"상태 표시줄"</string> - <string name="demo_mode" msgid="2389163018533514619">"데모 모드"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"데모 모드 사용"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"데모 모드 표시"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"이더넷"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"알람"</string> - <string name="status_bar_work" msgid="6022553324802866373">"직장 프로필"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"비행기 모드"</string> - <string name="add_tile" msgid="2995389510240786221">"타일 추가"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"브로드캐스트 타일"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"그때까지 알림 일시중지 상태를 유지하면 <xliff:g id="WHEN">%1$s</xliff:g>에 다음 알람을 들을 수 없습니다."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g>에 다음 알람을 들을 수 없습니다."</string> - <string name="alarm_template" msgid="3980063409350522735">"시간: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"일시: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"빠른 설정하기, <xliff:g id="TITLE">%s</xliff:g>"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"핫스팟"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"직장 프로필"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"마음에 들지 않을 수도 있음"</string> - <string name="tuner_warning" msgid="8730648121973575701">"시스템 UI 튜너를 사용하면 Android 사용자 인터페이스를 변경 및 맞춤설정할 수 있습니다. 이러한 실험실 기능은 향후 출시 버전에서는 변경되거나 다운되거나 사라질 수 있습니다. 신중하게 진행하시기 바랍니다."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"이러한 실험실 기능은 향후 출시 버전에서는 변경되거나 다운되거나 사라질 수 있습니다. 신중하게 진행하시기 바랍니다."</string> - <string name="got_it" msgid="2239653834387972602">"확인"</string> - <string name="tuner_toast" msgid="603429811084428439">"축하합니다. 시스템 UI 튜너가 설정에 추가되었습니다."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"설정에서 삭제"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"시스템 UI 튜너를 설정에서 삭제하고 모든 관련 기능의 사용을 중지하시겠습니까?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"현재 직장 프로필에 있음"</string> </resources> diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index a871f68c5e6c..6de153a5d7bc 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -19,54 +19,73 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="7164937344850004466">"Тутум UI"</string> - <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Тазалоо"</string> + <!-- no translation found for app_label (7164937344850004466) --> + <skip /> + <!-- no translation found for status_bar_clear_all_button (7774721344716731603) --> + <skip /> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Тизмеден алып салуу"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Колдонмо тууралуу"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Акыркы экрандарыңыз бул жерден көрүнөт"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Акыркы колдонмолорду жок кылуу"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 экран Көз жүгүртүүдө"</item> - <item quantity="other" msgid="5523506463832158203">"%d экран Көз жүгүртүүдө"</item> - </plurals> - <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Эскертмелер жок"</string> - <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Учурдагы"</string> - <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Эскертмелер"</string> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d экран Көз жүгүртүүдө</item> + <item quantity="one">1 экран Көз жүгүртүүдө</item> + </plurals> + <!-- no translation found for status_bar_no_notifications_title (4755261167193833213) --> + <skip /> + <!-- no translation found for status_bar_ongoing_events_title (1682504513316879202) --> + <skip /> + <!-- no translation found for status_bar_latest_events_title (6594767438577593172) --> + <skip /> <string name="battery_low_title" msgid="6456385927409742437">"Батареянын кубаты аз"</string> <string name="battery_low_percent_format" msgid="2900940511201380775">"<xliff:g id="PERCENTAGE">%s</xliff:g> калды"</string> <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> калды. Батареянын кубатын үнөмдөгүч күйүк."</string> - <string name="invalid_charger" msgid="4549105996740522523">"USB менен кубаттоо колдоого алынбайт.\nБерилген заряддагычты гана колдонуңуз."</string> + <!-- no translation found for invalid_charger (4549105996740522523) --> + <skip /> <string name="invalid_charger_title" msgid="3515740382572798460">"USB аркылуу кубаттоого болбойт."</string> <string name="invalid_charger_text" msgid="5474997287953892710">"Коштолгон кубаттагычты гана колдонуңуз."</string> <string name="battery_low_why" msgid="4553600287639198111">"Жөндөөлөр"</string> <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Батареянын кубатын үнөмдөгүч күйгүзүлсүнбү?"</string> <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Күйгүзүү"</string> <string name="battery_saver_start_action" msgid="5576697451677486320">"Батареянын кубатын үнөмдөгүчтү иштетүү"</string> - <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Жөндөөлөр"</string> - <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi‑Fi"</string> - <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Экранды авто-тегеретүү"</string> - <string name="status_bar_settings_mute_label" msgid="554682549917429396">"ҮНСҮЗ"</string> - <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"АВТО"</string> - <string name="status_bar_settings_notifications" msgid="397146176280905137">"Эскертмелер"</string> - <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth жалгашты"</string> + <!-- no translation found for status_bar_settings_settings_button (3023889916699270224) --> + <skip /> + <!-- no translation found for status_bar_settings_wifi_button (1733928151698311923) --> + <skip /> + <!-- no translation found for status_bar_settings_auto_rotation (3790482541357798421) --> + <skip /> + <!-- no translation found for status_bar_settings_mute_label (554682549917429396) --> + <skip /> + <!-- no translation found for status_bar_settings_auto_brightness_label (511453614962324674) --> + <skip /> + <!-- no translation found for status_bar_settings_notifications (397146176280905137) --> + <skip /> + <!-- no translation found for bluetooth_tethered (7094101612161133267) --> + <skip /> <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Киргизүү ыкмасын тууралоо"</string> <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Аппараттык тергич"</string> <string name="usb_device_permission_prompt" msgid="834698001271562057">"<xliff:g id="APPLICATION">%1$s</xliff:g> колдонмосуна USB түзмөккө жеткенге уруксат берилсинби?"</string> <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"<xliff:g id="APPLICATION">%1$s</xliff:g> колдонмосуна USB аксессуарына жеткенге уруксат берилсинби?"</string> - <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"USB түзмөк туташканда <xliff:g id="ACTIVITY">%1$s</xliff:g> ачылсынбы?"</string> - <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"USB шайманы туташканда <xliff:g id="ACTIVITY">%1$s</xliff:g> ачылсынбы?"</string> + <!-- no translation found for usb_device_confirm_prompt (5161205258635253206) --> + <skip /> + <!-- no translation found for usb_accessory_confirm_prompt (3808984931830229888) --> + <skip /> <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"Эч бир орнотулган колдонмо USB аксессуар м-н иштебейт. Кенен маалыматтар: <xliff:g id="URL">%1$s</xliff:g>"</string> - <string name="title_usb_accessory" msgid="4966265263465181372">"USB шайманы"</string> - <string name="label_view" msgid="6304565553218192990">"Карап көрүү"</string> - <string name="always_use_device" msgid="1450287437017315906">"USB түзмөгү үчүн демейки боюнча колдонулсун"</string> - <string name="always_use_accessory" msgid="1210954576979621596">"Бул USB шайманы үчүн демейки боюнча колдонулсун"</string> + <!-- no translation found for title_usb_accessory (4966265263465181372) --> + <skip /> + <!-- no translation found for label_view (6304565553218192990) --> + <skip /> + <!-- no translation found for always_use_device (1450287437017315906) --> + <skip /> + <!-- no translation found for always_use_accessory (1210954576979621596) --> + <skip /> <string name="usb_debugging_title" msgid="4513918393387141949">"USB аркылуу жөндөөгө уруксат берилсинби?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Компүтердин RSA ачкычынын контролдук суммасы:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Бул компүтерден дайыма уруксат берилсин"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB мүчүлүштүктөрүн оңдоого уруксат жок"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Учурда ушул түзмөккө кирген колдонуучу USB мүчүлүштүктөрүн оңдоо функциясын күйгүзө албайт. Бул функцияны урунуу үчүн, негизги колдонуучунун каттоо эсебине которулуңуз “<xliff:g id="NAME">%s</xliff:g>”."</string> - <string name="compat_mode_on" msgid="6623839244840638213">"Экрнд тлтр ү. чен өлч өзг"</string> - <string name="compat_mode_off" msgid="4434467572461327898">"Экранды толтуруу ү-н чоюу"</string> + <!-- no translation found for compat_mode_on (6623839244840638213) --> + <skip /> + <!-- no translation found for compat_mode_off (4434467572461327898) --> + <skip /> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Скриншот сакталууда…"</string> <string name="screenshot_saving_title" msgid="8242282144535555697">"Скриншот сакталууда..."</string> <string name="screenshot_saving_text" msgid="2419718443411738818">"Скриншот сакталууда."</string> @@ -74,9 +93,12 @@ <string name="screenshot_saved_text" msgid="1152839647677558815">"Тийип, скриншотту көрүңүз."</string> <string name="screenshot_failed_title" msgid="705781116746922771">"Скриншот кылынбай жатат."</string> <string name="screenshot_failed_text" msgid="1260203058661337274">"Сактагыч орду чектелүү болгондуктан скриншот тарта албайт, же буга колдонмо же ишканаңыз тарабынан уруксат жок."</string> - <string name="usb_preference_title" msgid="6551050377388882787">"USB менен файл өткөрүү мүмкүнчүлүктөрү"</string> - <string name="use_mtp_button_title" msgid="4333504413563023626">"Медиа ойноткуч катары кошуу (MTP)"</string> - <string name="use_ptp_button_title" msgid="7517127540301625751">"Камера катары кошуу (PTP)"</string> + <!-- no translation found for usb_preference_title (6551050377388882787) --> + <skip /> + <!-- no translation found for use_mtp_button_title (4333504413563023626) --> + <skip /> + <!-- no translation found for use_ptp_button_title (7517127540301625751) --> + <skip /> <string name="installer_cd_button_title" msgid="2312667578562201583">"MacOS үчүн Android File Transfer колдонмосун орнотуу"</string> <string name="accessibility_back" msgid="567011538994429120">"Артка"</string> <string name="accessibility_home" msgid="8217216074895377641">"Үйгө"</string> @@ -85,16 +107,13 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Издөө"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Үн жардамчысы"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Кулпусун ачуу"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Кулпуну ачуу баскычы, манжа изи күтүлүүдө"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Манжа изиңизди колдонбостон эле кулпуну ачыңыз"</string> <string name="unlock_label" msgid="8779712358041029439">"кулпуну ачуу"</string> <string name="phone_label" msgid="2320074140205331708">"телефонду ачуу"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"үн жардамчысысын ачуу"</string> <string name="camera_label" msgid="7261107956054836961">"камераны ачуу"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Жаңы тапшырманын планын тандаңыз"</string> - <string name="cancel" msgid="6442560571259935130">"Жокко чыгаруу"</string> + <!-- no translation found for cancel (6442560571259935130) --> + <skip /> <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Масштабды сыйыштыруу баскычы."</string> <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Кичинекейди чоң экранга масштабдоо."</string> <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth байланышта"</string> @@ -114,6 +133,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Мобилдик интернеттин сигналы эки таякча."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Мобилдик интернеттин сигналы үч таякча."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Мобилдик интернеттин сигналы толук."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi өчүк."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi туташуусу жок."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi бир таякча."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi эки таякча."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi үч таякча."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi сигналы толук."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> менен туташкан."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> менен туташкан."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX туташуусу жок."</string> @@ -121,8 +146,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX эки таякча."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX үч таякча."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX сигналы толук."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet ажырады."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet туташты."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Сигнал жок."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Туташуу жок."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Таякча жок."</string> @@ -148,7 +171,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM карта жок."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth аркылуу интернет бөлүшүү."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Учак тартиби."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM-карта жок"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Оператор тармагы өзгөртүлүүдө."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Батарея <xliff:g id="NUMBER">%d</xliff:g> пайыз."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Система тууралоолору."</string> @@ -165,14 +187,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> жок болду."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Акыркы колдонмолордун баары көз жаздымда калтырылды."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> иштеп баштоодо."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Эскертме жок кылынды."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Эскертмелер көшөгөсү."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Тез тууралоолор."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Кулпуланган экран."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Жөндөөлөр"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Көз жүгүртүү."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Жабуу"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Ырастоо"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Колдонуучу <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi өчүрүлдү."</string> @@ -184,7 +205,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Учак режими өчүрүлдү."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Учак режими күйгүзүлдү."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Тынчымды алба деген күйүк, артыкчылыктуулар гана."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Тынчымды албагыла, жымжырт болсун."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Тынчымды алба деген күйүк, үзгүлтүккө учуратуулар жок."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Тынчымды алба деген күйүк, ойготкучтар гана."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Тынчымды алба деген өчүк."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Тынчымды алба деген өчүрүлдү."</string> @@ -239,7 +260,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Тынчымды алба"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Артыкчылык гана"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Ойготкучтар гана"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Тымтырс"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Үзгүлтүксүз"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> түзмөк)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth өчүк"</string> @@ -264,7 +285,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Байланыш жок"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Желе жок"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi өчүк"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Бир дагы жеткиликтүү Wi-Fi тармагы жок"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Сакталган тармактар жок"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Тышкы экранга чыгаруу"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Тышкы экранга чыгарылууда"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Аты жок түзмөк"</string> @@ -306,28 +327,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Издөө"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн жогору жылмыштырыңыз."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> үчүн солго жылмыштырыңыз."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Көрсөтүлгөн эскертүүлөрдөн, эскерткичтерден, окуялардан жана чалуучулардан тышкары башка үндөр жана дирилдөөлөр тынчыңызды албайт."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Үзгүлтүктөр жок. Ойготкучтар дагы жок."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Ойготкучтар, эстеткичтер, окуялар жана сиз көрсөткөн чалуучулардан башка үндөр менен титирөөлөр тынчыңызды албайт."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Ыңгайлаштыруу"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Ушуну менен эскертүүлөрдүн, музыканын, видеолордун жана оюндардын үндөрү жана дирилдөөлөрү сыяктуу нерселердин баары өчүрүлөт. Бирок телефон чала бересиз."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Ушуну менен эскертүүлөрдүн, музыканын, видеолордун жана оюндардын үндөрү жана дирилдөөлөрү сыяктуу нерселердин БААРЫ өчүрүлөт."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Үзгүлтүксүз"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Артыкчылыктуу үзгүлтүктөр гана"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Ойготкучтар гана"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Кийинки үн ишараты саат <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Кийинки үн ишараты <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Саат <xliff:g id="ALARM_TIME">%s</xliff:g> үн ишаратын укпайсыз."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Анчейин шашылыш эмес эскертмелер төмөндө"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Ачуу үчүн кайра тийиңиз"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Кулпуну ачуу үчүн серпип коюңуз"</string> - <string name="phone_hint" msgid="4872890986869209950">"Сүрөтчөнү серпип телефонго өтүңүз"</string> - <string name="voice_hint" msgid="8939888732119726665">"Сүрөтчөнү серпип үн жардамчысына өтүңүз"</string> - <string name="camera_hint" msgid="7939688436797157483">"Сүрөтчөнү серпип камерага өтүңүз"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Толук жымжырттык талап кылынат. Бул экрандагыны окугучтарды да тынчтандырат."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Тымтырс"</string> + <string name="phone_hint" msgid="3101468054914424646">"Телефонду колдонуу үчүн оңго серпип коюңуз"</string> + <string name="camera_hint" msgid="5241441720959174226">"Камераны ачуу үчүн солго серпип коюңуз"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Үзгүлтүксүз"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Артыкчылык гана"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Ойготкучтар гана"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Тым-\nтырс"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Бардыгы"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Үзгүтүк\nжок"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Артыкчылыктуу\nгана"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Ойготкучтар\nгана"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Кубатталууда (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> толгонго чейин)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Колдонуучуну которуу"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Колдонуучуну күйгүзүү, учурдагы колдонуучу <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Учурдагы колдонуучу <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Профилди көрсөтүү"</string> <string name="user_add_user" msgid="5110251524486079492">"Колдонуучу кошуу"</string> <string name="user_new_user_name" msgid="426540612051178753">"Жаңы колдонуучу"</string> @@ -342,7 +366,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Кайра баштоо"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ооба, уланта берели"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Конок колдонуучу"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Клднмлр ж-а дйндрды жок кылуу ү-н, конок колднчсн алып салңз"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Колдонмолор жана дайындарды жок кылуу үчүн конокту алып сал"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"КОНОКТУ АЛЫП САЛУУ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Жаңы колдонуучу кошосузбу?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Жаңы колдонуучу кошулганда, ал өз мейкиндигин түзүп алышы керек.\n\nКолдонмолорду бир колдонуучу жаңыртканда, ал калган бардык колдонуучулар үчүн да жаңырат."</string> @@ -364,15 +388,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN\'ди өчүрүү"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN\'ди ажыратуу"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Түзмөгүңүздү <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат.\n\nАдминистраторуңуз жөндөөлөрдү, корпоративдик мүмкүнчүлүктү, колдонмолорду, түзмөгүңүзгө байланыштуу дайындарды жана түзмөгүңүздүн жайгашкан жери тууралуу маалыматты көзөмөлдөп жана башкара алат. Көбүрөөк маалымат үчүн, администраторуңузга кайрылыңыз."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Колдонмого VPN туташуусун орнотууга уруксат бердиңиз.\n\nБул колдонмо түзмөгүңүздү жана электрондук почталар, колдонмолор жана вебсайттар сыяктуу тармактагы аракеттериңизди көзөмөлдөй алат."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Жумуш профилиңизди <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат.\n\nАдминистраторуңуздун тармактагы аракетиңизди, анын ичинде электрондук почталар, колдонмолор жана коопсуз вебсайттарды, көзөмөлдөө мүмкүнчүлүгү бар.\n\nКөбүрөөк маалымат үчүн, администраторуңузга кайрылыңыз."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Түзмөгүңүздү төмөнкү башкарат:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nЖумуш профилиңизди төмөнкү башкарат:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистраторуңуз түзмөгүңүз жана тармактагы аракетиңизди, анын ичинде электрондук почталар, колдонмолор жана коопсуз вебсайттарды, көзөмөлдөй алат.\n\nКөбүрөөк маалымат үчүн, администраторуңузга кайрылыңыз."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Колдонмого VPN туташуу орнотуусуна уруксат бердиңиз.\n\nБул колдонмо түзмөгүңүздү жана тармактагы аракетиңизди, анын ичинде электрондук почталар, колдонмолор жана коопсуз вебсайттарды көзөмөлдөй алат."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Түзмөгүңүздү <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат.\n\nАдминистраторуңуз жөндөөлөрдү, корпоративдик мүмкүнчүлүктү, колдонмолорду, түзмөгүңүзгө байланыштуу дайындарды жана түзмөгүңүздүн жайгашкан жери тууралуу маалыматты көзөмөлдөп жана башкара алат.\n\nСиз тармактагы жеке аракетиңизди көзөмөлдөй турган VPN\'ге туташкансыз.\n\nКөбүрөөк маалымат үчүн, администраторуңузга кайрылыңыз."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Жумуш профилиңизди <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат.\n\nАдминистраторуңуз электрондук почталар, колдонмолор жана вебсайттар сыяктуу тармактагы аракеттериңизди тескей алат.\n\nКөбүрөөк маалымат алуу үчүн, администраторуңузга кайрылыңыз.\n\nМындан тышкары, тармактагы аракеттериңизди тескей турган VPN\'ге да туташып турасыз."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Электрондук почта, колдонмолор жана вебсайттар сыяктуу тармактык аракеттерди көзөмөлдөй турган <xliff:g id="APPLICATION">%1$s</xliff:g> колдонмосуна туташып турасыз."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Электрондук почта, колдонмолор жана вебсайттар сыяктуу тармактагы жеке аракеттериңизди көзөмөлдөй турган <xliff:g id="APPLICATION">%1$s</xliff:g> колдонмосуна туташып турасыз."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Жумуш профилиңизди <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат. Ал электрондук почта, колдонмолор жана вебсайттар сыяктуу жумуш тармагыңыздагы аракеттерди көзөмөлдөй турган <xliff:g id="APPLICATION">%2$s</xliff:g> менен туташкан.\n\nКөбүрөөк маалымат алуу үчүн администраторуңузга кайрылыңыз."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Жумуш профилиңизди <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат. Ал электрондук почта, колдонмолор жана вебсайттар сыяктуу жумуш тармагыңыздагы аракеттерди көзөмөлдөй турган <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> менен туташкан.\n\nМындан тышкары, тармактагы жеке аракеттериңизди көзөмөлдөгөн <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> колдонмосуна туташып турасыз."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Түзмөгүңүздү <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат.\nАдминистраторуңуз түзмөгүңүздөгү жөндөөлөрдү, корпоративдик мүмкүнчүлүктү, колдонмолорду, дайындарды, ошону менен катар жайгашкан жер дайындарын башкарып, тийиштүү маалыматты карай алат.\n\nСиз электрондук почталар, колдонмолор жана вебсайттар сыяктуу тармактагы аракеттериңизди тармактагы аракетиңизди тескей турган APPLICATION колдонмосуна туташып турасыз.\n<xliff:g id="APPLICATION">%2$s</xliff:g>Көбүрөөк маалымат алуу үчүн, администраторуңузга кайрылыңыз.\n\n"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Жумуш профилиңизди <xliff:g id="ORGANIZATION">%1$s</xliff:g> башкарат.\n\nАдминистраторуңуздун тармактагы аракетиңизди, анын ичинде электрондук почталар, колдонмолор жана коопсуз вебсайттарды, көзөмөлдөө мүмкүнчүлүгү бар.\n\nКөбүрөөк маалымат үчүн, администраторуңузга кайрылыңыз.\n\nСиз тармактагы жеке аракетиңизди көзөмөлдөй турган VPN\'ге да туташкансыз."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Түзмөгүңүздү <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> башкарат.\nЖумуш профилиңизди төмөнкү башкарат:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистраторуңуздун тармактагы аракетиңизди, анын ичинде электрондук почталар, колдонмолор жана коопсуз вебсайттарды, көзөмөлдөө мүмкүнчүлүгү бар.\n\nКөбүрөөк маалымат үчүн, администраторуңузга кайрылыңыз.\n\nСиз тармактагы жеке аракетиңизди көзөмөлдөй турган VPN\'ге да туташкансыз"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Түзмөктүн кулпусу кол менен ачылмайынча кулпуланган бойдон алат"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Эскертмелерди тезирээк алуу"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Аларды кулпудан чыгараардан мурун көрүңүз"</string> @@ -381,9 +402,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Бардыгын көрүү"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Баарын жашыруу"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Азыр бүтүрүү"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Жайып көрсөтүү"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Жыйнап коюу"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Экран кадалган"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Бул бошотулмайынча көрүнө берет. Бошотуу үчүн, бир убакта Артка жана Карап чыгууну коё бербей басып туруңуз."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Бул бошотулмайынча көрүнө берет. Бошотуу үчүн, Карап чыгууну коё бербей басып туруңуз."</string> @@ -397,33 +415,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Жок"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> үндү катуулатуу диалогу"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Түпнусканы калыбына келтирүү үчүн тийип коюңуз."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Жумуш профилиңизди колдонуп жатасыз"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Батарянын кубатнын деңгээли пайыз менен көрсөтлсүн"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Түзмөк кубаттанбай турганда, батареянын деңгээли статус тилкесинде көрүнүп турат"</string> - <string name="quick_settings" msgid="10042998191725428">"Ыкчам жөндөөлөр"</string> - <string name="status_bar" msgid="4877645476959324760">"Абал тилкеси"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демо режими"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Демо режимин иштетүү"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Демо режимин көрсөтүү"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Ойготкуч"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Жумуш профили"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Учак режими"</string> - <string name="add_tile" msgid="2995389510240786221">"Тайл кошуу"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Тайлды жайылтуу"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Бул нерсе өчүрүлмөйүнчө <xliff:g id="WHEN">%1$s</xliff:g> боло турган кийинки эскертмени укпайсыз"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g> боло турган кийинки эскертмени укпайсыз"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> болгондо"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> болгондо"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Ыкчам жөндөөлөр, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Туташуу чекити"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Жумуш профили"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Баарына эле жага бербейт"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner Android колдонуучу интерфейсин жөнгө салып жана ыңгайлаштыруунун кошумча ыкмаларын сунуштайт. Бул сынамык функциялар кийинки чыгарылыштарда өзгөрүлүп, бузулуп же жоголуп кетиши мүмкүн. Абайлап колдонуңуз."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Бул сынамык функциялар кийинки чыгарылыштарда өзгөрүлүп, бузулуп же жоголуп кетиши мүмкүн. Абайлап колдонуңуз."</string> - <string name="got_it" msgid="2239653834387972602">"Түшүндүм"</string> - <string name="tuner_toast" msgid="603429811084428439">"Куттуктайбыз! Жөндөөлөргө System UI Tuner кошулду"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Жөндөөлөрдөн алып салуу"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"System UI Tuner Жөндөөлөрдөн алынып салынып, анын бардык функциялары токтотулсунбу?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Сиз Жумуш профилиндесиз"</string> </resources> diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml index cc6ed604c1ee..91684fc106de 100644 --- a/packages/SystemUI/res/values-lo-rLA/strings.xml +++ b/packages/SystemUI/res/values-lo-rLA/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ຂໍ້ມູນແອັບຯ"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Your recent screens appear here"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ປິດແອັບຯຫຼ້າສຸດທີ່ໃຊ້"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ໜ້າຈໍຢູ່ໃນພາບຮວມ"</item> - <item quantity="other" msgid="5523506463832158203">"%d ໜ້າຈໍຢູ່ໃນພາບຮວມ"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d ໜ້າຈໍຢູ່ໃນພາບລວມ</item> + <item quantity="one">1 ໜ້າຈໍຢູ່ໃນພາບລວມ</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ບໍ່ມີການແຈ້ງເຕືອນ"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"ດຳເນີນຢູ່"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"ການແຈ້ງເຕືອນ"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"ອະນຸຍາດການດີບັ໊ກຜ່ານ USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ລາຍນິ້ມື RSA ຂອງຄອມພິວເຕີແມ່ນ:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ອະນຸຍາດຈາກຄອມພິວເຕີນີ້ຕະຫຼອດ"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"ບໍ່ອະນຸຍາດໃຫ້ມີການແກ້ໄຂບັນຫາ USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ປະຈຸບັນຜູ້ໃຊ້ລົງຊື່ເຂົ້າອຸປະກອນນີ້ບໍ່ສາມາດເປີດການແກ້ໄຂບັນຫາ USB ໄດ້. ເພື່ອໃຊ້ຄຸນສົມບັດນີ້ນີ້, ຍ້າຍໄປຫາຜູ້ໃຊ້ຕົ້ນຕໍ “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"ຊູມໃຫ້ເຕັມໜ້າຈໍ"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ປັບໃຫ້ເຕັມໜ້າຈໍ"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ກຳລັງບັນທຶກຮູບໜ້າຈໍ"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ຊອກຫາ"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ກ້ອງ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ໂທລະສັບ"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ຊ່ວຍເຫຼືອທາງສຽງ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ປົດລັອກ"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"ປົດລັອກປຸ່ມ, ກຳລັງລໍຖ້າລາຍນີ້ວມື"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ປົດລັອກໂດຍບໍ່ມີການໃຊ້ລາຍນີ້ວມືຂອງທ່ານ"</string> <string name="unlock_label" msgid="8779712358041029439">"ປົດລັອກ"</string> <string name="phone_label" msgid="2320074140205331708">"ເປີດແປ້ນໂທລະສັບ"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ຊ່ວເຫຼືອເປີດສຽງ"</string> <string name="camera_label" msgid="7261107956054836961">"ເປີດກ້ອງ"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"ເລືອກແຜນຜັງໜ້າວຽກໃໝ່"</string> <string name="cancel" msgid="6442560571259935130">"ຍົກເລີກ"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ຂໍ້ມູນສອງຂີດ."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ຂໍ້ມູນສາມຂີດ."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ສັນຍານຂໍ້ມູນເຕັມ."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"WiFi ປິດຢູ່."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"ຕັດການເຊື່ອມຕໍ່ Wi-Fi ແລ້ວ."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"ສັນຍານ Wi-Fi ນຶ່ງຂີດ."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"ສັນຍານ Wi-Fi ສອງຂີດ."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi ສາມຂີດ."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"ສັນຍານ Wi-Fi ເຕັມ"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"ເຊື່ອມຕໍ່ຫາ <xliff:g id="WIFI">%s</xliff:g> ແລ້ວ."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"ເຊື່ອມຕໍ່ຫາ <xliff:g id="BLUETOOTH">%s</xliff:g> ແລ້ວ."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ບໍ່ມີ WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX ສອງຂີດ."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX ສາມຂີດ."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"ສັນຍານ WiMAX ເຕັມ."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ອີເທີເນັດຕັດເຊື່ອມຕໍ່ແລ້ວ."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ອີເທີເນັດເຊື່ອມຕໍ່ແລ້ວ."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"ບໍ່ມີສັນຍານ."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"ບໍ່ໄດ້ເຊື່ອມຕໍ່."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"ບໍ່ມີຈັກຂີດ."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"ບໍ່ມີຊິມ."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ການປ່ອຍສັນຍານ Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"ໂໝດໃນຍົນ."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"ບໍ່ມີແຜ່ນ SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"ການປ່ຽນແປງເຄືອຂ່າຍບໍລິສັດເຄືອຂ່າຍມືຖື."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ແບັດເຕີຣີ <xliff:g id="NUMBER">%d</xliff:g> ເປີເຊັນ."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"ການຕັ້ງຄ່າລະບົບ."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"ປິດ <xliff:g id="APP">%s</xliff:g> ແລ້ວ."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"ທຸກແອັບພລິເຄຊັນບໍ່ດົນມານີ້ຖືກປ່ອຍໄປ."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"ກຳລັງເປີດ <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ປິດການແຈ້ງເຕືອນແລ້ວ."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"ໜ້າຈໍແຈ້ງເຕືອນ."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ການຕັ້ງຄ່າດ່ວນ."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ລັອກໜ້າຈໍ."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ການຕັ້ງຄ່າ"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ພາບຮວມ."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"ປິດ"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"ຢືນຢັນ"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ຜູ່ໃຊ້ <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ປິດ Wi-Fi ແລ້ວ."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"ປິດໂໝດຢູ່ໃນຍົນແລ້ວ."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ເປີດໂໝດຢູ່ໃນຍົນແລ້ວ."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ຫ້າມລະກວນເປີດຢູ່, ບຸລິມະສິດເທົ່ານັ້ນ."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"ຫ້າມລົບກວນເປີດຢູ່, ຄວາມງຽບທັງໝົດ."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ຫ້າມລະກວນເປີດຢູ່, ບໍ່ມີການຂັດຈັງຫວະ."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"ຫ້າມລົບກວນເປີດຢູ່, ໂມງປຸກເທົ່ານັ້ນ."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ຫ້າມລົບກວນປິດຢູ່."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ຢ່າລົບກວນປິດແລ້ວ."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ຫ້າມລົບກວນ"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ບຸລິມະສິດເທົ່ານັ້ນ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ໂມງປຸກເທົ່ານັ້ນ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"ຄວາມງຽບທັງໝົດ"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ບໍ່ມີການລົບກວນ"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> ອຸປະກອນ)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth ປິດ"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"ບໍ່ໄດ້ເຊື່ອມຕໍ່"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ບໍ່ມີເຄືອຂ່າຍ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ປິດ"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ບໍ່ມີເຄືອຂ່າຍ Wi-Fi ຢູ່"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"ບໍ່ມີເຄືອຂ່າຍທີ່ບັນທຶກໄວ້ທີ່ສາມາດໃຊ້ໄດ້"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"ຄາສທ໌"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"ກຳລັງສົ່ງສັນຍານ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"ອຸປະກອນບໍ່ມີຊື່"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ຊອກຫາ"</string> <string name="description_direction_up" msgid="7169032478259485180">"ເລື່ອນຂຶ້ນເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"ເລື່ອນໄປທາງຊ້າຍເພື່ອ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"ທ່ານຈະບໍ່ຖືກລົບກວນຈາກສຽງ ແລະການສັ່ນ, ຍົກເວັ້ນຈາກໂມງປຸກ, ການເຕືອນ, ເຫດການ, ແລະຜູ້ໂທທີ່ທ່ານລະບຸ."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ບໍ່ມີການລົບກວນ. ບໍ່ວ່າຈະເປັນໂມງປຸກກໍຕາມ."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"ທ່ານຈະບໍ່ຖືກລົບກວນຈາກສຽງ ແລະການສັ່ນ, ຍົກເວັ້ນຈາກໂມງປຸກ, ການເຕືອນ, ເຫດການ, ແລະຜູ້ໂທທີ່ທ່ານລະບຸ."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"ປັບແຕ່ງ"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ອັນນີ້ບລັອກທຸກສຽງ ແລະການສັ່ນ, ລວມທັງຈາກໂມງປຸກ, ເພງ, ວິດີໂອ, ແລະເກມ. ທ່ານຍັງຈະສາມາດໂທລະສັບໄດ້."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"ອັນນີ້ບລັອກທຸກສຽງ ແລະການສັ່ນ, ລວມທັງຈາກໂມງປຸກ, ເພງ, ວິດີໂອ, ແລະເກມ."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"ບໍ່ມີການລົບກວນ"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"ສະເພາະເລື່ອງສຳຄັນເທົ່ານັນ"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ໂມງປຸກເທົ່ານັ້ນ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"ໂມງປຸກຖັດໄປຂອງທ່ານແມ່ນ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ໂມງປຸກຖັດໄປຂອງທ່ານແມ່ນ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"ທ່ານຈະບໍ່ໄດ້ຍິນສຽງໂມງປຸກໃນເວລາ <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"ການແຈ້ງເຕືອນທີ່ສຳຄັນໜ້ອຍກວ່າຢູ່ດ້ານລຸ່ມ"</string> <string name="notification_tap_again" msgid="8524949573675922138">"ແຕະອີກເທື່ອນຶ່ງເພື່ອເປີດ"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"ເລື່ອນຂຶ້ນເພື່ອປົດລັອກ"</string> - <string name="phone_hint" msgid="4872890986869209950">"ປັດຈາກໄອຄອນສຳລັບໂທລະສັບ"</string> - <string name="voice_hint" msgid="8939888732119726665">"ປັດຈາກໄອຄອນສຳລັບການຊ່ວຍທາງສຽງ"</string> - <string name="camera_hint" msgid="7939688436797157483">"ປັດຈາກໄອຄອນສຳລັບກ້ອງຖ່າຍຮູບ"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"ງຽບທັງໝົດ. ນີ້ຈະຍັງປິດສຽງເຄື່ອງອ່ານໜ້າຈໍນໍາອີກ."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"ຄວາມງຽບທັງໝົດ"</string> + <string name="phone_hint" msgid="3101468054914424646">"ປັດຂວາເພື່ອໃຊ້ໂທລະສັບ"</string> + <string name="camera_hint" msgid="5241441720959174226">"ປັດຊ້າຍເພື່ອໃຊ້ກ້ອງ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ບໍ່ມີການລົບກວນ"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ບຸລິມະສິດເທົ່ານັ້ນ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"ໂມງປຸກເທົ່ານັ້ນ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"ຄວາມງຽບ\nທັງໝົດ"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"ທັງໝົດ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ບໍ່ມີ\nລົບກວນ"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ບຸລິມະສິດ\nເທົ່ານັ້ນ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ໂມງປຸກ\nເທົ່ານັ້ນ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ກຳລັງສາກໄຟ (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ກວ່າຈະເຕັມ)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ສະລັບຜູ່ໃຊ້"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ປ່ຽນຜູ່ໃຊ້, ຜູ່ໃຊ້ປະຈຸບັນ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"ຜູ້ໃຊ້ປະຈຸບັນ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"ສະແດງໂປຣໄຟລ໌"</string> <string name="user_add_user" msgid="5110251524486079492">"ເພີ່ມຜູ່ໃຊ້"</string> <string name="user_new_user_name" msgid="426540612051178753">"ຜູ່ໃຊ້ໃໝ່"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"ເລີ່ມຕົ້ນໃຫມ່"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ຕົກລົງ, ດຳເນີນການຕໍ່"</string> <string name="guest_notification_title" msgid="1585278533840603063">"ຜູ້ໃຊ້ແຂກ"</string> - <string name="guest_notification_text" msgid="335747957734796689">"ເພື່ອລຶບແອັບ ແລະຂໍ້ມູນ, ໃຫ້ເອົາຜູ້ໃຊ້ທີ່ເປັນແຂກອອກ"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"ເອົາແຂກອອກ ເພື່ອລຶບແອັບ ແລະຂໍ້ມູນ"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ເອົາແຂກອອກ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"ເພີ່ມຜູ່ໃຊ້ໃໝ່ບໍ?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"ເມື່ອທ່ານເພີ່ມຜູ່ໃຊ້ໃໝ່, ຜູ່ໃຊ້ນັ້ນຈະຕ້ອງຕັ້ງຄ່າພື້ນທີ່ບ່ອນຈັດເກັບຂໍ້ມູນຂອງລາວ.\n\nຜູ່ໃຊ້ທຸກຄົນສາມາດອັບເດດແອັບຯຂອງຜູ່ໃຊ້ຄົນອື່ນທັງໝົດໄດ້."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"ປິດການໃຊ້ VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"ຕັດການເຊື່ອມຕໍ່ VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"ອຸປະກອນຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g> . \n\n ຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກວດກາ ແລະການຄຸ້ມຄອງການຕັ້ງຄ່າ, ແອັບການເຂົ້າຫາບໍລິສັດ, ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບອຸປະກອນຂອງທ່ານ, ແລະຂໍ້ມູນທີ່ຕັ້ງຂອງອຸປະກອນຂອງທ່ານ. ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"ທ່ານໄດ້ອະນຸຍາດໃຫ້ແອັບຕັ້ງການເຊື່ອມຕໍ່ VPN.\n\nແອັບນີ້ສາມາດຕິດຕາມການເຄື່ອນໄຫວຂອງອຸປະກອນ ແລະເຄືອຂ່າຍຂອງທ່ານ ເຊິ່ງລວມທັງອີເມວ, ແອັບ ແລະເວັບໄຊທ໌."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"ໂປຣໄຟລ໌ວຽກຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານໄດ້ ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌ທີ່ປອດໄພ.\n\nສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"ອຸປະກອນຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ: \n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g> . \n ໂປຣໄຟລ໌ຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ: \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g> . \n\n ຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກວດກາອຸປະກອນ ແລະກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານ, ລວມທັງແອັບອີເມວ ແລະເວັບໄຊທ໌ທີ່ປອດໄພ. \n\n ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"ທ່ານໃຫ້ສິດອະນຸຍາດກັບແອັບເພື່ອຕັ້ງຄ່າການເຊື່ອມຕໍ່ VPN.\n\nແອັບນີ້ສາມາດຕິດຕາມອຸປະກອນ ແລະກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານໄດ້ ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌ທີ່ປອດໄພ"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"ອຸປະກອນຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກວດກາ ແລະການຄຸ້ມຄອງການຕັ້ງຄ່າ, ແອັບການເຂົ້າຫາບໍລິສັດ, ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບອຸປະກອນຂອງທ່ານ, ແລະຂໍ້ມູນທີ່ຕັ້ງຂອງອຸປະກອນຂອງທ່ານ.\n\nທ່ານຍັງເຊື່ອມຕໍ່ກັບ VPN, ເຊິ່ງສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານ, ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌.\n\nສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"ໂປຣໄຟລ໌ວຽກຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍຂອງທ່ານໄດ້ ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌.\n\nສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ.\n\nທ່ານຍັງເຊື່ອມຕໍ່ກັບ VPN, ເຊິ່ງສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານ."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"ທ່ານເຊື່ອມຕໍ່ກັບ <xliff:g id="APPLICATION">%1$s</xliff:g>, ເຊິ່ງສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍຂອງທ່ານ ລວມທັງອີເມວ, ແອັບ ແລະເວັບໄຊທ໌."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"ທ່ານເຊື່ອມຕໍ່ກັບ <xliff:g id="APPLICATION">%1$s</xliff:g>, ເຊິ່ງສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍສ່ວນຕົວຂອງທ່ານ ລວມທັງອີເມວ, ແອັບ ແລະເວັບໄຊທ໌."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານຖືກຄວບຄຸມໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>. ມັນຖືກເຊື່ອມຕໍ່ກັບ <xliff:g id="APPLICATION">%2$s</xliff:g>, ເຊິ່ງສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍບ່ອນເຮັດວຽກຂອງທ່ານ ລວມທັງອີເມວ, ແອັບ ແລະເວັບໄຊທ໌.\n\nສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ໃຫ້ຕິດຕໍ່ຜູ້ບໍລິຫານຂອງທ່ານ."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານຖືກຈັດການໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>. ມັນເຊື່ອມຕໍ່ກັບ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, ເຊິ່ງສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍບ່ອນເຮັດວຽກຂອງທ່ານ ລວມທັງອີເມວ, ແອັບ ແລະເວັບໄຊທ໌.\n\nທ່ານເຊື່ອມຕໍ່ກັບ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, ເຊິ່ງສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍສ່ວນຕົວຂອງທ່ານ."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"ອຸປະກອນຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກວດກາ ແລະການຄຸ້ມຄອງການຕັ້ງຄ່າ, ແອັບການເຂົ້າຫາບໍລິສັດ, ຂໍ້ມູນທີ່ກ່ຽວຂ້ອງກັບອຸປະກອນຂອງທ່ານ, ແລະຂໍ້ມູນທີ່ຕັ້ງຂອງອຸປະກອນຂອງທ່ານ.\n\nທ່ານເຊື່ອມຕໍ່ກັບ <xliff:g id="APPLICATION">%2$s</xliff:g> ແລ້ວ, ເຊິ່ງສາມາດຕິດຕາມການເຄື່ອນໄຫວເຄືອຂ່າຍຂອງທ່ານ, ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌.\n\nສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"ໂປຣໄຟລ໌ວຽກຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານໄດ້ ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌ທີ່ປອດໄພ.\n\nສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ.\n\nທ່ານຍັງເຊື່ອມຕໍ່ກັບ VPN, ເຊິ່ງສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານ."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"ອຸປະກອນຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nໂປຣໄຟລ໌ວຽກຂອງທ່ານຖືກຄຸ້ມຄອງໂດຍ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\nຜູ້ຄວບຄຸມຂອງທ່ານສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍຂອງທ່ານໄດ້ ລວມທັງອີເມວ, ແອັບ, ແລະເວັບໄຊທ໌ທີ່ປອດໄພ\n.\n\nສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕິດຕໍ່ຜູ້ຄວບຄຸມຂອງທ່ານ.\n\nທ່ານຍັງເຊື່ອມຕໍ່ກັບ VPN, ເຊິ່ງສາມາດຕິດຕາມກິດຈະກຳເຄືອຂ່າຍສ່ວນຕົວຂອງທ່ານ"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Device will stay locked until you manually unlock"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"ຮັບເອົາການແຈ້ງເຕືອນໄວຂຶ້ນ"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ເບິ່ງພວກມັນກ່ອນທ່ານຈະປົດລັອກ"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"ເບິ່ງທັງໝົດ"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"ເຊື່ອງທັງຫມົດ"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ຢຸດດຽວນີ້"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"ຂະຫຍາຍ"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ຫຍໍ້ລົງ"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ປັກໝຸດໜ້າຈໍແລ້ວ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ມັນຈະຮັກສາໜ້າຈໍໄວ້ໃນມຸມມອງຂອງທ່ານຈົນກວ່າທ່ານຈະຖອດໝຸດ. ແຕະປຸ່ມ ກັບຄືນ ແລະ ພາບຮວມ ຄ້າງໄວ້ພ້ອມກັນເພື່ອຖອດໝຸດ."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"ມັນຈະຮັກສາໜ້າຈໍໄວ້ໃນມຸມມອງຂອງທ່ານຈົນກວ່າທ່ານຈະຖອດໝຸດ. ແຕະປຸ່ມ ພາບຮວມ ຄ້າງໄວ້ເພື່ອຖອດໝຸດ."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ປະຕິເສດ"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ແມ່ນໜ້າຕ່າງລະດັບສຽງ"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ສໍາຜັດເພື່ອກູ້ຄືນຕົ້ນສະບັບ."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ທ່ານກຳລັງໃຊ້ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກຂອງທ່ານ"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"ສະແດງເປີເຊັນແບັດເຕີຣີທີ່ຕິດມາ"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ສະແດງເປີເຊັນລະດັບແບັດເຕີຣີຢູ່ດ້ານໃນໄອຄອນແຖບສະຖານະ ເມື່ອບໍ່ສາກຢູ່"</string> - <string name="quick_settings" msgid="10042998191725428">"ການຕັ້ງຄ່າດ່ວນ"</string> - <string name="status_bar" msgid="4877645476959324760">"ແຖບສະຖານະ"</string> - <string name="demo_mode" msgid="2389163018533514619">"ໂໝດສາທິດ"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"ເປີດໃຊ້ໂໝດສາທິດ"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ສະແດງໂຫມດສາທິດ"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ອີເທເນັດ"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"ໂມງປຸກ"</string> - <string name="status_bar_work" msgid="6022553324802866373">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"ໂໝດເຮືອບິນ"</string> - <string name="add_tile" msgid="2995389510240786221">"ເພີ່ມລາຍຕາກະໂລ່"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ເຜີຍແຜ່ລາຍຕາກະໂລ່"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"ທ່ານຈະບໍ່ໄດ້ຍິນສຽງໂມງປຸກເທື່ອຕໍ່ໄປຂອງທ່ານ <xliff:g id="WHEN">%1$s</xliff:g> ນອກຈາກວ່າທ່ານປິດອັນນີ້ກ່ອນ"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"ທ່ານຈະບໍ່ໄດ້ຍິນສຽງໂມງປ <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"ເວລາ <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"ວັນ <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"ການຕັ້ງຄ່າດ່ວນ, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ຮັອດສະປອດ"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"ໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"ມ່ວນຊື່ນສຳລັບບາງຄົນ ແຕ່ບໍ່ແມ່ນສຳລັບທຸກຄົນ"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner ໃຫ້ທ່ານມີວິທີພິເສດຕື່ມອີກໃນການປັບປ່ຽນ ແລະຕົບແຕ່ງສ່ວນຕໍ່ປະສານຜູ້ໃຊ້ຂອງ Android. ຄຸນສົມບັດທົດລອງໃຊ້ເຫຼົ່ານີ້ອາດຈະປ່ຽນແປງ, ຢຸດເຊົາ ຫຼືຫາຍໄປໃນການວາງຈຳໜ່າຍໃນອະນາຄົດ. ຈົ່ງດຳເນີນຕໍ່ດ້ວຍຄວາມລະມັດລະວັງ."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ຄຸນສົມບັດທົດລອງໃຊ້ງານເຫຼົ່ານີ້ອາດຈະປ່ຽນແປງ, ຢຸດເຊົາ ຫຼືຫາຍໄປໃນການອອກຈຳໜ່າຍໃນອະນາຄົດ. ຈົ່ງສືບຕໍ່ດ້ວຍຄວາມລະມັດລະວັງ."</string> - <string name="got_it" msgid="2239653834387972602">"ໄດ້ແລ້ວ"</string> - <string name="tuner_toast" msgid="603429811084428439">"ຍິນດີດ້ວຍ! System UI Tuner ໄດ້ຖືກເພີ່ມໃສ່ການຕັ້ງຄ່າແລ້ວ"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"ເອົາອອກຈາກການຕັ້ງຄ່າ"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ເອົາ System UI Tuner ອອກຈາກການຕັ້ງຄ່າ ແລະຢຸດການໃຊ້ທຸກຄຸນສົມບັດໃຊ້ງານຂອງມັນ?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"ທ່ານຢູ່ໃນໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string> </resources> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 40a6ed280a04..fdde3b516fd8 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Programos informacija"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Čia rodomi naujausi ekranai"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Atsisakyti naujausių programų"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Ekranų apžvalga: 1"</item> - <item quantity="other" msgid="5523506463832158203">"Ekranų apžvalga: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d ekrano apžvalga</item> + <item quantity="few">%d ekranų apžvalga</item> + <item quantity="many">%d ekrano apžvalga</item> + <item quantity="other">%d ekranų apžvalga</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nėra įspėjimų"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Vykstantys"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Pranešimai"</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Leisti USB derinimą?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Šio kompiuterio RSA rakto kontrolinis kodas yra:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Visada leisti iš šio kompiuterio"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB derinimas neleidžiamas"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Šiuo metu prie įrenginio prisijungęs naudotojas negali įjungti USB derinimo. Kad galėtumėte naudoti šią funkciją, perjunkite į pagrindinį naudotoją <xliff:g id="NAME">%s</xliff:g>."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Keisti mast., kad atit. ekr."</string> <string name="compat_mode_off" msgid="4434467572461327898">"Ištempti, kad atit. ekr."</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Išsaugoma ekrano kopija..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Ieškoti"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparatas"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonas"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Atrakinti"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Atrakinimo mygtukas, laukiama kontrolinio kodo"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Atrakinti nenaudojant kontrolinio kodo"</string> <string name="unlock_label" msgid="8779712358041029439">"atrakinti"</string> <string name="phone_label" msgid="2320074140205331708">"atidaryti telefoną"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"atidaryti „Voice Assist“"</string> <string name="camera_label" msgid="7261107956054836961">"atidaryti fotoaparatą"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Pasirinkti naują užduoties išdėstymą"</string> <string name="cancel" msgid="6442560571259935130">"Atšaukti"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dvi duomenų juostos."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Trys duomenų juostos."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Stiprus duomenų signalas."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"„Wi-Fi“ išjungta."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"„Wi-Fi“ atjungta."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Viena „Wi-Fi“ juosta."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Dvi „Wi-Fi“ juostos."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Trys „Wi-Fi“ juostos."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Stiprus „Wi-Fi“ signalas."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Prisijungta prie „<xliff:g id="WIFI">%s</xliff:g>“."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Prisijungta prie „<xliff:g id="BLUETOOTH">%s</xliff:g>“."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Nėra „WiMAX“ signalo."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dvi „WiMAX“ signalo juostos."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Trys „WiMAX“ signalo juostos."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"„WiMAX“ signalas stiprus."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Atsijungta nuo eterneto."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Prijungta prie eterneto."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Nėra signalo."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Neprijungta."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nė vienos juostos."</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nėra SIM kortelės."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"„Bluetooth“ įrenginio kaip modemo naudojimas."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Lėktuvo režimas."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Nėra SIM kortelės."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Keičiamas operatoriaus tinklas."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Akumuliatorius: <xliff:g id="NUMBER">%d</xliff:g> proc."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Sistemos nustatymai"</string> @@ -165,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Atsisakyta programos „<xliff:g id="APP">%s</xliff:g>“."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Atsisakyta visų naujausių programų."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Paleidžiama <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"„<xliff:g id="APP">%1$s</xliff:g>“ <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Pranešimo atsisakyta."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Pranešimų gaubtas."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Spartieji nustatymai."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Užrakinimo ekranas."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nustatymai"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Apžvalga."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Uždaryti"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Patvirtinti"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Naudotojas <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"„Wi-Fi“ ryšys išjungtas."</string> @@ -184,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Lėktuvo režimas išjungtas."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lėktuvo režimas įjungtas."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Funkcija „Netrukdyti“ įjungta. Tik prioritetiniai įvykiai."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Įjungta funkcija „Netrukdyti“, visiška tyla."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Funkcija „Netrukdyti“ įjungta. Jokių pertraukčių."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Funkcija „Netrukdyti“ įjungta. Leidžiami tik signalai."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Funkcija „Netrukdyti“ išjungta."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Funkcija „Netrukdyti“ išjungta."</string> @@ -239,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Netrukdyti"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Tik prioritetiniai įvykiai"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Tik signalai"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Visiška tyla"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Jokių pertraukčių"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"„Bluetooth“ (<xliff:g id="NUMBER">%d</xliff:g> įreng.)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"„Bluetooth“ išjungta"</string> @@ -264,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Neprisijungta"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tinklo nėra"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"„Wi-Fi“ išjungta"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nėra jokių pasiekiamų „Wi-Fi“ tinklų"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nėra pasiekiamų išsaugotų tinklų"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Perdavimas"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Perduodama"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Įrenginys be pavadinimo"</string> @@ -306,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Paieška"</string> <string name="description_direction_up" msgid="7169032478259485180">"Slyskite aukštyn link <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Slyskite į kairę link <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Jūsų netrikdys garsai ir vibravimas, išskyrus nurodytų signalų, priminimų, įvykių ir skambintojų garsus ir vibravimą."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Nėra trikdžių. Nėra net įspėjimų."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Jūsų netrikdys garsai ir vibravimas, išskyrus nurodytų signalų, priminimų, įvykių ir skambintojų garsus."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Tinkinti"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Taip bus užblokuoti VISI garsai ir vibravimas, įskaitant signalų, muzikos, vaizdo įrašų ir žaidimų garsus ir vibravimą. Vis tiek galėsite skambinti telefonu."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Taip bus užblokuoti VISI garsai ir vibravimas, įskaitant signalų, muzikos, vaizdo įrašų ir žaidimų garsus ir vibravimą."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Jokių pertraukčių"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Tik prioritetinės pertrauktys"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Tik signalai"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Kito signalo laikas: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Kito signalo laikas: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> signalo negirdėsite"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Mažiau skubūs pranešimai toliau"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Palieskite dar kartą, kad atidarytumėte"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Perbraukite aukštyn, kad atrakintumėte"</string> - <string name="phone_hint" msgid="4872890986869209950">"Perbraukite iš telefono piktogramos"</string> - <string name="voice_hint" msgid="8939888732119726665">"Perbraukite iš „Voice Assist“ piktogramos"</string> - <string name="camera_hint" msgid="7939688436797157483">"Perbraukite iš fotoaparato piktogramos"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Visiška tyla. Taip pat bus nutildyti ekrano skaitytuvai."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Visiška tyla"</string> + <string name="phone_hint" msgid="3101468054914424646">"Perbraukite į dešinę, kad galėtumėte skambinti"</string> + <string name="camera_hint" msgid="5241441720959174226">"Perbraukite į kairę, kad būtų įjungtas fotoaparatas"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Jokių pertraukčių"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Tik prioritetiniai"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Tik signalai"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Visiška\ntyla"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Visi"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Neleidžiama\ntrukdyti"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Tik\nprioritetiniai"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Tik\nsignalai"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Kraunama (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> iki visiško įkrovimo)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Perjungti naudotoją"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Perjungti naudotoją, dabartinis naudotojas <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Dabartinis naudotojas <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Rodyti profilį"</string> <string name="user_add_user" msgid="5110251524486079492">"Naudotojo pridėjimas"</string> <string name="user_new_user_name" msgid="426540612051178753">"Naujas naudotojas"</string> @@ -342,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Pradėti iš naujo"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Taip, tęsti"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Naudotojas svečias"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Kad būtų ištr. programos ir duom., pašal. naudotoją svečią"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Pašalinkite svečią, kad ištrintumėte programas ir duomenis"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"PAŠALINTI SVEČIĄ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Pridėti naują naudotoją?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Kai pridedate naują naudotoją, šis asmuo turi nustatyti savo erdvę.\n\nBet kuris naudotojas gali atnaujinti visų kitų naudotojų programas."</string> @@ -364,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Išjungti VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Atjungti VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Jūsų įrenginį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“.\n\nAdministratorius gali stebėti ir tvarkyti nustatymus, įmonės informacijos pasiekiamumo nustatymus, programas, su įrenginiu susietus duomenis ir įrenginio vietovės informaciją. Daugiau informacijos galite gauti susisiekę su administratoriumi."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Suteikėte programai leidimą nustatyti VPN ryšį.\n\nŠi programa gali stebėti įrenginio ir tinklo veiklą, įskaitant el. laiškus, programas ir svetaines."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Jūsų darbo profilį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“.\n\nAdministratorius gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Jūsų įrenginį tvarko:\n„<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>“.\nJūsų darbo profilį tvarko:\n„<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>“.\n\nAdministratorius gali stebėti įrenginio ir tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Suteikėte programai leidimą užmegzti VPN ryšį.\n\nŠi programa gali stebėti įrenginio ir tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Jūsų įrenginį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“.\n\nAdministratorius gali stebėti ir tvarkyti nustatymus, įmonės informacijos pasiekiamumo nustatymus, programas, su įrenginiu susietus duomenis ir įrenginio vietos informaciją.\n\nEsate prisijungę prie VPN, kuris gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Jūsų darbo profilį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“.\n\nAdministratorius gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi.\n\nBe to, esate prisijungę prie VPN, kuris gali stebėti tinklo veiklą."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Esate prisijungę prie programos „<xliff:g id="APPLICATION">%1$s</xliff:g>“, kuri gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir svetaines."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Esate prisijungę prie programos „<xliff:g id="APPLICATION">%1$s</xliff:g>“, kuri gali stebėti asmeninio profilio tinklo veiklą, įskaitant el. laiškus, programas ir svetaines."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Darbo profilį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“. Jis susietas su programa „<xliff:g id="APPLICATION">%2$s</xliff:g>“, kuri gali stebėti darbo profilio tinklo veiklą, įskaitant el. laiškus, programas ir svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Darbo profilį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“. Jis susietas su programa „<xliff:g id="APPLICATION_WORK">%2$s</xliff:g>“, kuri gali stebėti darbo profilio tinklo veiklą, įskaitant el. laiškus, programas ir svetaines.\n\nTaip pat esate prisijungę prie programos „<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>“, kuri gali stebėti asmeninio profilio tinklo veiklą."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Jūsų įrenginį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“.\n\nAdministratorius gali stebėti ir tvarkyti nustatymus, įmonės informacijos pasiekiamumo nustatymus, programas, su įrenginiu susietus duomenis ir įrenginio vietovės informaciją.\n\nEsate prisijungę prie programos „<xliff:g id="APPLICATION">%2$s</xliff:g>“, kuri gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Jūsų darbo profilį tvarko „<xliff:g id="ORGANIZATION">%1$s</xliff:g>“.\n\nAdministratorius gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi.\n\nBe to, esate prisijungę prie VPN, kuris gali stebėti tinklo veiklą."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Jūsų įrenginį tvarko „<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>“.\nJūsų darbo profilį tvarko:\n„<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>“.\n\nAdministratorius gali stebėti tinklo veiklą, įskaitant el. laiškus, programas ir saugias svetaines.\n\nDaugiau informacijos galite gauti susisiekę su administratoriumi.\n\nBe to, esate prisijungę prie VPN, kuris gali stebėti asmeninę tinklo veiklą"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Įrenginys liks užrakintas, kol neatrakinsite jo neautomatiniu būdu"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Greičiau gaukite pranešimus"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Peržiūrėti prieš atrakinant"</string> @@ -381,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Žr. viską"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Slėpti viską"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Baigti dabar"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Išskleisti"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Sutraukti"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekranas prisegtas"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Tai bus rodoma, kol atsegsite. Kad atsegtumėte, tuo pačiu metu palieskite ir laikykite „Atgal“ ir „Apžvalga“."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Tai bus rodoma, kol atsegsite. Kad atsegtumėte, palieskite ir laikykite „Apžvalga“."</string> @@ -397,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Atmesti"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"„<xliff:g id="APP_NAME">%1$s</xliff:g>“ yra garsumo valdymo dialogo langas"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Palieskite, kad atkurtumėte originalą."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Naudojate darbo profilį"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sistemos naudotojo sąsajos derinimo priemonė"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Rodyti įterptą akumuliat. įkrovos procentinę vertę"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Rodyti akumuliatoriaus įkrovos lygio procentinę vertę būsenos juostos piktogramoje, kai įrenginys nėra įkraunamas"</string> - <string name="quick_settings" msgid="10042998191725428">"Spartieji nustatymai"</string> - <string name="status_bar" msgid="4877645476959324760">"Būsenos juosta"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demonstracinis režimas"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Įgalinti demonstracinį režimą"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Rodyti demonstraciniu režimu"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Eternetas"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Signalas"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Darbo profilis"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Lėktuvo režimas"</string> - <string name="add_tile" msgid="2995389510240786221">"Pridėti išklotinės elementą"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Perduoti išklotinės elementą"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Negirdėsite kito signalo <xliff:g id="WHEN">%1$s</xliff:g>, nebent iki to laiko išjungsite šį režimą"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Negirdėsite kito signalo <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Spartieji nustatymai, „<xliff:g id="TITLE">%s</xliff:g>“."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Viešosios interneto prieigos taškas"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Darbo profilis"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Smagu, bet ne visada"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Sistemos naudotojo sąsajos derinimo priemonė suteikia papildomų galimybių pagerinti ir tinkinti „Android“ naudotojo sąsają. Šios eksperimentinės funkcijos gali pasikeisti, nutrūkti ar išnykti iš būsimų laidų. Tęskite atsargiai."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Šios eksperimentinės funkcijos gali pasikeisti, nutrūkti ar išnykti iš būsimų laidų. Tęskite atsargiai."</string> - <string name="got_it" msgid="2239653834387972602">"Supratau"</string> - <string name="tuner_toast" msgid="603429811084428439">"Sveikiname! Sistemos naudotojo sąsajos derinimo priemonė pridėta prie nustatymų"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Pašalinti iš nustatymų"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Ar norite pašalinti sistemos naudotojo sąsajos derinimo priemonę iš nustatymų ir nebenaudoti jokių jos funkcijų?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Naudojate „Work“ profilį"</string> </resources> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 8f9b91c0c514..297dadcde46e 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -25,10 +25,11 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Lietotnes informācija"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Jūsu pēdējie ekrāni tiek rādīti šeit."</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Nerādīt nesen izmantotās lietotnes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ekrāns sadaļā “Pārskats”"</item> - <item quantity="other" msgid="5523506463832158203">"%d ekrāni sadaļā “Pārskats”"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="zero">%d ekrānu sadaļā Kopsavilkums</item> + <item quantity="one">%d ekrāns sadaļā Kopsavilkums</item> + <item quantity="other">%d ekrāni sadaļā Kopsavilkums</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nav paziņojumu"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Notiekošs"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Paziņojumi"</string> @@ -63,8 +64,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Vai atļaut USB atkļūdošanu?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Datora RSA atslēgas ciparfails: \n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Vienmēr atļaut no šī datora"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB atkļūdošana nav atļauta"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Lietotājs, kurš pašlaik ir pierakstījies šajā ierīcē, nevar iespējot USB atkļūdošanu. Lai izmantotu šo funkciju, pārslēdzieties uz galveno lietotāju “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Tālumm., lai aizp. ekr."</string> <string name="compat_mode_off" msgid="4434467572461327898">"Stiepiet, lai aizp. ekr."</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Saglabā ekrānuzņēmumu…"</string> @@ -85,13 +84,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Meklēt"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Tālruņa numurs"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Balss palīgs"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Atbloķēt"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Atbloķēšanas poga; tiek gaidīts pirksta nospiedums"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Atbloķēt, neizmantojot pirksta nospiedumu"</string> <string name="unlock_label" msgid="8779712358041029439">"atbloķēt"</string> <string name="phone_label" msgid="2320074140205331708">"atvērt tālruni"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"atvērt balss palīgu"</string> <string name="camera_label" msgid="7261107956054836961">"atvērt kameru"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Atlasiet jaunu uzdevumu izkārtojumu"</string> <string name="cancel" msgid="6442560571259935130">"Atcelt"</string> @@ -114,6 +109,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dati: divas joslas."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Dati: trīs joslas."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Pilna piekļuve datu signālam."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi izslēgts"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi savienojums ir pārtraukts."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi: viena josla"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi: divas joslas"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi: trīs joslas"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Pilna piekļuve Wi-Fi signālam"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Ir izveidots savienojums ar <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Ir izveidots savienojum ar <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Bez WiMAX."</string> @@ -121,8 +122,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX divas joslas."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX trīs joslas."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX signāls pilns."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Pārtraukts savienojums ar tīklu Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Izveidots savienojums ar tīklu Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Nav signāla."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Savienojums nav izveidots."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nulle joslu"</string> @@ -148,7 +147,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Nav SIM kartes."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth piesaiste."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Lidmašīnas režīms."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Nav SIM kartes."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Mobilo sakaru operatora tīkla mainīšana."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Akumulators: <xliff:g id="NUMBER">%d</xliff:g> procenti"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Sistēmas iestatījumi"</string> @@ -165,14 +163,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Lietotne <xliff:g id="APP">%s</xliff:g> vairs netiek rādīta."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Visas nesen izmantotās lietojumprogrammas tika noņemtas."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Notiek lietotnes <xliff:g id="APP">%s</xliff:g> palaišana."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Paziņojums netiek rādīts."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Paziņojumu panelis"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Ātrie iestatījumi"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Bloķēšanas ekrāns."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Iestatījumi"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Pārskats."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Aizvērt"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Apstiprināt"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Lietotājs: <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi ir izslēgts."</string> @@ -184,7 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Lidojuma režīms ir izslēgts."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Lidojuma režīms ir ieslēgts."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Statuss Netraucēt ir ieslēgts, izvēlēts iestatījums Tikai prioritārie."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Ieslēgts režīms “Netraucēt”, pilnīgs klusums."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Statuss Netraucēt ir ieslēgts, izvēlēts iestatījums Bez pārtraukumiem."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Ieslēgts režīms “Netraucēt”, atļauti tikai signāli."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Statuss Netraucēt ir izslēgts."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Statuss Netraucēt tika izslēgts."</string> @@ -239,7 +236,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Netraucēt"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Tikai prioritārie"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Tikai signāli"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Pilnīgs klusums"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Bez pārtraukumiem"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> ierīce(-es))"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth savienojums ir izslēgts."</string> @@ -264,7 +261,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nav izveidots savienojums"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nav tīkla"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ir izslēgts"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nav pieejams neviens Wi-Fi tīkls."</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nav pieejams neviens saglabātais tīkls."</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Apraide"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Notiek apraide…"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nenosaukta ierīce"</string> @@ -306,28 +303,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Meklēt"</string> <string name="description_direction_up" msgid="7169032478259485180">"Velciet uz augšu, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Velciet pa kreisi, lai veiktu šādu darbību: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Jūs netraucēs skaņas un vibrosignāli, ja vien tie nebūs modinātāji, atgādinājumi, pasākumi vai konkrēti zvanītāji, kurus būsiet norādījis."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Bez traucējumiem. Pat bez brīdinājumiem"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Jūs netraucēs skaņas un vibrosignāli, ja vien tie nebūs modinātāji, atgādinājumi, pasākumi vai konkrēti zvanītāji, kurus būsiet norādījis."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Pielāgot"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Tiks bloķētas VISAS skaņas un vibrosignāli, tostarp modinātāja, mūzikas, videoklipu un spēļu skaņas un signāli. Jūs joprojām varēsiet veikt tālruņa zvanus."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Tiks bloķētas VISAS skaņas un vibrosignāli, tostarp modinātāja, mūzikas, videoklipu un spēļu skaņas un signāli."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Nepārtraukt"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Tikai prioritārie pārtraukumi"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Tikai signāli"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Jūsu nākamā signāla laiks: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Jūsu nākamā signāla datums un laiks: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Jūs nedzirdēsiet iestatīto signālu: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Mazāk steidzami paziņojumi tiek rādīti tālāk"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Pieskarieties vēlreiz, lai atvērtu."</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Velciet uz augšu, lai atbloķētu"</string> - <string name="phone_hint" msgid="4872890986869209950">"Lai lietotu tālruni, velciet no ikonas"</string> - <string name="voice_hint" msgid="8939888732119726665">"Lai lietotu balss palīgu, velciet no ikonas"</string> - <string name="camera_hint" msgid="7939688436797157483">"Lai lietotu kameru, velciet no ikonas"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Pilnīgs klusums. Tiks izslēgta arī ekrāna lasītāju skaņa."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Pilnīgs klusums"</string> + <string name="phone_hint" msgid="3101468054914424646">"Lai lietotu tālruni, velciet pa labi."</string> + <string name="camera_hint" msgid="5241441720959174226">"Lai lietotu kameru, velciet pa kreisi."</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Bez pārtraukumiem"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Tikai prioritārie"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Tikai signāli"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Pilnīgs\nklusums"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Visi"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Nepārtraukt\n"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Tikai\nprioritārie"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Tikai\nsignāli"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Notiek uzlāde (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> līdz pilnīgai uzlādei)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Mainīt lietotāju"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Pārslēgt lietotāju; pašreizējais lietotājs: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Pašreizējais lietotājs: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Parādīt profilu"</string> <string name="user_add_user" msgid="5110251524486079492">"Lietotāja pievienošana"</string> <string name="user_new_user_name" msgid="426540612051178753">"Jauns lietotājs"</string> @@ -342,7 +342,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Sākt no sākuma"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Jā, turpināt"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Vieslietotājs"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Lai dzēstu lietotnes un datus, noņemiet vieslietotāju."</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Lai dzēstu lietotnes un datus, noņemiet viesi."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"NOŅEMT VIESI"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Vai pievienot jaunu lietotāju?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Kad pievienosiet jaunu lietotāju, viņam būs jāizveido savs profils.\n\nIkviens lietotājs var atjaunināt lietotnes citu lietotāju vietā."</string> @@ -364,15 +364,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Atspējot VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Atvienot VPN tīklu"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Jūsu ierīci pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJūsu administrators var pārraudzīt un pārvaldīt iestatījumus, korporatīvo piekļuvi, lietotnes un datus, kas ir saistīti ar šo ierīci, kā arī informāciju par jūsu ierīces atrašanās vietu. Lai iegūtu plašāku informāciju, sazinieties ar administratoru."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Jūs piešķīrāt lietotnei atļauju izveidot savienojumu ar VPN tīklu.\n\nŠī lietotne var pārraudzīt jūsu ierīcē un tīklā veiktās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Jūsu darba profilu pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJūsu administrators var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Jūsu ierīci pārvalda:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nJūsu darba profilu pārvalda:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nJūsu administrators var pārraudzīt jūsu ierīcē un tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Jūs piešķīrāt lietotnei atļauju izveidot savienojumu ar VPN tīklu.\n\nŠī lietotne var pārraudzīt jūsu ierīcē un tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Jūsu ierīci pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJūsu administrators var pārraudzīt un pārvaldīt iestatījumus, korporatīvo piekļuvi, lietotnes un datus, kas ir saistīti ar šo ierīci, kā arī informāciju par jūsu ierīces atrašanās vietu.\n\nIerīcē ir izveidots savienojums ar VPN tīklu, kurā var tikt pārraudzītas jūsu tīklā veiktās darbības, tostarp e-pasts, lietotnes un vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Jūsu darba profilu pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJūsu administrators var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru.\n\nIerīcē ir arī izveidots savienojums ar VPN tīklu, kurā var tikt pārraudzītas jūsu tīklā veiktās darbības."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Ir izveidots savienojums ar lietotni <xliff:g id="APPLICATION">%1$s</xliff:g>, kura var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Ir izveidots savienojums ar lietotni <xliff:g id="APPLICATION">%1$s</xliff:g>, kura var pārraudzīt jūsu tīklā veiktās privātās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Jūsu darba profilu pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Tas ir saistīts ar lietojumprogrammu <xliff:g id="APPLICATION">%2$s</xliff:g>, kura var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Jūsu darba profilu pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Tas ir saistīts ar lietojumprogrammu <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, kura var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes.\n\nIr piesaistīta arī lietojumprogramma <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, kas var pārraudzīt jūsu tīklā veiktās privātās darbības."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Jūsu ierīci pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJūsu administrators var pārraudzīt un pārvaldīt iestatījumus, korporatīvo piekļuvi, lietotnes un datus, kas ir saistīti ar šo ierīci, kā arī informāciju par jūsu ierīces atrašanās vietu.\n\nIr piesaistīta lietojumprogramma <xliff:g id="APPLICATION">%2$s</xliff:g>, kas var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pasta ziņojumus, lietotnes un vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Jūsu darba profilu pārvalda <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJūsu administrators var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru.\n\nIerīcē ir arī izveidots savienojums ar VPN tīklu, kurā var tikt pārraudzītas jūsu tīklā veiktās darbības."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Jūsu ierīci pārvalda <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nJūsu darba profilu pārvalda:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nJūsu administrators var pārraudzīt jūsu tīklā veiktās darbības, tostarp e-pastu, lietotnes un drošās vietnes.\n\nLai iegūtu plašāku informāciju, sazinieties ar administratoru.\n\nIerīcē ir arī izveidots savienojums ar VPN tīklu, kurā var tikt pārraudzītas jūsu tīklā veiktās darbības."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Ierīce būs bloķēta, līdz to manuāli atbloķēsiet."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Saņemiet paziņojumus ātrāk"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Skatiet tos pirms atbloķēšanas."</string> @@ -381,9 +378,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Skatīt visus"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Slēpt visus"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Izslēgt"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Izvērst"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Sakļaut"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekrāns ir piesprausts"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Šādi tas būs redzams līdz brīdim, kad to atspraudīsiet. Lai atspraustu, vienlaikus pieskarieties vienumiem “Atpakaļ” un “Pārskats” un turiet tos nospiestus."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Šādi tas būs redzams līdz brīdim, kad to atspraudīsiet. Lai atspraustu, pieskarieties vienumam “Pārskats” un turiet to nospiestu."</string> @@ -397,33 +391,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Neatļaut"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ir skaļuma dialoglodziņš"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Pieskarieties, lai atjaunotu sākotnējo."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Jūs izmantojat darba profilu."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sistēmas saskarnes regulators"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Rādīt akumulatora uzlādes līmeni procentos"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Rādīt akumulatora uzlādes līmeni procentos statusa joslas ikonā, kad netiek veikta uzlāde"</string> - <string name="quick_settings" msgid="10042998191725428">"Ātrie iestatījumi"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusa josla"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demonstrācijas režīms"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Iespējot demonstrācijas režīmu"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Rādīt demonstrācijas režīmu"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Tīkls Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Signāls"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Darba profils"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Lidojuma režīms"</string> - <string name="add_tile" msgid="2995389510240786221">"Pievienot elementu"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Apraides elements"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Nākamais signāls (<xliff:g id="WHEN">%1$s</xliff:g>) netiks atskaņots, ja līdz tam laikam neizslēgsiet šo iestatījumu."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Nākamais signāls (<xliff:g id="WHEN">%1$s</xliff:g>) netiks atskaņots."</string> - <string name="alarm_template" msgid="3980063409350522735">"plkst. <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Ātrie iestatījumi: <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Tīklājs"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Darba profils"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Jautri dažiem, bet ne visiem"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Sistēmas saskarnes regulators sniedz papildu veidus, kā mainīt un pielāgot Android lietotāja saskarni. Nākamajās versijās šīs eksperimentālās funkcijas var tikt mainītas, bojātas vai to darbība var tikt pārtraukta. Turpinot esiet uzmanīgs."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Nākamajās versijās šīs eksperimentālās funkcijas var tikt mainītas, bojātas vai to darbība var tikt pārtraukta. Turpinot esiet uzmanīgs."</string> - <string name="got_it" msgid="2239653834387972602">"Labi"</string> - <string name="tuner_toast" msgid="603429811084428439">"Apsveicam! Sistēmas saskarnes regulators ir pievienots iestatījumiem."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Noņemt no iestatījumiem"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Vai noņemt sistēmas saskarnes regulatoru no iestatījumiem un pārtraukt izmantot visas tā funkcijas?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Jūs esat pierakstījies darba profilā."</string> </resources> diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml index edeff1be1187..e151729f0b13 100644 --- a/packages/SystemUI/res/values-mk-rMK/strings.xml +++ b/packages/SystemUI/res/values-mk-rMK/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Информации за апликацијата"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Вашите неодамнешни екрани се појавуваат тука"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Отфрли ги скорешните апликации"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 екран во Краток преглед"</item> - <item quantity="other" msgid="5523506463832158203">"%d екрани во Краток преглед"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d екран во Краток преглед</item> + <item quantity="other">%d екрани во Краток преглед</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Нема известувања"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Во тек"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Известувања"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Овозможи отстранување грешки на УСБ?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Клучниот отпечаток на RSA на компјутерот е:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Секогаш дозволувај од овој компјутер"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Отстранувањето грешки на УСБ не е дозволено"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Корисникот што моментално е најавен на уредов не може да вклучи отстранување грешки на УСБ . За да ја користите оваа карактеристика, префрлете се на примарниот корисник „<xliff:g id="NAME">%s</xliff:g>“."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Зумирај да се исполни екранот"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Растегни да се исполни екранот"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Сликата на екранот се зачувува..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Пребарај"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Фотоапарат"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Гласовна помош"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Отклучување"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Копче за отклучување, се чека отпечаток"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Отклучете без да го користите вашиот отпечаток"</string> <string name="unlock_label" msgid="8779712358041029439">"отклучи"</string> <string name="phone_label" msgid="2320074140205331708">"отвори телефон"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"отвори гласовна помош"</string> <string name="camera_label" msgid="7261107956054836961">"отвори камера"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Изберете нов распоред на задача"</string> <string name="cancel" msgid="6442560571259935130">"Откажи"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Сигналот за податоци е на две цртички."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Податоци три цртички."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Сигналот за податоци е исполнет."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"WiFi е исклучено."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"WiFi е исклучено."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WiFi една цртичка."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WiFi две цртички."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi три цртички."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Полн сигнал на WiFi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Поврзано со <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Поврзано со <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Нема WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX две цртички."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX три цртички."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Полн сигнал на WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Етернетот е исклучен."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Етернетот е поврзан."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Нема сигнал."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Не е поврзана"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Нула цртички."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Нема СИМ картичка."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Се поврзува со Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Режим на работа во авион."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Нема СИМ-картичка"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Променување на мрежата на операторот."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> е отфрлена."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Сите неодамнешни апликации се отфрлени."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Се стартува <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Известувањето е отфрлено."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Панел за известување"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Брзи подесувања."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заклучи екран."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Поставки"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Краток преглед."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Затвори"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Потврди"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Корисник <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi е исклученo."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Авионскиот режим е исклучен."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Авионскиот режим е вклучен."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"„Не вознемирувај“ е вклучено, само приоритетни."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"„Не вознемирувај“ е вклучено, целосна тишина."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"„Не вознемирувај“ е вклучено, без прекини."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"„Не вознемирувај“ е вклучено, само аларми."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"„Не вознемирувај“ е исклучено."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"„Не вознемирувај“ е исклучено."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не вознемирувај"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Само приоритетно"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Само аларми"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Целосна тишина"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без прекини"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> уреди)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth е исклучен"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Не е поврзано"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мрежа"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi е исклучено"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Нема достапни Wi-Fi мрежи"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Нема достапни зачувани мрежи"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Емитувај"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Емитување"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Неименуван уред"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Пребарај"</string> <string name="description_direction_up" msgid="7169032478259485180">"Лизгај нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Лизгај налево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Нема да ви пречат звуци и вибрации, освен од аларми, потсетници, настани и повикувачи што ќе ги наведете."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без прекини. Дури и без аларми."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Нема да ви пречат звуци и вибрации, освен од аларми, потсетници, настани и повикувачи што ќе ги наведете."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Приспособи"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Ова ги блокира СИТЕ звуци и вибрации, вклучувајќи ги и оние од алармите, музиката, видеата и игрите. Сѐ уште ќе може да воспоставувате телефонски повици."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Ова ги блокира СИТЕ звуци и вибрации, вклучувајќи ги и оние од алармите, музиката, видеата и игрите."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекини"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекини"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Само аларми"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следниот аларм е во <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следниот аларм е <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Нема да го слушнете алармот во <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Долу се помалку итни известувања"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Допрете повторно за да отворите"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Повлечете за да се отклучи"</string> - <string name="phone_hint" msgid="4872890986869209950">"Повлечете од иконата за телефонот"</string> - <string name="voice_hint" msgid="8939888732119726665">"Повлечете од иконата за гласовна помош"</string> - <string name="camera_hint" msgid="7939688436797157483">"Повлечете од иконата за камерата"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Целосна тишина. Ова ќе ги замолчи и читачите на екран."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Целосна тишина"</string> + <string name="phone_hint" msgid="3101468054914424646">"Повлечете надесно за телефон"</string> + <string name="camera_hint" msgid="5241441720959174226">"Повлечете налево за камера"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Без прекини"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Само приоритетно"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Само аларми"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Целосна\nтишина"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Сѐ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Нема\nпрекини"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Само\nприоритетни"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Само\nаларми"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Се полни (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> додека не се наполни)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Промени го корисникот"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Промени го корисникот, тековен корисник <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Тековен корисник <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Прикажи го профилот"</string> <string name="user_add_user" msgid="5110251524486079492">"Додај корисник"</string> <string name="user_new_user_name" msgid="426540612051178753">"Нов корисник"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Почни одново"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, продолжи"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Корисник-гостин"</string> - <string name="guest_notification_text" msgid="335747957734796689">"За да избришете апликации и податоци, отстранете го гостинот"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Отстрани гостин за да се избришат апликации и податоци"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ОТСТРАНИ ГОСТИН"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Да се додаде нов корисник?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Кога додавате нов корисник, тоа лице треба да го постави својот простор.\n\nСекој корисник може да ажурира апликации за сите други корисници."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Оневозможи ВПН"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Исклучи ВПН"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Со вашиот уред управува <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nВашиот администратор може да ги следи и да управува со поставките, корпоративните пристапи, апликациите, податоците поврзани со вашиот уред и информациите за локација на уредот. За повеќе информации, контактирајте со администраторот."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Дозволивте апликацијата да постави поврзување преку ВПН.\n\nАпликацијата може да го следи уредот и активноста на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Со вашиот уред управува <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nВашиот администратор е во можност да ја следи вашата мрежна активност, вклучувајќи е-пошта, апликации и безбедни веб-локации.\n\nЗа повеќе информации, контактирајте со администраторот."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Со вашиот уред управува:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nСо вашиот работен профил управува:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nВашиот администратор може да ги следи вашиот уред и мрежната активност, вклучувајќи ги е-поштата, апликациите и безбедните веб-локации.\n\nЗа повеќе информации, контактирајте со администраторот."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Дозволивте апликацијата да постави VPN-конекција.\n\nАпликацијава може да го следи уредот и мрежната активност, вклучувајќи е-пошта, апликации и безбедни веб-локации."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Со вашиот уред управува <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nВашиот администратор може да ги следи и да управува со поставките, корпоративните пристапи, апликациите, податоците поврзани со вашиот уред и информациите за локација на уредот.\n\nПоврзани сте со VPN што може да ја следи вашата мрежна активност, вклучувајќи е-пошта, апликации и веб-локации.\n\nЗа повеќе информации, контактирајте со администраторот."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> управува со вашиот работен профил.\n\nАдминистратор е во можност да ја следи вашата активност на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите.\n\nЗа повеќе информации, контактирајте со администраторот.\n\nИсто така, поврзани сте на ВПН, којашто може да ја следи вашата активност на мрежата."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"ВПН"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Поврзани сте на <xliff:g id="APPLICATION">%1$s</xliff:g>, којашто може да ја следи вашата активност на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Поврзани сте на <xliff:g id="APPLICATION">%1$s</xliff:g>, којашто може да ја следи вашата лична активност на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> управува со вашиот работен профил. Истиот е поврзан на <xliff:g id="APPLICATION">%2$s</xliff:g>, којашто може да ја следи вашата работна активност на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите.\n\nЗа повеќе информации, контактирајте со администраторот."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> управува со вашиот работен профил. Истиот е поврзан на <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, којашто може да ја следи вашата работна активност на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите.\n\nВие исто така сте поврзани на <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, којашто може да ја следи вашата лична активност на мрежата."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"<xliff:g id="ORGANIZATION">%1$s</xliff:g> управува со вашиот уред.\n\nВашиот администратор може да ги следи и да управува со параметрите, корпоративниот пристап, апликациите, податоците поврзани со уредот и информациите за локацијата на уредот.\n\nПоврзани сте на <xliff:g id="APPLICATION">%2$s</xliff:g>, којашто може да ја следи вашата активност на мрежата, вклучувајќи ги е-пораките, апликациите и веб-локациите.\n\nЗа повеќе информации, контактирајте со администраторот."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Со вашиот уред управува <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nВашиот администратор е во можност да ја следи вашата мрежна активност, вклучувајќи е-пошта, апликации и безбедни веб-локации.\n\nЗа повеќе информации, контактирајте со администраторот.\n\nИсто така, поврзани сте со VPN што може да ја следи мрежната активност."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Со овој уред управува <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nСо вашиот работен профил управува:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nВашиот администратор е во можност да ја следи вашата мрежна активност, вклучувајќи е-пошта, апликации и безбедни веб-локации.\n\nЗа повеќе информации, контактирајте со вашиот администратор.\n\nИсто така, поврзани сте со VPN што може да ја следи личната мрежна активност."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Уредот ќе остане заклучен додека рачно не го отклучите"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Добивајте известувања побрзо"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Видете ги пред да отклучите"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Види ги сите"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Сокриј ги сите"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Заврши сега"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Прошири"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Собери"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екранот е прикачен"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ќе се гледа сè додека не го откачите. Допрете и држете Назад и Краток преглед истовремено за откачување."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ќе се гледа сè додека не го откачите. Допрете и држете Краток преглед за откачување."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Одбиј"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> е дијалог за јачина на звук"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Допрете за да го вратите оригиналот."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Го користите работниот профил"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Адаптер на УИ на системот"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Прикажи вграден процент на батеријата"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Прикажи процент на ниво на батеријата во внатрешноста на иконата со статусна лента кога не се полни"</string> - <string name="quick_settings" msgid="10042998191725428">"Брзи поставки"</string> - <string name="status_bar" msgid="4877645476959324760">"Статусна лента"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демо-режим"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Овозможи демо-режим"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Прикажи демо-режим"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Етернет"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Аларм"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Работен профил"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Режим на работа во авион"</string> - <string name="add_tile" msgid="2995389510240786221">"Додај плочка"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Емитувај плочка"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Нема да го слушнете следниот аларм <xliff:g id="WHEN">%1$s</xliff:g> освен ако претходно не го исклучите ова"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Нема да го слушнете следниот аларм <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"во <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"во <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Брзи поставки, <xliff:g id="TITLE">%s</xliff:g>"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Точка на пристап"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Работен профил"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Забава за некои, но не за сите"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Адаптерот на УИ на системот ви дава дополнителни начини за дотерување и приспособување на корисничкиот интерфејс на Android. Овие експериментални функции можеби ќе се изменат, расипат или ќе исчезнат во следните изданија. Продолжете со претпазливост."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Овие експериментални функции можеби ќе се изменат, расипат или ќе исчезнат во следните изданија. Продолжете со претпазливост."</string> - <string name="got_it" msgid="2239653834387972602">"Разбрав"</string> - <string name="tuner_toast" msgid="603429811084428439">"Честито! Го додадовте Адаптерот на УИ на системот на Поставки"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Отстрани од поставки"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Да се отстрани Адаптерот на УИ на системот од Поставки и да престанат да се користат сите негови функции?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Вие сте во работен профил"</string> </resources> diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml index 879b405abff1..86f65ddc3408 100644 --- a/packages/SystemUI/res/values-ml-rIN/strings.xml +++ b/packages/SystemUI/res/values-ml-rIN/strings.xml @@ -22,13 +22,13 @@ <string name="app_label" msgid="7164937344850004466">"സിസ്റ്റം UI"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"മായ്ക്കുക"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"ലിസ്റ്റിൽ നിന്നും നീക്കംചെയ്യുക"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ആപ്പ് വിവരം"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"അപ്ലിക്കേഷൻ വിവരം"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"നിങ്ങളുടെ പുതിയ സ്ക്രീനുകൾ ഇവിടെ ദൃശ്യമാകുന്നു"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"സമീപകാല അപ്ലിക്കേഷനുകൾ നിരസിക്കുക"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"കാഴ്ചയിലെ ഒരു സ്ക്രീൻ"</item> - <item quantity="other" msgid="5523506463832158203">"കാഴ്ചയിലെ %d സ്ക്രീനുകൾ"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">ചുരുക്കവിവരണത്തിലെ %d സ്ക്രീനുകൾ</item> + <item quantity="one">ചുരുക്കവിവരണത്തിലെ ഒരു സ്ക്രീൻ</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"അറിയിപ്പുകൾ ഒന്നുമില്ല"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"നടന്നുകൊണ്ടിരിക്കുന്നവ"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"അറിയിപ്പുകൾ"</string> @@ -43,8 +43,8 @@ <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"ഓൺ ചെയ്യുക"</string> <string name="battery_saver_start_action" msgid="5576697451677486320">"ബാറ്ററി സേവർ ഓണാക്കുക"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"ക്രമീകരണങ്ങൾ"</string> - <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"വൈഫൈ"</string> - <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"സ്ക്രീൻ സ്വയമേതിരിക്കുക"</string> + <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"സ്ക്രീൻ യാന്ത്രികമായി തിരിക്കുക"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"മ്യൂട്ടുചെയ്യുക"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"യാന്ത്രികം"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"അറിയിപ്പുകൾ"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB ഡീബഗ്ഗിംഗ് അനുവദിക്കണോ?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ഈ കമ്പ്യൂട്ടറിന്റെ RSA കീ ഫിംഗർപ്രിന്റ് ഇതാണ്:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ഈ കമ്പ്യൂട്ടറിൽ നിന്ന് എല്ലായ്പ്പോഴും അനുവദിക്കുക"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB ഡീബഗ്ഗിംഗ് അനുവദനീയമല്ല"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ഈ ഉപകരണത്തിൽ ഇപ്പോൾ സൈൻ ഇൻ ചെയ്തിരിക്കുന്ന ഉപയോക്താവിന് USB ഡീബഗ്ഗിംഗ് ഓണാക്കാനാകില്ല. ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ, “<xliff:g id="NAME">%s</xliff:g>” എന്ന പ്രാഥമിക ഉപയോക്താവിലേക്ക് മാറുക."</string> <string name="compat_mode_on" msgid="6623839244840638213">"സ്ക്രീനിൽ ഉൾക്കൊള്ളിക്കാൻ സൂം ചെയ്യുക"</string> <string name="compat_mode_off" msgid="4434467572461327898">"സ്ക്രീനിൽ ഉൾക്കൊള്ളിക്കാൻ വലിച്ചുനീട്ടുക"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"സ്ക്രീൻഷോട്ട് സംരക്ഷിക്കുന്നു..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"തിരയൽ"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ക്യാമറ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ഫോണ്"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"വോയ്സ് സഹായം"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"അണ്ലോക്ക് ചെയ്യുക"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"അൺലോക്ക് ബട്ടൺ, ഫിംഗർപ്രിന്റിനായി കാക്കുന്നു"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കാതെ അൺലോക്കുചെയ്യുക"</string> <string name="unlock_label" msgid="8779712358041029439">"അൺലോക്കുചെയ്യുക"</string> <string name="phone_label" msgid="2320074140205331708">"ഫോൺ തുറക്കുക"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"വോയ്സ് അസിസ്റ്റ് തുറക്കുക"</string> <string name="camera_label" msgid="7261107956054836961">"ക്യാമറ തുറക്കുക"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"പുതിയ ടാസ്ക് ലേഔട്ട് തിരഞ്ഞെടുക്കുക"</string> <string name="cancel" msgid="6442560571259935130">"റദ്ദാക്കുക"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ഡാറ്റ രണ്ട് ബാറുകൾ."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ഡാറ്റ മൂന്ന് ബാർ."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ഡാറ്റ സിഗ്നൽ പൂർണ്ണമാണ്."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"വൈഫൈ ഓഫാണ്."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"വൈഫൈ വിച്ഛേദിച്ചു."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"വൈഫൈ ഒരു ബാർ."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"വൈഫൈ രണ്ട് ബാറുകൾ."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"വൈഫൈ മൂന്ന് ബാറുകൾ."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"വൈഫൈ മികച്ച സിഗ്നൽ."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തു."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തു."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX ഇല്ല."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX രണ്ട് ബാറുകൾ."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX മൂന്ന് ബാറുകൾ."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX മികച്ച സിഗ്നൽ."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ഇതർനെറ്റ് വിച്ഛേദിച്ചു."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ഇതർനെറ്റ് കണക്റ്റുചെയ്തു."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"സിഗ്നൽ ഇല്ല."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"കണക്റ്റുചെയ്തിട്ടില്ല."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"ബാറുകളൊന്നുമില്ല."</string> @@ -144,11 +142,10 @@ <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string> <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"റോമിംഗ്"</string> <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> - <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"വൈഫൈ"</string> + <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"സിം ഇല്ല."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ബ്ലൂടൂത്ത് ടെതറിംഗ്."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"ഫ്ലൈറ്റ് മോഡ്."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM കാർഡൊന്നുമില്ല."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"കാരിയർ നെറ്റ്വർക്ക് മാറ്റൽ."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ബാറ്ററി <xliff:g id="NUMBER">%d</xliff:g> ശതമാനം."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"സിസ്റ്റം ക്രമീകരണങ്ങൾ."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> നിരസിച്ചു."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"അടുത്തിടെയുള്ള എല്ലാ അപ്ലിക്കേഷനും നിരസിച്ചു."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> ആരംഭിക്കുന്നു."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"അറിയിപ്പ് നിരസിച്ചു."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"അറിയിപ്പ് ഷെയ്ഡ്."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ദ്രുത ക്രമീകരണങ്ങൾ."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ലോക്ക് സ്ക്രീൻ."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ക്രമീകരണങ്ങൾ"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"കാഴ്ച."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"അടയ്ക്കുക"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"സ്ഥിരീകരിക്കുക"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ഉപയോക്താവ് <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"വൈഫൈ ഓഫാക്കി."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"ഫ്ലൈറ്റ് മോഡ് ഓഫാക്കി."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ഫ്ലൈറ്റ് മോഡ് ഓണാക്കി."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓണാണ്, മുൻഗണന മാത്രം."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\'ശല്യപ്പെടുത്തരുത്\' ഓണാണ്, പൂർണ്ണ നിശബ്ദത."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓണാണ്, തടസ്സങ്ങളൊന്നുമില്ല."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\'ശല്യപ്പെടുത്തരുത്\' ഓണാണ്, അലാറം മാത്രം."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ശല്ല്യപ്പെടുത്തരുത് എന്നത് ഓഫാണ്."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ശല്യപ്പെടുത്തരുത് എന്നത് ഓഫാക്കി."</string> @@ -203,10 +199,10 @@ <string name="accessibility_quick_settings_close" msgid="3115847794692516306">"പാനൽ അടയ്ക്കുക."</string> <string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"കൂടുതൽ സമയം."</string> <string name="accessibility_quick_settings_less_time" msgid="2404728746293515623">"സമയം കുറയ്ക്കുക."</string> - <string name="accessibility_quick_settings_flashlight_off" msgid="4936432000069786988">"ടോർച്ച് ഓഫാണ്."</string> - <string name="accessibility_quick_settings_flashlight_on" msgid="2003479320007841077">"ടോർച്ച് ഓണാണ്."</string> - <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"ടോർച്ച് ഓഫാക്കി."</string> - <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"ടോർച്ച് ഓണാക്കി."</string> + <string name="accessibility_quick_settings_flashlight_off" msgid="4936432000069786988">"ഫ്ലാഷ്ലൈറ്റ് ഓഫാണ്."</string> + <string name="accessibility_quick_settings_flashlight_on" msgid="2003479320007841077">"ഫ്ലാഷ്ലൈറ്റ് ഓണാണ്."</string> + <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"ഫ്ലാഷ്ലൈറ്റ് ഓഫാക്കി."</string> + <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"ഫ്ലാഷ്ലൈറ്റ് ഓണാക്കി."</string> <string name="accessibility_quick_settings_color_inversion_changed_off" msgid="4406577213290173911">"വർണ്ണ വൈപരീത്യം ഓഫാക്കി."</string> <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="6897462320184911126">"വർണ്ണ വൈപരീത്യം ഓണാക്കി."</string> <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"മൊബൈൽ ഹോട്ട്സ്പോട്ട് ഓഫാക്കി."</string> @@ -220,7 +216,7 @@ <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"നിങ്ങൾ നേരത്തെ ക്രമീകരിച്ച ഡാറ്റ പരിധിയിലെത്തിയതിനാൽ, ഈ സൈക്കിളിന്റെ അവശേഷിക്കുന്ന ഡാറ്റ ഉപയോഗം, ഉപകരണം താൽക്കാലികമായി നിർത്തി.\n\nപുനരാരംഭിക്കുന്നത്, നിങ്ങളുടെ കാരിയറിൽ നിന്ന് നിരക്കുകൾക്ക് ഇടയാക്കാം."</string> <string name="data_usage_disabled_dialog_enable" msgid="1412395410306390593">"പുനരാരംഭിക്കുക"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"ഇന്റർനെറ്റ് കണക്ഷൻ ഇല്ല"</string> - <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"വൈഫൈ കണക്റ്റുചെയ്തു"</string> + <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi കണക്റ്റുചെയ്തു"</string> <string name="gps_notification_searching_text" msgid="8574247005642736060">"GPS-നായി തിരയുന്നു"</string> <string name="gps_notification_found_text" msgid="4619274244146446464">"ലൊക്കേഷൻ സജ്ജീകരിച്ചത് GPS ആണ്"</string> <string name="accessibility_location_active" msgid="2427290146138169014">"ലൊക്കേഷൻ അഭ്യർത്ഥനകൾ സജീവമാണ്"</string> @@ -239,13 +235,13 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ശല്ല്യപ്പെടുത്തരുത്"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"മുൻഗണന മാത്രം"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"അലാറങ്ങൾ മാത്രം"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"പൂർണ്ണ നിശബ്ദത"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"തടസ്സങ്ങളൊന്നുമില്ല"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ബ്ലൂടൂത്ത്"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ബ്ലൂടൂത്ത് (<xliff:g id="NUMBER">%d</xliff:g> ഉപകരണങ്ങൾ)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ബ്ലൂടൂത്ത് ഓഫുചെയ്യുക"</string> <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"ജോടിയാക്കിയ ഉപകരണങ്ങളൊന്നും ലഭ്യമല്ല"</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"തെളിച്ചം"</string> - <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"ആവശ്യാനുസരണം തിരിയുക"</string> + <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"ഓട്ടോ റൊട്ടേറ്റ്"</string> <string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"റൊട്ടേഷൻ ലോക്കുചെയ്തു"</string> <string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"പോർട്രെയ്റ്റ്"</string> <string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"ലാൻഡ്സ്കേപ്പ്"</string> @@ -260,11 +256,11 @@ <string name="quick_settings_user_label" msgid="5238995632130897840">"ഞാന്"</string> <string name="quick_settings_user_title" msgid="4467690427642392403">"ഉപയോക്താവ്"</string> <string name="quick_settings_user_new_user" msgid="9030521362023479778">"പുതിയ ഉപയോക്താവ്"</string> - <string name="quick_settings_wifi_label" msgid="9135344704899546041">"വൈഫൈ"</string> + <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"കണക്റ്റുചെയ്തിട്ടില്ല"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"നെറ്റ്വർക്ക് ഒന്നുമില്ല"</string> - <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"വൈഫൈ ഓഫുചെയ്യുക"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"വൈഫൈ നെറ്റ്വർക്കുകളൊന്നും ലഭ്യമല്ല"</string> + <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ഓഫുചെയ്യുക"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"സംരംക്ഷിച്ച നെറ്റ്വർക്കുകളൊന്നും ലഭ്യമല്ല"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"കാസ്റ്റുചെയ്യുക"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"കാസ്റ്റുചെയ്യുന്നു"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"പേരിടാത്ത ഉപകരണം"</string> @@ -281,7 +277,7 @@ <string name="quick_settings_tethering_label" msgid="7153452060448575549">"ടെതറിംഗ്"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"ഹോട്ട്സ്പോട്ട്"</string> <string name="quick_settings_notifications_label" msgid="4818156442169154523">"അറിയിപ്പുകൾ"</string> - <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"ടോർച്ച്"</string> + <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"ഫ്ലാഷ്ലൈറ്റ്"</string> <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"സെല്ലുലാർ ഡാറ്റ"</string> <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"ഡാറ്റ ഉപയോഗം"</string> <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"ശേഷിക്കുന്ന ഡാറ്റ"</string> @@ -290,7 +286,7 @@ <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> പരിധി"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> മുന്നറിയിപ്പ്"</string> <string name="recents_empty_message" msgid="8682129509540827999">"നിങ്ങളുടെ പുതിയ സ്ക്രീനുകൾ ഇവിടെ ദൃശ്യമാകുന്നു"</string> - <string name="recents_app_info_button_label" msgid="2890317189376000030">"ആപ്പ് വിവരം"</string> + <string name="recents_app_info_button_label" msgid="2890317189376000030">"അപ്ലിക്കേഷൻ വിവരം"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"സ്ക്രീൻ പിൻ ചെയ്യൽ"</string> <string name="recents_search_bar_label" msgid="8074997400187836677">"തിരയുക"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"<xliff:g id="APP">%s</xliff:g> ആരംഭിക്കാനായില്ല."</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"തിരയൽ"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി മുകളിലേയ്ക്ക് സ്ലൈഡുചെയ്യുക."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> എന്നതിനായി ഇടത്തേയ്ക്ക് സ്ലൈഡുചെയ്യുക."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"നിങ്ങൾ വ്യക്തമാക്കിയിട്ടുള്ള അലാറങ്ങൾ, ഓർമ്മപ്പെടുത്തലുകൾ, ഇവന്റുകൾ, കോളർമാർ എന്നിവ ഒഴികെയുള്ള ശബ്ദങ്ങളോ വൈബ്രേഷനുകളോ കാരണം നിങ്ങൾക്ക് ശല്യമുണ്ടാകില്ല."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"തടസ്സങ്ങളൊന്നുമില്ല. അലാറങ്ങൾ പോലുമില്ല."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"നിങ്ങൾ വ്യക്തമാക്കിയിട്ടുള്ള അലാറങ്ങൾ, ഓർമ്മപ്പെടുത്തലുകൾ, ഇവന്റുകൾ, കോളർമാർ എന്നിവ ഒഴികെയുള്ള ശബ്ദങ്ങളോ വൈബ്രേഷനുകളോ കാരണം നിങ്ങൾക്ക് ശല്യമുണ്ടാകില്ല."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"ഇഷ്ടാനുസൃതമാക്കുക"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ഇത് അലാറങ്ങൾ, സംഗീതം, വീഡിയോകൾ, ഗെയിമുകൾ എന്നിവയിൽ നിന്നുൾപ്പെടെ എല്ലാ ശബ്ദങ്ങളും വൈബ്രേഷനുകളും തടയുന്നു. നിങ്ങൾക്ക് തുടർന്നും ഫോൺ വിളിക്കാനാകും."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"ഇത് അലാറങ്ങൾ, സംഗീതം, വീഡിയോകൾ, ഗെയിമുകൾ എന്നിവയിൽ നിന്നുൾപ്പെടെ എല്ലാ ശബ്ദങ്ങളും വൈബ്രേഷനുകളും തടയുന്നു."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"തടസ്സങ്ങളൊന്നുമില്ല"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"മുൻഗണനാ തടസ്സങ്ങൾ മാത്രം"</string> + <string name="zen_alarms" msgid="5055668280767657759">"അലാറങ്ങൾ മാത്രം"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"നിങ്ങളുടെ അടുത്ത അലാറം <xliff:g id="ALARM_TIME">%s</xliff:g>-നാണ്"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"നിങ്ങളുടെ അടുത്ത അലാറം <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>-നാണ്"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"നിങ്ങൾ <xliff:g id="ALARM_TIME">%s</xliff:g>-ന് അലാറം കേൾക്കില്ല"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"ആവശ്യം കുറഞ്ഞ അറിയിപ്പുകൾ ചുവടെ നൽകിയിരിക്കുന്നു"</string> <string name="notification_tap_again" msgid="8524949573675922138">"തുറക്കുന്നതിന് വീണ്ടും സ്പർശിക്കുക"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"അൺലോക്കുചെയ്യുന്നതിന് മുകളിലേക്ക് സ്വൈപ്പുചെയ്യുക"</string> - <string name="phone_hint" msgid="4872890986869209950">"ഫോൺ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string> - <string name="voice_hint" msgid="8939888732119726665">"വോയ്സ് അസിസ്റ്റിനായുള്ള ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string> - <string name="camera_hint" msgid="7939688436797157483">"ക്യാമറ ഐക്കണിൽ നിന്ന് സ്വൈപ്പുചെയ്യുക"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"പൂർണ്ണ നിശബ്ദത. സ്ക്രീൻ റീഡറുകളെയും ഇത് നിശബ്ദമാക്കും."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"പൂർണ്ണ നിശബ്ദത"</string> + <string name="phone_hint" msgid="3101468054914424646">"ഫോണിനായി വലതുവശത്ത് സ്വൈപ്പുചെയ്യുക"</string> + <string name="camera_hint" msgid="5241441720959174226">"ക്യാമറയ്ക്കായി ഇടതുവശത്ത് സ്വൈപ്പുചെയ്യുക"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"തടസ്സങ്ങളൊന്നുമില്ല"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"മുൻഗണന മാത്രം"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"അലാറങ്ങൾ മാത്രം"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"പൂർണ്ണ\nനിശബ്ദത"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"എല്ലാം"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"തടസ്സങ്ങൾ\nഒന്നുമില്ല"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"മുൻഗണന\nമാത്രം"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"അലാറങ്ങൾ\nമാത്രം"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ചാർജ്ജുചെയ്യുന്നു (പൂർണ്ണമാകുന്നതിന്, <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"ഉപയോക്താവ് മാറുക"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"ഉപയോക്താവിനെ മാറ്റുക, <xliff:g id="CURRENT_USER_NAME">%s</xliff:g> എന്നയാളാണ് നിലവിലുള്ള ഉപയോക്താവ്"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"നിലവിലെ ഉപയോക്താവ് <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"പ്രൊഫൈൽ കാണിക്കുക"</string> <string name="user_add_user" msgid="5110251524486079492">"ഉപയോക്താവിനെ ചേര്ക്കുക"</string> <string name="user_new_user_name" msgid="426540612051178753">"പുതിയ ഉപയോക്താവ്"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"പുനരാംരംഭിക്കുക"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"അതെ, തുടരുക"</string> <string name="guest_notification_title" msgid="1585278533840603063">"അതിഥി ഉപയോക്താവ്"</string> - <string name="guest_notification_text" msgid="335747957734796689">"ആപ്സും വിവരങ്ങളും ഇല്ലാതാക്കാൻ അതിഥി ഉപയോക്താവിനെ നീക്കുക"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"അപ്ലിക്കേഷനുകളും വിവരവും ഇല്ലാതാക്കാൻ അതിഥിയെ നീക്കംചെയ്യുക"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"അതിഥിയെ നീക്കംചെയ്യുക"</string> <string name="user_add_user_title" msgid="4553596395824132638">"പുതിയ ഉപയോക്താവിനെ ചേർക്കണോ?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"നിങ്ങൾ ഒരു പുതിയ ഉപയോക്താവിനെ ചേർക്കുമ്പോൾ, ആ വ്യക്തിയ്ക്ക് അവരുടെ ഇടം സജ്ജീകരിക്കേണ്ടതുണ്ട്.\n\nമറ്റ് എല്ലാ ഉപയോക്താക്കൾക്കുമായി ഏതൊരു ഉപയോക്താവിനും അപ്ലിക്കേഷനുകൾ അപ്ഡേറ്റുചെയ്യാനാവും."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN പ്രവർത്തനരഹിതമാക്കുക"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN വിച്ഛേദിക്കുക"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക്, ഉപകരണവുമായി ബന്ധപ്പെട്ട ക്രമീകരണവും കോർപ്പറേറ്റ് ആക്സസ്സും അപ്ലിക്കേഷനുകളും വിവരവും ഒപ്പം ഉപകരണത്തിന്റെ ലൊക്കേഷൻ വിവരവും നിരീക്ഷിച്ച് നിയന്ത്രിക്കാനാകും. കൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"VPN കണക്ഷൻ സജ്ജീകരിക്കാൻ നിങ്ങൾ ഒരു ആപ്പിന് അനുമതി നൽകി.\n\nഈ ആപ്പിന് നിങ്ങളുടെ ഇമെയിലുകളും ആപ്സും വെബ്സൈറ്റുകളും ഉൾപ്പെടെ, ഉപകരണവും നെറ്റ്വർക്ക് പ്രവർത്തനവും നിരീക്ഷിക്കാൻ കഴിയും."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക് ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും സുരക്ഷിത വെബ്സൈറ്റുകളും ഉൾപ്പെടെയുള്ള നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാൻ കഴിയും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് ഇതാണ്:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nനിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് ഇതാണ്:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക് ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും സുരക്ഷിത വെബ്സൈറ്റുകളും ഉൾപ്പെടെ, ഉപകരണത്തിന്റെയും നെറ്റ്വർക്കിന്റെയും പ്രവർത്തനം നിരീക്ഷിക്കാനാകും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"VPN കണക്ഷൻ സജ്ജീകരിക്കാൻ നിങ്ങൾ ഒരു അപ്ലിക്കേഷന് അനുമതി നൽകി.\n\nഈ അപ്ലിക്കേഷന് നിങ്ങളുടെ ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും സുരക്ഷിത വെബ്സൈറ്റുകളും ഉൾപ്പെടെ, ഉപകരണത്തിന്റെയും നെറ്റ്വർക്കിന്റെയും പ്രവർത്തനം നിരീക്ഷിക്കാൻ കഴിയും."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക്, ഉപകരണവുമായി ബന്ധപ്പെട്ട ക്രമീകരണവും കോർപ്പറേറ്റ് ആക്സസ്സും അപ്ലിക്കേഷനുകളും വിവരവും ഒപ്പം ഉപകരണത്തിന്റെ ലൊക്കേഷൻ വിവരവും നിരീക്ഷിച്ച് നിയന്ത്രിക്കാനാകും.\n\nഇമെയിലുകളും അപ്ലിക്കേഷനുകളും വെബ്സൈറ്റുകളും ഉൾപ്പെടെയുള്ള നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകുന്ന ഒരു VPN-ലേക്കും നിങ്ങൾ കണക്റ്റുചെയ്തിരിക്കുന്നു.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക് ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും സുരക്ഷിത വെബ്സൈറ്റുകളും ഉൾപ്പെടെയുള്ള നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാൻ കഴിയും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.\n\nനിങ്ങളുടെ നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകുന്ന ഒരു VPN-ലേക്കും നിങ്ങൾ കണക്റ്റുചെയ്തിരിക്കുന്നു."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"നിങ്ങൾ <xliff:g id="APPLICATION">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തിരിക്കുന്നു, അതിന് ഇമെയിലുകൾ, ആപ്സ്, വെബ്സൈറ്റുകൾ എന്നിവ ഉൾപ്പെടെ നിങ്ങളുടെ നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകും."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"നിങ്ങൾ <xliff:g id="APPLICATION">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തിരിക്കുന്നു, അതിന് ഇമെയിലുകൾ, ആപ്സ്, വെബ്സൈറ്റുകൾ എന്നിവ ഉൾപ്പെടെ നിങ്ങളുടെ സ്വകാര്യ നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകും."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്. നിങ്ങൾ <xliff:g id="APPLICATION">%2$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തിരിക്കുന്നു, അതിന് ഇമെയിലുകൾ, ആപ്സ്, വെബ്സൈറ്റുകൾ എന്നിവ ഉൾപ്പെടെ നിങ്ങളുടെ ഔദ്യോഗിക നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്. നിങ്ങൾ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്തിരിക്കുന്നു, അതിന് ഇമെയിലുകൾ, ആപ്സ്, വെബ്സൈറ്റുകൾ എന്നിവ ഉൾപ്പെടെ നിങ്ങളുടെ ഔദ്യോഗിക നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകും.\n\nനിങ്ങൾ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> എന്നതിലേക്കും കണക്റ്റുചെയ്തിരിക്കുന്നു, അതിന് നിങ്ങളുടെ സ്വകാര്യ നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകും."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക്, ഉപകരണവുമായി ബന്ധപ്പെട്ട ക്രമീകരണവും കോർപ്പറേറ്റ് ആക്സസ്സും അപ്ലിക്കേഷനുകളും വിവരവും ഒപ്പം ഉപകരണത്തിന്റെ ലൊക്കേഷൻ വിവരവും നിരീക്ഷിച്ച് നിയന്ത്രിക്കാനാകും.\n\nഇമെയിലുകളും അപ്ലിക്കേഷനുകളും വെബ്സൈറ്റുകളും ഉൾപ്പെടെയുള്ള നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകുന്ന ഒരു <xliff:g id="APPLICATION">%2$s</xliff:g> എന്നതിലേക്കും നിങ്ങൾ കണക്റ്റുചെയ്തിരിക്കുന്നു.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"നിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION">%1$s</xliff:g> ആണ്.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക് ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും സുരക്ഷിത വെബ്സൈറ്റുകളും ഉൾപ്പെടെയുള്ള നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാൻ കഴിയും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.\n\nനിങ്ങളുടെ നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകുന്ന ഒരു VPN-ലേക്കും നിങ്ങൾ കണക്റ്റുചെയ്തിരിക്കുന്നു."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നത് <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> ആണ്.\nനിങ്ങളുടെ ഔദ്യോഗിക പ്രൊഫൈൽ നിയന്ത്രിക്കുന്നത് ഇതാണ്:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nനിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർക്ക് ഇമെയിലുകളും അപ്ലിക്കേഷനുകളും സുരക്ഷിത വെബ്സൈറ്റുകളും ഉൾപ്പെടെ, നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാൻ കഴിയും.\n\nകൂടുതൽ വിവരങ്ങൾക്ക്, അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.\n\nനിങ്ങളുടെ വ്യക്തിഗത നെറ്റ്വർക്ക് പ്രവർത്തനം നിരീക്ഷിക്കാനാകുന്ന ഒരു VPN-ലേക്കും നിങ്ങൾ കണക്റ്റുചെയ്തിരിക്കുന്നു"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"നിങ്ങൾ സ്വമേധയാ അൺലോക്കുചെയ്യുന്നതുവരെ ഉപകരണം ലോക്കുചെയ്തതായി തുടരും"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"അറിയിപ്പുകൾ വേഗത്തിൽ സ്വീകരിക്കുക"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"അൺലോക്കുചെയ്യുന്നതിന് മുമ്പ് അവ കാണുക"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"എല്ലാം കാണുക"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"എല്ലാം മറയ്ക്കുക"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ഇപ്പോള് അവസാനിപ്പിക്കുക"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"വികസിപ്പിക്കുക"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ചുരുക്കുക"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"സ്ക്രീൻ പിൻ ചെയ്തു"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"നിങ്ങൾ അൺപിൻ ചെയ്യുന്നതുവരെ ഇത് കാണുന്ന വിധത്തിൽ നിലനിർത്തുന്നു. അൺപിൻ ചെയ്യാൻ \'മടങ്ങുക\', \'ചുരുക്കവിവരണം\' എന്നിവ ഒരേ സമയം സ്പർശിച്ച് പിടിക്കുക."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"നിങ്ങൾ അൺപിൻ ചെയ്യുന്നതുവരെ ഇത് കാണുന്ന വിധത്തിൽ നിലനിർത്തുന്നു. അൺപിൻ ചെയ്യുന്നതിന് \'ചുരുക്കവിവരണം\' സ്പർശിച്ചുപിടിക്കുക."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"നിരസിക്കുക"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g>, വോളിയം ഡയലോഗാണ്"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"ആദ്യത്തേത് പുനഃസ്ഥാപിക്കാൻ സ്പർശിക്കുക."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"നിങ്ങൾ ഉപയോഗിക്കുന്നത് ഔദ്യോഗിക പ്രൊഫൈലാണ്"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"സിസ്റ്റം UI ട്യൂണർ"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"എംബഡ് ചെയ്ത ബാറ്ററി ശതമാനം കാണിക്കുക"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ചാർജ്ജുചെയ്യാതിരിക്കുമ്പോൾ സ്റ്റാറ്റസ് ബാർ ഐക്കണിൽ ബാറ്ററി ലെവൽ ശതമാനം കാണിക്കുക"</string> - <string name="quick_settings" msgid="10042998191725428">"ദ്രുത ക്രമീകരണം"</string> - <string name="status_bar" msgid="4877645476959324760">"സ്റ്റാറ്റസ് ബാർ"</string> - <string name="demo_mode" msgid="2389163018533514619">"ഡെമോ മോഡ്"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"ഡെമോ മോഡ് പ്രവർത്തനക്ഷമമാക്കുക"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ഡെമോ മോഡ് കാണിക്കുക"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ഇതർനെറ്റ്"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"അലാറം"</string> - <string name="status_bar_work" msgid="6022553324802866373">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"ഫ്ലൈറ്റ് മോഡ്"</string> - <string name="add_tile" msgid="2995389510240786221">"ടൈൽ ചേർക്കുക"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"പ്രക്ഷേപണ ടൈൽ"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"നിങ്ങൾ ഇത് ഓഫാക്കുന്നില്ലെങ്കിൽ <xliff:g id="WHEN">%1$s</xliff:g>-നുള്ള അടുത്ത അലാറം കേൾക്കില്ല"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g>-നുള്ള നിങ്ങളുടെ അടുത്ത അലാറം കേൾക്കില്ല"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>-ന്"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>-ന്"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"ദ്രുത ക്രമീകരണം, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ഹോട്ട്സ്പോട്ട്"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"ഔദ്യോഗിക പ്രൊഫൈൽ"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"ചിലർക്ക് വിനോദം, എന്നാൽ എല്ലാവർക്കുമില്ല"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Android ഉപയോക്തൃ ഇന്റർഫേസ് ആവശ്യമുള്ള രീതിയിൽ മാറ്റുന്നതിനും ഇഷ്ടാനുസൃതമാക്കുന്നതിനും സിസ്റ്റം UI ട്യൂണർ നിങ്ങൾക്ക് അധിക വഴികൾ നൽകുന്നു. ഭാവി റിലീസുകളിൽ ഈ പരീക്ഷണാത്മക ഫീച്ചറുകൾ മാറ്റുകയോ നിർത്തുകയോ അപ്രത്യക്ഷമാവുകയോ ചെയ്തേക്കാം. ശ്രദ്ധയോടെ മുന്നോട്ടുപോകുക."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ഭാവി റിലീസുകളിൽ ഈ പരീക്ഷണാത്മക ഫീച്ചറുകൾ മാറ്റുകയോ നിർത്തുകയോ അപ്രത്യക്ഷമാവുകയോ ചെയ്തേക്കാം. ശ്രദ്ധയോടെ മുന്നോട്ടുപോകുക."</string> - <string name="got_it" msgid="2239653834387972602">"മനസ്സിലായി"</string> - <string name="tuner_toast" msgid="603429811084428439">"അഭിനന്ദനങ്ങൾ! ക്രമീകരണത്തിലേക്ക് സിസ്റ്റം UI ട്യൂണർ ചേർത്തിരിക്കുന്നു"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"ക്രമീകരണത്തിൽ നിന്ന് നീക്കംചെയ്യുക"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ക്രമീകരണത്തിൽ നിന്ന് സിസ്റ്റം UI ട്യൂണർ നീക്കംചെയ്യുകയും അതിന്റെ ഫീച്ചറുകളെല്ലാം ഉപയോഗിക്കുന്നത് നിർത്തുകയും ചെയ്യണോ?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"നിങ്ങൾ ഔദ്യോഗിക പ്രൊഫൈലിൽ ആണ്"</string> </resources> diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml index 50f3e41dccbe..52cdfc9949f3 100644 --- a/packages/SystemUI/res/values-mn-rMN/strings.xml +++ b/packages/SystemUI/res/values-mn-rMN/strings.xml @@ -25,10 +25,8 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Апп мэдээлэл"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Таны саяхны дэлгэц энд харагдах болно"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Сүүлийн апп-уудыг хаах"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Тойм дээр 1 дэлгэц"</item> - <item quantity="other" msgid="5523506463832158203">"Тойм дээрх %d дэлгэц"</item> - </plurals> + <!-- String.format failed for translation --> + <!-- no translation found for status_bar_accessibility_recent_apps (9138535907802238759) --> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Мэдэгдэл байхгүй"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Гарсан"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Мэдэгдэл"</string> @@ -63,8 +61,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB дебаг хийхийг зөвшөөрөх үү?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Компьютерийн RSA түлхүүрийн хурууны хээ :\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Энэ компьютерээс орохыг байнга зөвшөөрөх"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB алдаа засалт хийх боломжгүй"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Энэ төхөөрөмжид нэвтэрсэн хэрэглэгч USB алдаа засалт хийх боломжгүй байна. Энэ функцыг ашиглахын тулд ерөнхий хэрэглэгчийг “<xliff:g id="NAME">%s</xliff:g>” болгон солино уу."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Дэлгэц дүүргэх бол өсгөнө үү"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Дэлгэц дүүргэх бол татна уу"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Дэлгэцийн агшинг хадгалж байна…"</string> @@ -85,13 +81,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Хайх"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камер"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Утас"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Дуут туслах"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Тайлах"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Toвчлуурыг онгойлгоно уу. Хурууны хээг хүлээж байна"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Хурууны хээ ашиглалгүйгээр түгжээг тайлаарай"</string> <string name="unlock_label" msgid="8779712358041029439">"тайлах"</string> <string name="phone_label" msgid="2320074140205331708">"утас нээх"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"дуут туслахыг нээнэ"</string> <string name="camera_label" msgid="7261107956054836961">"камер нээх"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Шинэ ажиллах талбарыг сонгоно уу"</string> <string name="cancel" msgid="6442560571259935130">"Цуцлах"</string> @@ -114,6 +106,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Дата хоёр баганатай."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Дата гурван баганатай."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Дата дохио дүүрэн."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi унтарсан."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi салав."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi нэг баганатай."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi хоёр баганатай."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi гурван баганатай."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi дохио дүүрэн."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>-тай холбогдсон."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>-тай холбогдсон."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX байхгүй."</string> @@ -121,8 +119,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX хоёр баганатай."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX гурван баганатай."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX дохио дүүрэн."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet саллаа."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet холбогдсон."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Дохио байхгүй."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Холбогдоогүй."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Тэг баганатай."</string> @@ -148,7 +144,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM байхгүй."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Блютүүт модем болж байна."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Нислэгийн горим"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM карт байхгүй."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Дамжуулагч сүлжээг өөрчилж байна."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Батерей <xliff:g id="NUMBER">%d</xliff:g> хувьтай."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Системийн тохиргоо."</string> @@ -165,14 +160,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> байхгүй."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Хамгийн сүүлийн бүх програмыг арилгасан байна."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g>-г эхлүүлж байна."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Мэдэгдэл хаагдсан."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Мэдэгдлийн хураангуй самбар"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Шуурхай тохиргоо."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Дэлгэц түгжих."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Тохиргоо"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Тойм"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Хаах"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Баталгаажуулах"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Хэрэглэгч <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi унтраасан."</string> @@ -184,7 +178,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Нислэгийн горимыг унтраасан."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Нислэгийн горимыг асаасан."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Бүү саад болно уу.Зөвхөн чухал зүйлст."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Дуугүй байх. Бүү саад бол."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Бүү саад болно уу. Аливаа саад учруулахгүй байна уу."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Бүү саад бол, зөвхөн сэрүүлгийг асаа."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Бүү саад бол."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Идэвхгүй болгох үйлдэлд бүү саад бол."</string> @@ -239,7 +233,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Бүү саад бол"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Зөвхөн чухал зүйлс"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Зөвхөн сэрүүлэг"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Дуугүй болгох"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Аливаа саад байхгүй байх"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Блютүүт"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Блютүүт (<xliff:g id="NUMBER">%d</xliff:g> төхөөрөмж)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Блютүүт унтраалттай"</string> @@ -264,7 +258,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Холбогдоогүй"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Сүлжээгүй"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi унтарсан"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fi сүлжээ байхгүй байна"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Хадгалагдсан сүлжээ байхгүй"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Дамжуулах"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Дамжуулж байна"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Нэргүй төхөөрөмж"</string> @@ -306,28 +300,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Хайх"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>-г гулсуулах."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> хийх зүүнлүү гулсуулах."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Танд сэрүүлгэ, сануулга, үйл явдлын сануулга, таны сануулсан дуудлага зэргээс бусад дуу чимээ, чичиргээ танд садаа болохгүй."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Тасалдал байхгүй. Сэрүүлэг ч байхгүй."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Танд сэрүүлгэ, сануулга, үйл явдлын сануулга, таны сануулсан дуудлага зэргээс бусад дуу чимээ, чичиргээ танд садаа болохгүй."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Тохируулах"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Энэ нь сэрүүлэг, хөгжим, видео, тоглоом зэргийг оруулаад зэрэг БҮХ дуу, чичиргээг блоклодог. Та дуудлага хийх боломжтой хэвээр байна."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Энэ нь сэрүүлэг, хөгжим, видео, тоглоом зэргийг оруулаад зэрэг БҮХ дуу, чичиргээг блоклодог."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Ямар ч тасалдалгүй"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Зөвхөн нэн тэргүүний тасалдалд"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Зөвхөн сэрүүлэг"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Таны дараагийн сэрүүлгийн цаг <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Таны дараагийн сэрүүлгийн цаг <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Та <xliff:g id="ALARM_TIME">%s</xliff:g>-д өөрийн сэрүүлгээ сонсохгүй"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Яаралтай биш мэдэгдлүүдийг доор"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Нээхийн тулд дахин хүрнэ үү"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Түгжээг тайлах бол шудрана уу"</string> - <string name="phone_hint" msgid="4872890986869209950">"Утсыг гаргахын тулд дүрс тэмдгээс шудрах"</string> - <string name="voice_hint" msgid="8939888732119726665">"Дуут туслахыг нээхийн тулд дүрс тэмдгээс шудрах"</string> - <string name="camera_hint" msgid="7939688436797157483">"Камер нээхийн тулд дүрс тэмдгийг шудрах"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Бүгд дуугүй байна. Ингэснээр дэлгэцийн уншигчийг мөн дуугүй болгох болно."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Дуугүй болгох"</string> + <string name="phone_hint" msgid="3101468054914424646">"Утас гаргахын тулд баруун шударна уу"</string> + <string name="camera_hint" msgid="5241441720959174226">"Камер гаргахын тулд зүүн шударна уу"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Аливаа саад байхгүй байх"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Зөвхөн чухал зүйлс"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Зөвхөн сэрүүлэг"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Дуугүй\nболгох"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Бүгд"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ямар ч\nтасалдал байхгүй"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Зөвхөн\nхамгийн чухлыг"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Зөвхөн\nсэрүүлэг"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Цэнэглэж байна (дүүргэхэд <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Хэрэглэгчийг сэлгэх"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Хэрэглэгчийг сэлгэх, одоогийн хэрэглэгч <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Одоогийн хэрэглэгч <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Профайлыг харуулах"</string> <string name="user_add_user" msgid="5110251524486079492">"Хэрэглэгч нэмэх"</string> <string name="user_new_user_name" msgid="426540612051178753">"Шинэ хэрэглэгч"</string> @@ -342,7 +339,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Дахин эхлүүлэх"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Тийм, үргэлжлүүлэх"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Зочин хэрэглэгч"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Апп болон өгөгдлийг устгахын тулд зочин хэрэглэгчийг хасна уу"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Апп ба өгөгдлийг устгахын тулд зочныг гаргах"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ЗОЧНЫГ ГАРГАХ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Шинэ хэрэглэгч нэмэх үү?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Та шинэ хэрэглэгч нэмбэл, тухайн хүн өөрийн профайлыг тохируулах шаардлагатай.\n\nАль ч хэрэглэгч бүх хэрэглэгчийн апп-уудыг шинэчлэх боломжтой."</string> @@ -364,15 +361,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN идэвхгүйжүүлэх"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN таслах"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Таны төхөөрөмж удирдагч <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nТаны админ таны төхөөрөмжтэй холбоотой тохиргоо, байгууллагын хандалт, мэдээлэл болон байршлын мэдээллийг удирдан, хяналт тавих боломжтой."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Та апп-д VPN холболт хийхийг зөвшөөрсөн байна.\n\nЭнэхүү апп нь таны имэйл, апп, вэбсайт зэрэг төхөөрөмж болон сүлжээний үйл ажиллагааг хянах боломжтой."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Таны ажлын профайлыг удирдагч <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nТаны админ имэйл, апп, аюулгүй вэбсайт гэх мэт төхөөрөмж, сүлжээний үйл ажиллагааг хянадаг.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Таны төхөөрөмж удирдагч:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nТаны ажлын профайлыг удирдагч:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nТаны админ имэйл, апп, аюулгүй вэбсайт гэх мэт төхөөрөмж, сүлжээний үйл ажиллагааг хянадаг.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Та апп-д VPN холболт хийхийг зөвшөөрсөн байна.\n\nЭнэхүү апп нь имэйл, апп, аюулгүй вэбсайт гэх мэт төхөөрөмж, сүлжээний үйл ажиллагааг хянах боломжтой."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Таны төхөөрөмжийн удирдагч <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nТаны админ таны төхөөрөмжтэй холбоотой тохиргоо, байгууллагын хандалт, мэдээлэл болон байршлын мэдээллийг удирдан, хяналт тавих боломжтой.\n\nТа таны имэйл, апп, вэб сайтын үйл ажиллагааг хянах VPN-д холбогдсон байна.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг.\n\nАдмин нь таны имэйл,апп болон вэбсайт зэрэг сүлжээний үйл ажиллагааг хянадаг. \n\n Дэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу. \n\nМөн та VPN-д холбогдсон бөгөөд ингэснээр өөрийн сүлжээний үйл ажиллагааг хянах боломжтой байна."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Та <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны имэйл, апп, вебсайт зэрэг сүлжээний үйл ажиллагааг хянах боломжтой."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Та <xliff:g id="APPLICATION">%1$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны имэйл, апп, вебсайт зэрэг сүлжээний хувийн үйл ажиллагааг хянах боломжтой."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг. Энэ нь <xliff:g id="APPLICATION">%2$s</xliff:g>-тэй холбогдсон бөгөөд таны имэйл, апп, вебсайт зэрэг сүлжээний үйл ажиллагааг хянах боломжтой.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Таны ажлын профайлыг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг. Энэ нь <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>-тай холбогдсон бөгөөд таны имэйл, апп, вебсайт зэрэг ажлын сүлжээний үйл ажиллагааг хянах боломжтой.\n\nМөн та <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>-д холбогдсон бөгөөд энэ нь таны сүлжээний хувийн үйл ажиллагааг хянаж чадна."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Таны төхөөрөмжийг <xliff:g id="ORGANIZATION">%1$s</xliff:g> удирддаг.\n\n Танай админ төхөөрөмж, төхөөрөмжийн байршилтай холбоотой өгөгдлийг холбох, тохиргоог өөрчлөх болон хяналт тавих боломжтой.\n\nТа <xliff:g id="APPLICATION">%2$s</xliff:g>-тай холбогдсон бөгөөд ингэснээр таны имэйл,апп, аюулгүй вебсайт зэрэг сүлжээний үйл ажиллагаагаа хянах боломжтой.\n\n Дэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Таны ажлын профайлыг удирдагч <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nТаны админ имэйл, апп, аюулгүй вэбсайт гэх мэт төхөөрөмж, сүлжээний үйл ажиллагааг хянадаг.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу.\n\nМөн та таны хувийн сүлжээний үйл ажиллагааг хянах VPN-д холбогдсон байна."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Таны төхөөрөмжийг удирдагч <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nТаны ажлын профайлыг удирдагч:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nТаны админ имэйл, апп, аюулгүй вэбсайт гэх мэт төхөөрөмж, сүлжээний үйл ажиллагааг хянадаг.\n\nДэлгэрэнгүй мэдээлэл авахыг хүсвэл админтайгаа холбогдоно уу.\n\nМөн та таны хувийн сүлжээний үйл ажиллагааг хянах VPN-д холбогдсон байна"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Таныг гараар онгойлгох хүртэл төхөөрөмж түгжээтэй байх болно"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Мэдэгдлийг хурдан авах"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Түгжээг тайлахын өмнө үзнэ үү"</string> @@ -381,9 +375,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Бүгдийг харах"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Бүгдийг нуух"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Одоо дуусгах"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Дэлгэх"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Хураах"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Дэлгэц эхэнд байрлуулагдсан"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Таныг эхэнд нээхийг болиулах хүртэл харагдана. Хүрээд, Back дээр удаан дараад хаахдаа Overview-ийг дар"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Таныг эхэнд нээхийг болиулах хүртэл харагдана. Хаахын тулд хүрээдOverview-ийг дар"</string> @@ -397,33 +388,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Татгалзах"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> нь дууны диалог юм."</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Анхны хувилбарыг эргүүлэн хадгалахыг хүсвэл хүрнэ үү."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Та өөрийн ажлын профайлыг ашиглаж байна"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Системийн UI Тохируулагч"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Залгаатай тэжээлийн хувийг харуулах"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Тэжээлийн хувийг цэнэглээгүй байх үед статусын хэсэгт харуулна уу"</string> - <string name="quick_settings" msgid="10042998191725428">"Түргэвчилсэн Tохиргоо"</string> - <string name="status_bar" msgid="4877645476959324760">"Статус самбар"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демо горим"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Демо горимыг идэвхжүүлэх"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Демо горимыг харуулах"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Этернет"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Сэрүүлэг"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Ажлын профайл"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Нислэгийн горим"</string> - <string name="add_tile" msgid="2995389510240786221">"Вэбсайтын цонх нэмэх"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Вэбсайтын цонх дамжуулах"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Та өмнө нь унтраагаагүй тохиолдолд <xliff:g id="WHEN">%1$s</xliff:g>-т сэрүүлгээ сонсохгүй"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g>-т та дараагийн сэрүүлгээ сонсохгүй"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> цагт"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>-т"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Түргэн Тохиргоо, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Сүлжээний цэг"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Ажлын профайл"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Зарим хүнд хөгжилтэй байж болох ч бүх хүнд тийм биш"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Системийн UI Tохируулагч нь Android хэрэглэгчийн интерфэйсийг тааруулах, өөрчлөх нэмэлт аргыг зааж өгөх болно. Эдгээр туршилтын тохиргоо нь цаашид өөрчлөгдөх, эвдрэх, алга болох магадлалтай. Үйлдлийг болгоомжтой хийнэ үү."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Эдгээр туршилтын тохиргоо нь цаашид өөрчлөгдөх, эвдрэх, алга болох магадлалтай. Үйлдлийг болгоомжтой хийнэ үү."</string> - <string name="got_it" msgid="2239653834387972602">"Ойлголоо"</string> - <string name="tuner_toast" msgid="603429811084428439">"Баяр хүргэе! Системийн UI Tохируулагчийг тохиргоонд нэмлээ"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Тохиргооноос устгах"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Системийн UI Тохируулагчийг тохиргооноос устгаж, үүнтэй холбоотой бүх тохиргоог ашиглахаа болих уу?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Та Work профайлд байна"</string> </resources> diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml index 589358a7270e..e8baf4f3afb7 100644 --- a/packages/SystemUI/res/values-mr-rIN/strings.xml +++ b/packages/SystemUI/res/values-mr-rIN/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"अॅप माहिती"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"आपल्या अलीकडील स्क्रीन येथे दिसतात"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"अलीकडील अॅप्स डिसमिस करा"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"विहंगावलोकनात 1 स्क्रीन"</item> - <item quantity="other" msgid="5523506463832158203">"विहंगावलोकनात %d स्क्रीन"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">विहंगावलोकनात %d स्क्रीन</item> + <item quantity="other">विहंगावलोकनात %d स्क्रीन</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"सूचना नाहीत"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"सुरु असलेले"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"सूचना"</string> @@ -48,7 +48,7 @@ <string name="status_bar_settings_mute_label" msgid="554682549917429396">"नि:शब्द करा"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"स्वयं"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"सूचना"</string> - <string name="bluetooth_tethered" msgid="7094101612161133267">"ब्लूटुथ टिथर केले"</string> + <string name="bluetooth_tethered" msgid="7094101612161133267">"ब टिथर केले"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"इनपुट पद्धती सेट करा"</string> <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"वास्तविक कीबोर्ड"</string> <string name="usb_device_permission_prompt" msgid="834698001271562057">"USB डिव्हाइसवर प्रवेश करण्यासाठी <xliff:g id="APPLICATION">%1$s</xliff:g> अॅप ला अनुमती द्यायची?"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB डीबग करण्यास अनुमती द्यायची?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"संगणकाची RSA की फिंगरप्रिंट ही आहे:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"या संगणकावरून नेहमी अनुमती द्या"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB डीबग करण्यास अनुमती नाही"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"सध्या या डिव्हाइसमध्ये साइन इन केलेला वापरकर्ता USB डीबग करणे चालू करू शकत नाही. हे वैशिष्ट्य वापरण्यासाठी, “<xliff:g id="NAME">%s</xliff:g>” प्राथमिक वापरकर्त्यावर स्विच करा."</string> <string name="compat_mode_on" msgid="6623839244840638213">"स्क्रीन भरण्यासाठी झूम करा"</string> <string name="compat_mode_off" msgid="4434467572461327898">"स्क्रीन भरण्यासाठी ताणा"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"स्क्रीनशॉट जतन करत आहे…"</string> @@ -85,20 +83,16 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"शोधा"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"कॅमेरा"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"फोन"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"व्हॉइस सहाय्य"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"अनलॉक करा"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"अनलॉक बटण, फिंगरप्रिंटची प्रतीक्षा करीत आहे"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"आपले फिंगरप्रिंट न वापरता अनलॉक करा"</string> <string name="unlock_label" msgid="8779712358041029439">"अनलॉक करा"</string> <string name="phone_label" msgid="2320074140205331708">"फोन उघडा"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"व्हॉइस सहाय्य उघडा"</string> <string name="camera_label" msgid="7261107956054836961">"कॅमेरा उघडा"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"नवीन कार्य लेआउट निवडा"</string> <string name="cancel" msgid="6442560571259935130">"रद्द करा"</string> <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"सुसंगतता झूम बटण."</string> <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"लहानपासून मोठ्या स्क्रीनवर झूम करा."</string> - <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"ब्लूटुथ कनेक्ट केले."</string> - <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"ब्लूटुथ डिस्कनेक्ट केले."</string> + <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"ब कनेक्ट केले."</string> + <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"ब डिस्कनेक्ट केले."</string> <string name="accessibility_no_battery" msgid="358343022352820946">"बॅटरी नाही."</string> <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"बॅटरी एक बार."</string> <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"बॅटरी दोन बार."</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"डेटा दोन बार."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"डेटा तीन बार."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"डेटा सिग्नल पूर्ण."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"वायफाय बंद."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"WIFI डिस्कनेक्ट झाले."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"वायफाय एक बार."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"वायफाय दोन बार."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"वायफाय तीन बार."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"वायफाय सिग्नल पूर्ण."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> शी कनेक्ट केले."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> शी कनेक्ट केले."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX नाही."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX दोन बार."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX तीन बार."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX सिग्नल पूर्ण."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"इथरनेट डिस्कनेक्ट केले."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"इथरनेट कनेक्ट केले."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"सिग्नल नाही."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"कनेक्ट केले नाही."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"शून्य बार."</string> @@ -146,9 +144,8 @@ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"वाय-फाय"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"सिम नाही."</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ब्लूटुथ टिथरिंग."</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ब टिथरिंग."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"विमान मोड."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"सिम कार्ड नाही."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"वाहक नेटवर्क बदलणे."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"बॅटरी <xliff:g id="NUMBER">%d</xliff:g> टक्के."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"सिस्टम सेटिंग्ज."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> डिसमिस केला."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"अलीकडील सर्व अनुप्रयोग डिसमिस झाले."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> प्रारंभ करीत आहे."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"सूचना डिसमिस केल्या."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"सूचना शेड."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"द्रुत सेटिंग्ज."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"लॉक स्क्रीन."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिंग्ज"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"विहंगावलोकन."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"बंद करा"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"पुष्टीकरण करा"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"वापरकर्ता <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi बंद झाले."</string> @@ -184,17 +180,17 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"विमान मोड बंद केला."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"विमान मोड चालू केला."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"व्यत्यय आणू नका चालू, केवळ प्राधान्य."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"व्यत्यय आणू नका चालू, संपूर्ण शांतता."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"व्यत्यय आणू नका चालू, कोणताही व्यत्यय नाही."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"व्यत्यय आणू नका चालू, केवळ अलार्म."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"व्यत्यय आणू नका बंद."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"व्यत्यय आणू नका बंद करा"</string> <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"व्यत्यय आणू नका चालू करा"</string> - <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"ब्लूटुथ बंद."</string> - <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"ब्लूटुथ चालू."</string> - <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"ब्लूटुथ कनेक्ट करत आहे."</string> - <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"ब्लूटुथ कनेक्ट केले."</string> - <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"ब्लूटुथ बंद केले."</string> - <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"ब्लूटुथ चालू केले."</string> + <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"ब बंद."</string> + <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"ब चालू."</string> + <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"ब कनेक्ट करत आहे."</string> + <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"ब कनेक्ट केले."</string> + <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"ब बंद केले."</string> + <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"ब चालू केले."</string> <string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"स्थान अहवाल बंद."</string> <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"स्थान अहवाल चालू."</string> <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"स्थान अहवाल बंद केला."</string> @@ -239,10 +235,10 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"व्यत्यय आणू नका"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"केवळ प्राधान्य"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"केवळ अलार्म"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"संपूर्ण शांतता"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"कोणतेही व्यत्यय नाही"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लूटुथ"</string> - <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लूटुथ (<xliff:g id="NUMBER">%d</xliff:g> डिव्हाइसेस)"</string> - <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ब्लूटुथ बंद"</string> + <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब (<xliff:g id="NUMBER">%d</xliff:g> डिव्हाइसेस)"</string> + <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ब बंद"</string> <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"कोणतेही जोडलेले डिव्हाइसेस उपलब्ध नाहीत"</string> <string name="quick_settings_brightness_label" msgid="6968372297018755815">"चमक"</string> <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"स्वयं-फिरवा"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"कनेक्ट केले नाही"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"नेटवर्क नाही"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"वाय-फाय बंद"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fi नेटवर्क उपलब्ध नाहीत"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"कोणतीही जतन केलेली नेटवर्क उपलब्ध नाहीत"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"कास्ट करा"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"कास्ट करत आहे"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"निनावी डिव्हाइस"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"शोध"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी वर स्लाइड करा."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> साठी डावीकडे स्लाइड करा."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"आपण निर्दिष्ट करता ते अलार्म, स्मरणपत्रे, इव्हेंट आणि कॉलर व्यतिरिक्त, आपल्याला आवाज आणि कंपनांमुळे व्यत्यय येणार नाही."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कोणतेही व्यत्यय नाहीत. अगदी अलार्मचे देखील नाहीत."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"आपण निर्दिष्ट करता ते अलार्म, स्मरणपत्रे, इव्हेंट आणि कॉलर व्यतिरिक्त आपल्याला आवाज आणि कंपनांमुळे व्यत्यय येणार नाही."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"सानुकूलित करा"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"हे अलार्म, संगीत, व्हिडिओ आणि गेम यासह, सर्व आवाज आणि कंपने अवरोधित करते. आपण तरीही फोन कॉल करण्यात सक्षम व्हाल."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"हे अलार्म, संगीत, व्हिडिओ आणि गेम यासह, सर्व आवाज आणि कंपने अवरोधित करते."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"कोणतेही व्यत्यय नाही"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"केवळ प्राधान्य दिलेले व्यत्यय"</string> + <string name="zen_alarms" msgid="5055668280767657759">"केवळ अलार्म"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"आपला पुढील अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता आहे"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"आपला पुढील अलार्म <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> आहे"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"आपण आपला अलार्म <xliff:g id="ALARM_TIME">%s</xliff:g> वाजता ऐकणार नाही"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"खाली कमी तातडीच्या सूचना"</string> <string name="notification_tap_again" msgid="8524949573675922138">"उघडण्यासाठी पुन्हा स्पर्श करा"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"अनलॉक करण्यासाठी स्वाइप करा"</string> - <string name="phone_hint" msgid="4872890986869209950">"फोनसाठी चिन्हावरून स्वाइप करा"</string> - <string name="voice_hint" msgid="8939888732119726665">"व्हॉइस सहाय्यासाठी चिन्हावरून स्वाइप करा"</string> - <string name="camera_hint" msgid="7939688436797157483">"कॅमेर्यासाठी चिन्हावरून स्वाइप करा"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"संपूर्ण शांतता. हे स्क्रीन रीडर ना देखील शांत करेल."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"संपूर्ण शांतता"</string> + <string name="phone_hint" msgid="3101468054914424646">"फोन साठी उजवीकडे स्वाइप करा"</string> + <string name="camera_hint" msgid="5241441720959174226">"कॅमेर्यासाठी डावीकडे स्वाइप करा"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"कोणतेही व्यत्यय नाहीत"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"केवळ प्राधान्य"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"केवळ अलार्म"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"संपूर्ण\nशांतता"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"सर्व"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"कोणतेही व्यत्यय\nनाही"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"केवळ\nप्राधान्य"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"केवळ\nअलार्म"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> पूर्ण होईपर्यंत) चार्ज होत आहे"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"वापरकर्ता स्विच करा"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"वापरकर्ता स्विच करा, वर्तमान वापरकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"वर्तमान वापरकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"प्रोफाईल दर्शवा"</string> <string name="user_add_user" msgid="5110251524486079492">"वापरकर्ता जोडा"</string> <string name="user_new_user_name" msgid="426540612051178753">"नवीन वापरकर्ता"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"येथून प्रारंभ करा"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"होय, सुरु ठेवा"</string> <string name="guest_notification_title" msgid="1585278533840603063">"अतिथी वापरकर्ता"</string> - <string name="guest_notification_text" msgid="335747957734796689">"अॅप्स आणि डेटा हटविण्यासाठी, अतिथी वापरकर्ता काढा"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"अॅप्स आणि डेटा हटविण्यासाठी अतिथी काढा"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"अतिथी काढा"</string> <string name="user_add_user_title" msgid="4553596395824132638">"नवीन वापरकर्ता जोडायचा?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"आपण एक नवीन वापरकर्ता जोडता तेव्हा, त्या व्यक्तीने त्यांचे स्थान सेट करणे आवश्यक असते.\n\nकोणताही वापरकर्ता इतर सर्व वापरकर्त्यांसाठी अॅप्स अद्यतनित करू शकतो."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN अक्षम करा"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN डिस्कनेक्ट करा"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"आपले डिव्हाइस <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केलेले आहे.\n\nआपला प्रशासक आपल्या डिव्हाइसशी संबंधित सेटिंग्ज, कॉर्पोरेट प्रवेश, अॅप्स, डेटा आणि आपल्या डिव्हाइसच्या स्थान माहितीचे परीक्षण करू शकतो. अधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"आपण VPN कनेक्शन सेट करण्यासाठी अॅपला परवानगी दिली.\n\nहा अॅप ईमेल, अॅप्स आणि वेबसाइटसह, आपल्या डिव्हाइस आणि नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"आपला कार्य प्रोफाईल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केलेला आहे.\n\nआपला प्रशासक आपल्या ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह आपल्या नेटवर्क क्रियाकलापांचे परीक्षण करण्यास सक्षम आहे.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"आपले डिव्हाइस याद्वारे व्यवस्थापित केले आहे:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nआपला प्रोफाईल याद्वारे व्यवस्थापित केला आहे:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nआपला प्रशासक ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह, आपल्या डिव्हाइसचे आणि नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"आपण VPN कनेक्शन सेट करण्यासाठी एखाद्या अॅपला परवानगी दिली आहे.\n\nहा अॅप ईमेल, अॅप्स आणि सुरक्षित वेबसाइट यासह, आपल्या डिव्हाइस आणि नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"आपले डिव्हाइस <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केलेले आहे.\n\nआपला प्रशासक आपल्या डिव्हाइसशी संबंधित सेटिंग्ज, कॉर्पोरेट प्रवेश, अॅप्स, डेटा आणि आपल्या डिव्हाइसच्या स्थान माहितीचे परीक्षण करू शकतो. अधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा.\n\nआपण एका VPN शी देखील कनेक्ट केलेले आहे जो आपल्या ईमेल, अॅप्स आणि वेबसाइटसह आपल्या वैयक्तिक नेटवर्क क्रियाकलापाचे देखील परीक्षण करू शकतो.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"आपले कार्य प्रोफाईल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केले आहे.\n\nआपला प्रशासक ईमेल, अॅप्स आणि वेबसाइटसह आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करण्यास सक्षम आहे.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा.\n\nआपण एका VPN शी देखील कनेक्ट केले आहे, जो आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"आपण <xliff:g id="APPLICATION">%1$s</xliff:g> शी कनेक्ट केले आहे, जो ईमेल, अॅप्स आणि वेबसाइटसह आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"आपण <xliff:g id="APPLICATION">%1$s</xliff:g> शी कनेक्ट केले आहे, जो ईमेल, अॅप्स आणि वेबसाइटसह आपल्या वैयक्तिक नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"आपले कार्य प्रोफाईल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केले आहे. ते <xliff:g id="APPLICATION">%2$s</xliff:g> शी कनेक्ट केले आहे, जो ईमेल, अॅप्स आणि वेबसाइटसह आपल्या कार्य नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"आपले कार्य प्रोफाईल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केले आहे. ते <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> शी कनेक्ट केले आहे, जे ईमेल, अॅप्स आणि वेबसाइटसह आपल्या कार्य नेटवर्क क्रियाकलापाचे परीक्षण करू शकते.\n\nआपण <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> शी देखील कनेक्ट केले आहे, जे आपल्या वैयक्तिक नेटवर्क क्रियाकलापाचे परीक्षण करू शकते."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"आपले डिव्हाइस <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केले आहे.\n\nआपला प्रशासक आपल्या डिव्हाइसशी संबद्ध सेटिंग्ज, कॉर्पोरेट प्रवेश, अॅप्स, डेटा आणि आपल्या डिव्हाइसच्या स्थान माहितीचे परीक्षण करू शकतो आणि व्यवस्थापित करू शकतो.\n\nआपण <xliff:g id="APPLICATION">%2$s</xliff:g> शी कनेक्ट केले आहे, जो ईमेल, अॅप्स आणि वेबसाइटसह आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"आपला कार्य प्रोफाईल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारे व्यवस्थापित केलेला आहे.\n\nआपला प्रशासक आपल्या ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह आपल्या नेटवर्क क्रियाकलापांचे परीक्षण करण्यास सक्षम आहे.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा.\n\nआपण एका VPN शी देखील कनेक्ट केलेले आहे जो आपल्या नेटवर्क क्रियाकलापाचे परीक्षण करू शकतो."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"आपले डिव्हाइस <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> द्वारे व्यवस्थापित केलेले आहे.\nआपला कार्य प्रोफाईल याद्वारे व्यवस्थापित केलेला आहे: \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nआपला प्रशासक आपल्या ईमेल, अॅप्स आणि सुरक्षित वेबसाइटसह आपल्या नेटवर्क क्रियाकलापांचे परीक्षण करण्यास सक्षम आहे.\n\nअधिक माहितीसाठी, आपल्या प्रशासकाशी संपर्क साधा.\n\nआपण एका VPN शी देखील कनेक्ट केलेले आहे जो आपल्या वैयक्तिक नेटवर्क क्रियाकलापाचे देखील परीक्षण करू शकतो."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"आपण व्यक्तिचलितपणे अनलॉक करेपर्यंत डिव्हाइस लॉक केलेले राहील"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"सूचना अधिक जलद मिळवा"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"आपण अनलॉक करण्यापूर्वी त्यांना पहा"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"सर्व पहा"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"सर्व लपवा"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"आता समाप्त करा"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"विस्तृत करा"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"संकुचित करा"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"स्क्रीन पिन केलेली आहे"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"हे आपण अनपिन करेपर्यंत दृश्यामध्ये ते ठेवते. अनपिन करण्यासाठी एकाच वेळी परत आणि अलीकडील ला स्पर्श करा आणि धरून ठेवा आणि विहंगावलोकन करा."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"हे आपण अनपिन करेपर्यंत दृश्यामध्ये ते ठेवते. अनपिन करण्यासाठी स्पर्श करा आणि धरून ठेवा."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"नकार द्या"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> हा व्हॉल्यूम संवाद आहे"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"मूळ पुनर्संचयित करण्यासाठी स्पर्श करा."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"आपण आपले कार्य प्रोफाईल वापरत आहात"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"सिस्टीम UI ट्यूनर"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"एम्बेडेड बॅटरी टक्केवारी दर्शवा"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"चार्ज होत नसताना स्टेटस बार चिन्हामध्ये बॅटरी पातळी टक्केवारी दर्शवा"</string> - <string name="quick_settings" msgid="10042998191725428">"दृत सेटिंग्ज"</string> - <string name="status_bar" msgid="4877645476959324760">"स्टेटस बार"</string> - <string name="demo_mode" msgid="2389163018533514619">"डेमो मोड"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"डेमो मोड सक्षम करा"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"डेमो मोड दर्शवा"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"इथरनेट"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"अलार्म"</string> - <string name="status_bar_work" msgid="6022553324802866373">"कार्य प्रोफाईल"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"विमान मोड"</string> - <string name="add_tile" msgid="2995389510240786221">"टाइल जोडा"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"प्रसारण टाइल"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"आपण त्यापूर्वी हे बंद केल्याशिय आपला पुढील <xliff:g id="WHEN">%1$s</xliff:g> होणारा अलार्म ऐकणार नाही"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"आपण आपला <xliff:g id="WHEN">%1$s</xliff:g> वाजता होणारा पुढील अलार्म ऐकणार नाही"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> वाजता"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> रोजी"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"द्रुत सेटिंग्ज, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"हॉटस्पॉट"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"कार्य प्रोफाईल"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"सर्वांसाठी नाही तर काहींसाठी मजेदार असू शकते"</string> - <string name="tuner_warning" msgid="8730648121973575701">"सिस्टीम UI ट्यूनर आपल्याला Android वापरकर्ता इंटरफेस ट्विक आणि सानुकूल करण्याचे अनेक प्रकार देते. ही प्रयोगात्मक वैशिष्ट्ये बदलू शकतात, खंडित होऊ शकतात किंवा भविष्यातील रिलीझ मध्ये कदाचित दिसणार नाहीत. सावधगिरी बाळगून पुढे सुरु ठेवा."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ही प्रयोगात्मक वैशिष्ट्ये बदलू शकतात, खंडित होऊ शकतात किंवा भविष्यातील रिलीझ मध्ये कदाचित दिसणार नाहीत."</string> - <string name="got_it" msgid="2239653834387972602">"समजले"</string> - <string name="tuner_toast" msgid="603429811084428439">"अभिनंदन! सिस्टीम UI ट्यूनर सेटिंग्जमध्ये जोडले गेले आहे"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"सेटिंग्ज मधून काढा"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"सेटिंग्ज मधून सिस्टीम UI ट्यूनर काढून त्याची सर्व वैशिष्ट्ये वापरणे थांबवायचे?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"आपण कार्य प्रोफाईल मध्ये आहात"</string> </resources> diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml index 524f7d11d850..8ccd3244e827 100644 --- a/packages/SystemUI/res/values-ms-rMY/strings.xml +++ b/packages/SystemUI/res/values-ms-rMY/strings.xml @@ -19,16 +19,16 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="7164937344850004466">"UI Sistem"</string> + <string name="app_label" msgid="7164937344850004466">"Sistem UI"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Pdm bersih"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Alih keluar dari senarai"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Maklumat aplikasi"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Skrin terbaru anda terpapar di sini"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Buang aplikasi terbaharu"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 skrin dalam Ikhtisar"</item> - <item quantity="other" msgid="5523506463832158203">"%d skrin dalam Ikhtisar"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d skrin dalam Gambaran Keseluruhan</item> + <item quantity="one">1 skrin dalam Gambaran Keseluruhan</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Tiada pemberitahuan"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Sedang berlangsung"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Pemberitahuan"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Benarkan penyahpepijatan USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Cap jari kekunci RSA komputer ialah:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Sentiasa benarkan komputer ini"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Penyahpepijatan USB tidak dibenarkan"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Pengguna yang log masuk ke peranti ini pada masa ini tidak boleh menghidupkan penyahpepijatan USB. Untuk menggunakan ciri ini, tukar kepada pengguna utama, “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zum untuk memenuhi skrin"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Regang utk memenuhi skrin"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Menyimpan tangkapan skrin..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Cari"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Bantuan Suara"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Buka kunci"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Butang buka kunci, menunggu cap jari"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Buka kunci tanpa menggunakan cap jari"</string> <string name="unlock_label" msgid="8779712358041029439">"buka kunci"</string> <string name="phone_label" msgid="2320074140205331708">"buka telefon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"buka bantuan suara"</string> <string name="camera_label" msgid="7261107956054836961">"buka kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Pilih reka letak tugas baharu"</string> <string name="cancel" msgid="6442560571259935130">"Batal"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data dua bar."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data tiga bar."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Isyarat data penuh."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi dimatikan."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi diputuskan sambungannya."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WiFi satu bar."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WiFi dua bar."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi tiga bar."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Isyarat WiFi penuh."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Disambungkan kepada <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Disambungkan kepada <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Tiada WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX dua bar."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX tiga bar."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Isyarat WiMAX penuh."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet diputuskan sambungan."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet disambungkan."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Tiada isyarat."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Tidak disambungkan."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Tiada bar."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Tiada SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Penambatan Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mod pesawat"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Tiada kad SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Perubahan rangkaian pembawa."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateri <xliff:g id="NUMBER">%d</xliff:g> peratus."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Tetapan sistem."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ditolak."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Semua aplikasi terbaharu diketepikan."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Memulakan <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Pemberitahuan diketepikan."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bidai pemberitahuan."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Tetapan pantas."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Kunci skrin."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Tetapan"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Ikhtisar."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Tutup"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Sahkan"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Pengguna <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi dimatikan."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Mod pesawat dimatikan."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Mod pesawat dihidupkan."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Jangan ganggu dihidupkan, perkara penting sahaja."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Jangan ganggu dihidupkan, senyap sepenuhnya."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Jangan ganggu dihidupkan, tiada gangguan."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Jangan ganggu dihidupkan, penggera sahaja."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Jangan ganggu dimatikan."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Jangan ganggu dimatikan."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Jangan ganggu"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Keutamaan sahaja"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Penggera sahaja"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Senyap sepenuhnya"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Tiada gangguan"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Peranti)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Dimatikan"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Tidak Disambungkan"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tiada Rangkaian"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Dimatikan"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Tiada rangkaian Wi-Fi tersedia"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Tiada rangkaian disimpan tersedia"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Hantar"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Menghantar"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Peranti tidak bernama"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Carian"</string> <string name="description_direction_up" msgid="7169032478259485180">"Luncurkan ke atas untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Luncurkan ke kiri untuk <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Anda tidak akan diganggu oleh bunyi dan getaran kecuali daripada penggera, peringatan, acara dan pemanggil yang anda tentukan."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Tiada gangguan, walau penggera sekalipun."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Anda tidak akan diganggu oleh bunyi dan getaran kecuali daripada penggera, peringatan, acara dan pemanggil yang anda tentukan."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Peribadikan"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Mod ini menyekat SEMUA bunyi dan getaran, termasuk daripada penggera, muzik, video dan permainan. Anda masih boleh membuat panggilan telefon."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Mod ini menyekat SEMUA bunyi dan getaran, termasuk daripada penggera, muzik, video dan permainan."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Tiada gangguan"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Gangguan keutamaan sahaja"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Penggera sahaja"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Penggera anda yang seterusnya pada <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Penggera anda yang seterusnya pada <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Anda tdk akan mdgr penggera anda pd <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Pemberitahuan kurang penting di bawah"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Sentuh sekali lagi untuk membuka"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Leret ke atas untuk membuka kunci"</string> - <string name="phone_hint" msgid="4872890986869209950">"Leret dari ikon untuk telefon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Leret dari ikon untuk bantuan suara"</string> - <string name="camera_hint" msgid="7939688436797157483">"Leret dari ikon untuk kamera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Senyap sepenuhnya. Ini akan turut menyenyapkan pembaca skrin."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Senyap sepenuhnya"</string> + <string name="phone_hint" msgid="3101468054914424646">"Leret ke kanan untuk telefon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Leret ke kiri untuk kamera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Tiada gangguan"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Keutamaan sahaja"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Penggera sahaja"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Senyap\nsepenuhnya"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Semua"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Tiada\ngangguan"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Keutamaan\nsahaja"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Penggera\nsahaja"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Mengecas (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> sehingga penuh)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Tukar pengguna"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Tukar pengguna, pengguna semasa <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Pengguna semasa <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Tunjuk profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Tambah pengguna"</string> <string name="user_new_user_name" msgid="426540612051178753">"Pengguna baharu"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Mulakan semula"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ya, teruskan"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Pengguna tetamu"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Untuk memadamkan apl dan data, alih keluar pengguna tetamu"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Alih keluar tetamu untuk memadamkan apl dan data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ALIH KELUAR TETAMU"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Tambah pengguna baharu?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Apabila anda menambah pengguna baharu, orang itu perlu menyediakan ruang mereka.\n\nMana-mana pengguna boleh mengemas kini apl untuk semua pengguna lain."</string> @@ -364,15 +363,24 @@ <string name="disable_vpn" msgid="4435534311510272506">"Lumpuhkan VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Putuskan sambungan VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Peranti anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nPentadbir anda boleh memantau dan mengurus tetapan, akses korporat, apl, data yang dikaitkan dengan peranti serta maklumat lokasi peranti anda. Untuk mendapatkan maklumat lanjut, sila hubungi pentadbir anda."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Anda memberikan kebenaran kepada apl untuk menyediakan sambungan VPN.\n\nApl ini boleh memantau aktiviti peranti dan rangkaian anda, termasuk e-mel, apl dan tapak web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Profil kerja anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nPentadbir anda boleh memantau aktiviti rangkaian anda, termasuk e-mel, apl dan tapak web selamat.\n\nUntuk mendapatkan maklumat lanjut, sila hubungi pentadbir anda."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Peranti anda diurus oleh:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nProfil kerja anda diurus oleh:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nPentadbir anda boleh memantau aktiviti peranti dan rangkaian anda, termasuk e-mel, apl dan tapak web selamat.\n\nUntuk mendapatkan maklumat lanjut, sila hubungi pentadbir anda."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Anda telah memberikan kebenaran kepada apl untuk menyediakan sambungan VPN.\n\nApl ini boleh memantau aktiviti peranti dan rangkaian anda, termasuk e-mel, apl dan tapak web selamat."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Peranti anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nPentadbir anda boleh memantau dan mengurus tetapan, akses korporat, apl, data yang dikaitkan dengan peranti serta maklumat lokasi peranti anda.\n\nAnda disambungkan ke VPN, yang boleh memantau aktiviti rangkaian anda, termasuk e-mel, apl dan tapak web.\n\nUntuk mendapatkan maklumat lanjut, sila hubungi pentadbir anda."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Profil kerja anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nPentadbir anda boleh memantau aktiviti rangkaian anda, termasuk e-mel, apl dan tapak web.\n\nUntuk mendapatkan maklumat lanjut, hubungi pentadbir anda.\n\nAnda turut disambungkan ke VPN, yang boleh memantau aktiviti rangkaian anda."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Anda disambungkan ke <xliff:g id="APPLICATION">%1$s</xliff:g>, yang boleh memantau aktiviti rangkaian anda, termasuk e-mel, apl dan tapak web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Anda disambungkan ke <xliff:g id="APPLICATION">%1$s</xliff:g>, yang boleh memantau aktiviti rangkaian peribadi anda, termasuk e-mel, apl dan tapak web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Profil kerja anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Profil ini disambungkan ke <xliff:g id="APPLICATION">%2$s</xliff:g>, yang boleh memantau aktiviti rangkaian kerja anda, termasuk e-mel, apl dan tapak web.\n\nUntuk mendapatkan maklumat lanjut, sila hubungi pentadbir anda."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Profil kerja anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Profil disambungkan ke <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, yang boleh memantau aktiviti rangkaian kerja anda, termasuk e-mel, apl dan tapak web.\n\nAnda turut disambungkan ke <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, yang boleh memantau aktiviti rangkaian peribadi anda."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Peranti anda diurus oleh <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nPentadbir anda boleh memantau dan mengurus tetapan, akses korporat, apl, data yang dikaitkan dengan peranti anda serta maklumat lokasi peranti anda.\n\nAnda disambungkan ke <xliff:g id="APPLICATION">%2$s</xliff:g>, yang boleh memantau aktiviti rangkaian anda, termasuk e-mel, apl dan tapak web.\n\nUntuk mendapatkan maklumat lanjut, hubungi pentadbir anda."</string> + <!-- no translation found for monitoring_description_vpn_profile_owned (2054949132145039290) --> + <skip /> + <!-- no translation found for legacy_vpn_name (6604123105765737830) --> + <skip /> + <!-- no translation found for monitoring_description_app (6947928635272782570) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal (8506133233655324426) --> + <skip /> + <!-- no translation found for monitoring_description_app_work (808687576155832307) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal_work (7711690793960304868) --> + <skip /> + <!-- no translation found for monitoring_description_vpn_app_device_owned (4970443827043261703) --> + <skip /> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Peranti akan kekal terkunci sehingga anda membuka kunci secara manual"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Dapatkan pemberitahuan lebih cepat"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Lihat sebelum anda membuka kunci"</string> @@ -381,9 +389,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Lihat semua"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Sembunyikan semua"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Tamatkan sekarang"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Kembangkan"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Runtuhkan"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skrin telah disemat"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ini akan memastikan skrin kelihatan sehingga anda menyahsemat. Sentuh dan tahan Kembali dan Gambaran Keseluruhan pada masa yang sama untuk menyahsemat."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ini akan memastikan skrin kelihatan sehingga anda menyahsemat. Sentuh dan tahan Gambaran Keseluruhan untuk menyahsemat."</string> @@ -397,33 +402,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tolak"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ialah dialog kelantangan"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Sentuh untuk memulihkan yang asal."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Anda sedang menggunakan profil kerja"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Penala UI Sistem"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Tunjukkan peratusan bateri terbenam"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Tunjukkan peratusan aras bateri dalam ikon bar status semasa tidak mengecas"</string> - <string name="quick_settings" msgid="10042998191725428">"Tetapan Pantas"</string> - <string name="status_bar" msgid="4877645476959324760">"Bar status"</string> - <string name="demo_mode" msgid="2389163018533514619">"Mod tunjuk cara"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Dayakan mod tunjuk cara"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Tunjukkan mod tunjuk cara"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Penggera"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil kerja"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Mod pesawat"</string> - <string name="add_tile" msgid="2995389510240786221">"Tambahkan jubin"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Jubin Siaran"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Anda tidak akan mendengar penggera yang seterusnya <xliff:g id="WHEN">%1$s</xliff:g> melainkan anda mematikan ini sebelum waktu itu"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Anda tidak akan mendengar penggera yang seterusnya <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"pada <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"pada <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Tetapan Pantas, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Tempat liputan"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profil kerja"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Menarik untuk sesetengah orang tetapi bukan untuk semua"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Penala UI Sistem memberi anda cara tambahan untuk mengolah dan menyesuaikan antara muka Android. Ciri eksperimen ini boleh berubah, rosak atau hilang dalam keluaran masa hadapan. Teruskan dengan berhati-hati."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ciri eksperimen ini boleh berubah, rosak atau hilang dalam keluaran masa hadapan. Teruskan dengan berhati-hati."</string> - <string name="got_it" msgid="2239653834387972602">"Ok"</string> - <string name="tuner_toast" msgid="603429811084428439">"Tahniah! Penala UI Sistem telah ditambahkan pada Tetapan"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Alih keluar daripada Tetapan"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Alih keluar Penala UI Sistem daripada Tetapan dan berhenti menggunakan semua cirinya?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Anda berada dalam profil Kerja"</string> </resources> diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index 93ea3bcac99a..331d5d0321bf 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"အပ်ပလီကေးရှင်း အချက်အလက်များ"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"သင်၏ မကြာမီက မျက်နှာပြင်များ ဒီမှာ ပေါ်လာကြမည်"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"လတ်တလောအပ်ပလီကေးရှင်းများအား ဖယ်ထုတ်မည်"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"ခြုံကြည့်မှု ထဲက မျက်နှာပြင် ၁ ခု"</item> - <item quantity="other" msgid="5523506463832158203">"ခြုံကြည့်မှု ထဲက မျက်နှာပြင် %d ခု"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">ခြုံကြည့်မှုထဲမှ မျက်နှာပြင် %d ခု</item> + <item quantity="one">ခြုံကြည့်မှုထဲမှ မျက်နှာပြင် 1 ခု</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"အကြောင်းကြားချက်များ မရှိ"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"လက်ရှိအသုံးပြုမှု"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"အကြောင်းကြားချက်များ။"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB အမှားရှာဖွေပြင်ဆင်ခြင်း ခွင့်ပြုပါမည်လား?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ဒီကွန်ပျူတာရဲ့ RSA key fingerprint ကတော့:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g> ဖြစ်ပါသည်"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ဒီကွန်ပျူတာမှ အမြဲခွင့်ပြုရန်"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB အမှားပြင်ဆင်ခြင်း ခွင့်မပြုပါ"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ဤစက်ပစ္စည်းသို့ လက်ရှိဝင်ရောက်ထားသည့် အသုံးပြုသူသည် USB အမှားပြင်ဆင်ခြင်း ဖွင့်၍မရပါ။ ဤအင်္ဂါရပ်ကို အသုံးပြုရန်၊ အဓိကအသုံးပြုသူ “<xliff:g id="NAME">%s</xliff:g>” သို့ပြောင်းပါ။"</string> <string name="compat_mode_on" msgid="6623839244840638213">"ဖန်သားပြင်ပြည့် ချဲ့ခြင်း"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ဖန်သားပြင်အပြည့်ဆန့်ခြင်း"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ဖန်သားပြင်ဓါတ်ပုံသိမ်းစဉ်.."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ရှာဖွေရန်"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"ကင်မရာ"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ဖုန်း"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"အသံ အကူအညီ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"သော့ဖွင့်ရန်"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"ခလုတ် ဖွင့်ရန်၊ လက်ဗွေရာအား စောင့်ပါ"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"လက်ဗွေရာ မသုံးဘဲ ဖွင့်ပါ"</string> <string name="unlock_label" msgid="8779712358041029439">"သော့ဖွင့်ရန်"</string> <string name="phone_label" msgid="2320074140205331708">"ဖုန်းကို ဖွင့်ရန်"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"အသံ အကူအညီအား ဖွင့်ရန်"</string> <string name="camera_label" msgid="7261107956054836961">"ကင်မရာ ဖွင့်ရန်"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"အလုပ်သစ်စီစဥ်မှုကို ရွေးပါ။"</string> <string name="cancel" msgid="6442560571259935130">"ထားတော့"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ဒေတာထုတ်လွှင့်မှု ၂ဘားဖမ်းမိခြင်း။"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ဒေတာသုံးဘား။"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ဒေတာထုတ်လွှင့်မှုအပြည့်ဖမ်းမိခြင်း"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"ဝိုင်ဖိုင် မရှိ"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"ဝိုင်ဖိုင် ချိတ်ဆက်ထားမှု မရှိပါ"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"ဝိုင်ဖိုင် ၁ ဘားရှိ"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"ဝိုင်ဖိုင် ၂ ဘား"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"ဝိုင်ဖိုင် ၃ ဘား"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"ဝိုင်ဖိုင် အပြည့်ရှိ"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>သို့ ချိတ်ဆက်ထား။"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>သို့ ချိတ်ဆက်ထား"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ဝိုက်မက်စ် မရှိပါ"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"ဝိုင်မက်စ် ၂ ဘားရှိ"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"ဝိုင်မက်စ် ၃ ဘား"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"ဝိုင်မက်စ် အပြည့်ရှိ"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet နှင့်ချိတ်ဆက်မှုပြတ်တောက်"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet ချိတ်ဆက်ထား။"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"အချက်ပြမှု မရှိပါ"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"ချိတ်ဆက်မထားပါ"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"၀ ဘား"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"ဆင်းကဒ်မရှိပါ။"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ဘလူးတုသ်မှတဆင့်ပြန်လည်ချိတ်ဆက်ခြင်း"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"လေယာဥ်ပျံပေါ်အသုံးပြုသောစနစ်။"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM ကဒ် မရှိပါ"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"ဝန်ဆောင်မှုဌာန ကွန်ယက် ပြောင်းလဲနေစဉ်။"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ဘတ္တရီ <xliff:g id="NUMBER">%d</xliff:g> ရာခိုင်နှုန်း။"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"စနစ်အပြင်အဆင်များ"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ထုတ်ထားသည်။"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"မကြာသေးမီက အပလီကေးရှင်းများအားလုံး ဖယ်ထုတ်ပြီးပါပြီ။"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g>ကို စတင်နေသည်။"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g><xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"အကြောင်းကြားချက်ကိုဖယ်ရှားပြီး"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"အကြောင်းကြားစာအကွက်"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"အမြန်လုပ် အပြင်အဆင်"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"မျက်နှာပြင် သော့ပိတ်ရန်"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ဆက်တင်များ"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ခြုံကြည့်မှု။"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"ပိတ်ရန်"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"အတည်ပြုရန်"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"သုံးစွဲသူ <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>။"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ကြိုးမဲ့ ပိတ်ထား။"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"လေယာဉ် မုဒ်ကို ပိတ်ထားလိုက်ပြီ။"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"လေယာဉ် မုဒ်ကို ဖွင့်ထားလိုက်ပြီ။"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"မနှောင့်ယှက်ပါနှင့် ဖွင့်ထားသည်၊ ဦးစားပေးများသာ။"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"လုံးဝ တိတ်ဆိတ်နေစဉ်၊ မနှောင့်ယှက်ပါနှင့်။"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"မနှောင့်ယှက်ပါနှင့် ဖွင့်ထားသည်၊ အနှောင့်အယှက်များ မရှိပါ။"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"အနှောင့်ယှက်ရ ဖွင့်ထားသည်။ နှိုးစက်များသာ။"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"မနှောင့်ယှက်ပါနှင့် ကိုပိတ်ထားသည်။"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"မနှောင့်ယှက်ပါနှင့် ကိုပိတ်ထားသည်။"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"မနှောက်ယှက်ပါနှင့်"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ဦးစားပေးများသာ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"နှိုးစက်များသာ"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"လုံးဝ တိတ်ဆိတ်ခြင်း"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ဘလူးတု"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ဘလူးတု (<xliff:g id="NUMBER">%d</xliff:g> စက်များ)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ဘလူးတု ပိတ်ထားရန်"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"ချိတ်ဆက်မထားပါ"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ကွန်ရက်မရှိပါ"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"ဝိုင်ဖိုင်ပိတ်ရန်"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ဝိုင်ဖိုင်ကွန်ရက် မရနိုင်ပါ"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"သိမ်းဆည်းထား ကွန်ရက်များ မရှိ"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"ကာစ်တင်"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"အမည်မတပ် ကိရိယာ"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ရှာဖွေရန်"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် အပေါ်ကို ပွတ်ဆွဲပါ"</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> အတွက် ဖယ်ဘက်ကို ပွတ်ဆွဲပါ"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"နှိုးစက်များ၊ အသိပေးချက်များ၊ ဖြစ်ရပ်များ နှင့် သင်သတ်မှတ်ထားသည့် ခေါ်ဆိုသူများမှ လွဲ၍ အသံများနှင့် တုန်ခါမှုများသည် သင့်အား နှောင့်ယှက်မည် မဟုတ်ပါ။"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ကြားဖြတ်ဝင်မှုများ မရှိခဲ့။ နှိုးစက်ပင် မရှိခဲ့။"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"နှိုးစက်များ၊ အသိပေးချက်များ၊ ဖြစ်ရပ်များ၊ နှင့်သင်သတ်မှတ်ထားသည့် ခေါ်ဆိုသူများမှ လွဲ၍ အသံများနှင့် တုန်ခါမှုများသင့်ကို နှောက်ယှက်တော့မည် မဟုတ်ပါ။"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"စိတ်ကြိုက် ပြုလုပ်ရန်"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ဤအရာမှ နှိုးစက်၊ ဂီတ၊ ဗွီဒီယိုများနှင့် ဂိမ်းများ အပါအဝင်၊ အသံအားလုံးနှင့် တုန်ခါမှုများအား တားဆီးပေးသည်။ ဖုန်းခေါ်ဆိုမှုများ ပြုလုပ်နိုင်ဆဲဖြစ်မည်။"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"နှိုးစက်၊ ဂီတ၊ ဗွီဒီယိုများနှင့် ဂိမ်းများ အပါအဝင်၊ အသံအားလုံးနှင့် တုန်ခါမှုများအား ဤအရာမှ တားဆီးပေး၏။"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"ဦးစားပေး ကြားဖြတ်ဝင်မှုများ သာလျှင်"</string> + <string name="zen_alarms" msgid="5055668280767657759">"နှိုးစက်များသာ"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"သင်၏ နောက် နှိုးစက်၏ အချိန်မှာ<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"သင်၏ နောက် နှိုးစက်မှာ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"သင်သည် သင်၏ <xliff:g id="ALARM_TIME">%s</xliff:g> နှိုးစက်ကို ကြားရမည် မဟုတ်"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"အရေးပါမှု နည်းသည့် အကြောင်းကြားချက်များ အောက်မှာ"</string> <string name="notification_tap_again" msgid="8524949573675922138">"ဖွင့်ရန် ထပ်ပြီး ထိပါ"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"သော့ဖွင့်ရန် အပေါ်သို့ ပွတ်ဆွဲပါ"</string> - <string name="phone_hint" msgid="4872890986869209950">"ဖုန်းအတွက် သင်္ကေတပုံအား ပွတ်ဆွဲပါ"</string> - <string name="voice_hint" msgid="8939888732119726665">"အသံအကူအညီအတွက် သင်္ကေတပုံအား ပွတ်ဆွဲပါ"</string> - <string name="camera_hint" msgid="7939688436797157483">"ကင်မရာအတွက် သင်္ကေတပုံအား ပွတ်ဆွဲပါ"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"အသံ လုံးဝ တိတ်ထားပါ။ ဤနည်းဖြင့် ဖန်မျက်နှာပြင်ဖတ်ရှုဆော့ဖ်ဝဲ အသံတိတ်သွားမည်။"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"လုံးဝ တိတ်ဆိတ်ခြင်း"</string> + <string name="phone_hint" msgid="3101468054914424646">"ဖုန်း အတွက် ညာသို့ ပွတ်ဆွဲပါ"</string> + <string name="camera_hint" msgid="5241441720959174226">"ကင်မရာ အတွက် ဘယ်သို့ ပွတ်ဆွဲပါ"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ကြားဖြတ်ဝင်မှု ခွင့်မပြုရန်"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ဦးစားပေးများသာ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"နှိုးစက်များသာ"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"လုံးဝ\nတိတ်ဆိတ်ခြင်း"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"အားလုံး"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">\n"ကြားဝင်မှု မရှိပါ"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ဦးစားပေးမှု\nသာ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"နှိုးစက်များ\nသာ"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"(<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> အပြည့် အထိ) အားသွင်းနေ"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"အသုံးပြုသူကို ပြောင်းလဲရန်"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"အသုံးပြုသူကို ပြောင်းရန်၊ လက်ရှိ အသုံးပြုသူ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"လတ်တလော သုံးစွဲသူ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"ပရိုဖိုင်ကို ပြရန်"</string> <string name="user_add_user" msgid="5110251524486079492">"သုံးသူ ထပ်ထည့်ရန်"</string> <string name="user_new_user_name" msgid="426540612051178753">"အသုံးပြုသူ အသစ်"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"အစမှ ပြန်စပါ"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ဟုတ်ကဲ့၊ ဆက်လုပ်ပါ"</string> <string name="guest_notification_title" msgid="1585278533840603063">"ဧည့်သည် အသုံးပြုသူ"</string> - <string name="guest_notification_text" msgid="335747957734796689">"App များနှင့် ဒေတာအား ဖျက်ရန်၊ တခဏသုံးစွဲသူအား ဖယ်ရှားပါ"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"အပ်များနှင့် ဒေတာများဖျက်ရန် ဧည့်သည်များကို ဖယ်ရှားမည်"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ဧည့်သည်ကို ဖယ်ထုတ်မည်"</string> <string name="user_add_user_title" msgid="4553596395824132638">"အသုံးပြုသူ အသစ်ကို ထည့်ရမလား?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"သင်က အသုံးပြုသူ အသစ် တစ်ဦးကို ထည့်ပေးလိုက်လျှင်၊ ထိုသူသည် ၎င်း၏ နေရာကို သတ်မှတ်စီစဉ်ရန် လိုအပ်မည်။\n\n အသုံးပြုသူ မည်သူမဆို ကျန်အသုံးပြုသူ အားလုံးတို့အတွက် appများကို မွမ်းမံပေးနိုင်သည်။"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN ကို ပိတ်ထားရန်"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ကို အဆက်ဖြတ်ရန်"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"သင့်စက်ကိရိယာကို<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nမှစီမံခန့်ခွဲထားပါသည်။သင့်စီမံခန့်ခွဲသူသည် ကြိုတင်ပြင်ဆင်မှုများ၊စုပေါင်းဝင်ရောက်ခွင့်၊အက်ပလီကေးရှင်းများ၊သင့်စက်ကိရိယာနှင့်ဆက်နွယ်နေသောအချက်အလက်နှင့်သင့်စက်ကိရိယာ ရဲ့နေရာအချက်အလက်များကိုကြီးကြပ်စောင့်ကြည့်နိုင်ပါသည်။အသေးစိတ်သိရှိလိုပါကသင်၏စီမံခန့်ခွဲသူကိုဆက်သွယ်ပါ။"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"VPN ချိတ်ဆက်မှုပြုလုပ်ရန် အပ်ဖ်ကို သင်ခွင့်ပြုလိုက်သည်။ \n\n ဤအပ်ဖ်သည် အီးမေးလ်များ၊ အပ်ဖ်များနှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကိုယ်ရေးကိုယ်တာကွန်ရပ် လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်သည်။"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"သင့်အလုပ်ပရိုဖိုင်းကို<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n \nမှစီမံခန့်ခွဲထားပါသည်။သင်၏စီမံခန့်ခွဲသူသည်အီးမေးလ်များ၊အက်ပလီကေးရှင်းများနှင့်၀က်ဘ်ဆိုက်များလုံခြုံမှုအပါအဝင် သင့်ကွန်ယက်လုပ်ဆောင်ချက်ကိုစောင့်ကြည့်နိုင်ပါသည်။\n \nအသေး စိတ်သိရှိလိုပါကသင်၏စီမံခန့်ခွဲသူကိုဆက်သွယ်ပါ။"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"သင့်စက်ကိရိယာကို\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nမှစီမံခန့်ခွဲထားပါသည်။သင့် ပရိုဖိုင်ကို\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g> \n\nမှစီမံခန့်ခွဲပါသည်။ သင်၏စီမံခန့်ခွဲသူသည် အီးမေးလ်များ၊ အက်ပလီကေးရှင်းများ နှင့် ဝက်ဘ်ဆိုက်များလုံခြုံမှု အပါအဝင် သင့် စက်ကိရိယာ နှင့်အင်တာနက်ကွန်ယက်လုပ်ဆောင်မှုများကို စောင့်ကြပ်နိုင်သည်။\n\nအသေးစိတ်သိလိုပါက သင်၏ စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"သင်သည် VPN ချိတ်ဆက်မှုကိုလုပ်ဆောင်ရန်အက်ပလီကေးရှင်းအားခွင့်ပြုပေးခဲ့သည်။\n\n ဒီအက်ပလီကေးရှင်းသည် အီးမေးလ်များ၊အက်ပလီကေးရှင်းများနှင့်ဝက်ဘ်ဆိုဒ်များလုံခြုံမှုအပါအဝင် သင့်စက်ကိရိယာနှင့် ကွန်ယက်ရဲ့လုပ်ဆောင် ချက်ကိုစောင့်ကြည့်နိုင်ပါသည်။"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"သင့်စက်ကိရိယာကို<xliff:g id="ORGANIZATION">%1$s</xliff:g>\n \n မှစီမံခန့်ခွဲထားပါသည်။သင့်စီမံခန့်ခွဲသူသည် ကြိုတင်ပြင်ဆင်မှုများ၊စုပေါင်းဝင်ရောက်ခွင့်၊အက်ပလီကေးရှင်းများ၊သင့်စက်ကိရိယာနှင့်ဆက်နွယ်နေသောအချက်အလက်နှင့်သင့်စက်ကိရိယာ ရဲ့နေရာအချက်အလက်များကိုကြီးကြပ်စောင့်ကြည့်နိုင်ပါသည်။ \n\n အီးမေးလ်များ၊အက်ပလီကေးရှင်းများနှင့် ဝက်ဘ်ဆိုက်များအပါအဝင်သင့်ကွန်ယက်လုပ်ဆောင်ချက်ကိုစောင့်ကြည့်နိုင်သည့် VPN ကိုချိတ်ဆက်ထားပြီဖြစ် သည်။\n\n အသေးစိတ်သိရှိလိုပါကသင်၏စီမံခန့်ခွဲသူကိုဆက်သွယ်ပါ။"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"သင့်အလုပ်ပရိုဖိုင်ကို <xliff:g id="ORGANIZATION">%1$s</xliff:g>မှ စီမံခန့်ခွဲပါသည်။ \n\nသင့်စီမံခန့်ခွဲသူသည် အီးမေးလ်များ၊ အပ်ဖ်များ၊ နှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကွန်ရက်လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်သည်။ \n\nပိုမိုသော သတင်းအချက်အလက်အတွက်၊ သင့်စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။ \n\nသင်သည် VPN သို့လည်းဆက်သွယ်ထားပြီး၊ ၎င်းသည် သင့်ကွန်ရက်လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်ပါသည်။"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"သင်သည် <xliff:g id="APPLICATION">%1$s</xliff:g> သို့ချိတ်ဆက်ထားသည်၊ ၎င်းသည် အီးမေးများ၊ အပ်ဖ်များနှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကွန်ရက်လှုပ်ရှားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"သင်သည် <xliff:g id="APPLICATION">%1$s</xliff:g> သို့ချိတ်ဆက်ထားသည်၊ ၎င်းသည် အီးမေးလ်များ၊ အပ်ဖ်များနှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကိုယ်ရေးကိုယ်တာကွန်ရပ် လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်သည်။"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"သင့်အလုပ် ပရိုဖိုင်ကို <xliff:g id="ORGANIZATION">%1$s</xliff:g> မှစီမံခန့်ခွဲသည်။ ၎င်းကို <xliff:g id="APPLICATION">%2$s</xliff:g> သို့ချိတ်ဆက်ထားသည်၊ ၎င်းသည် အီးမေးလ်များ၊ အပ်ဖ်များနှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကိုယ်ရေးကိုယ်တာကွန်ရပ် လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်သည်။ \n\nနောက်ထပ်အချက်အလက်များအတွက်၊ သင့်ကြီးကြပ်သူကို ဆက်သွယ်ပါ။"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"သင့်အလုပ် ပရိုဖိုင်ကို <xliff:g id="ORGANIZATION">%1$s</xliff:g> မှစီမံခန့်ခွဲသည်။ ၎င်းကို <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> သို့ချိတ်ဆက်ထားသည်၊ ၎င်းသည် အီးမေးလ်များ၊ အပ်ဖ်များနှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကိုယ်ရေးကိုယ်တာကွန်ရပ် လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်သည်။ \n\n သင်သည်<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ကိုလည်းချိတ်ဆက်ထားသည်၊ ၎င်းသည် သင့်ကိုယ်ရေးကိုယ်တာ ကွန်ရက် လှုပ်ရှားမှုများကို စောင့်ကြည့်နိုင်သည်။"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"သင့်စက်ကိရိယာကို <xliff:g id="ORGANIZATION">%1$s</xliff:g> မှစီမံခန့်ခွဲပါသည်။ \n\n သင်စီမံခန့်ခွဲသူသည် ကြိုတင်ပြင်ဆင်မှုများ၊ စုပေါင်းဝင်ရောက်ခွင့်၊ အပ်ဖ်များ၊ သင့်ကိရိယာနှင့် သက်ဆိုင်သော ဒေတာ၊ နှင့် သင့်ကိရိယာ၏ တည်နေရာအချိက်အလက်များကို စောင့်ကြည့်ပြီး စီမံခန့်ခွဲနိုင်သည်။ \n\nသင်သည် <xliff:g id="APPLICATION">%2$s</xliff:g> သို့ချိတ်ဆက်ထားသည်၊ ၎င်းသည် အီးမေးလ်းများ၊ အပ်ဖ်များ၊ နှင့် ဝက်ဘ်ဆိုက်များအပါအဝင် သင့်ကွန်ရက်လှုပ်ရှားမှုကို စောင့်ကြည့်နိုင်သည်။ \n\nပိုမိုသော သတင်းအချက်အလက်အတွက်၊ သင့်စီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"သင့်အလုပ်ပရိုဖိုင်းကို<xliff:g id="ORGANIZATION">%1$s</xliff:g> \n \n မှစီမံခန့်ခွဲထားပါသည်။သင်၏စီမံခန့်ခွဲသူသည်အီးမေးလ်များ၊အက်ပလီကေးရှင်းများ နှင့်ဝက်ဘ်ဆိုဒ်များလုံခြုံမှုအပါအဝင်သင့်ကွန်ယက်လုပ်ဆောင်ချက်ကိုစောင့်ကြည့်နိုင်ပါသည်။\n\n အသေး စိတ်သိရှိလိုပါကသင့်ရဲ့စီမံခန့်ခွဲသူကိုဆက်သွယ်ပါ။\n\n သင်သည်သင့်ကွန်ယက်လုပ်ဆောင်ချက်ကို စောင့်ကြည့်နိုင်သည့် VPN ကိုချိတ်ဆက်ထားပြီဖြစ်သည်။"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"သင့်စက်ကိရိယာကို<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\n မှစီမံခန့်ခွဲထားပါသည်။သင့်အလုပ်ပရိုဖိုင်းကို\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nမှစီမံခန့်ခွဲထားပါ သည်။သင့်၏စီမံခန့်ခွဲသူသည်အီးမေးလ်များ၊အက်ပလီကေးရှင်းများ နှင့်ဝက်ဘ်ဆိုဒ်လုံခြုံမှုအပါအဝင် သင့်ကွန်ယက် လုပ်ဆောင်ချက်ကိုစောင့်ကြည့်နိုင်ပါသည်။\n\n အသေးစိတ်သိရှိလိုပါကသင့်ရဲ့စီမံခန့်ခွဲသူကိုဆက်သွယ်ပါ။\n\nသင်သည်သင်၏ပုဂ္ဂိုလ်ရေးဆိုင်ရာကွန်ယက်လုပ်ဆောင်ချက်ကိုစောင့်ကြည့်နိုင်သည့် VPN ကိုချိတ်ဆက်ထားပြီဖြစ်သည်။"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"သင်က လက်ဖြင့် သော့မဖွင့်မချင်း ကိရိယာမှာ သော့ပိတ်လျက် ရှိနေမည်"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"အကြောင်းကြားချက်များ မြန်မြန်ရရန်"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"မဖွင့်ခင် ၎င်းတို့ကို ကြည့်ပါ"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"အားလုံးကို ကြည့်ရန်"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"အားလုံး ဝှက်ထားရန်"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>။ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ယခု အဆုံးသတ်ရန်"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"တိုးချဲ့ရန်"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ခေါက်သိမ်းရန်..."</string> <string name="screen_pinning_title" msgid="3273740381976175811">"မျက်နှာပြင် ပင်ထိုးပြီးပါပြီ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"သင်ပင်ဖြုတ်သည့် တိုင်အောင် ၎င်းအား မြင်ကွင်းတွင် ထားရှိပါမည်။ ပင်ဖြုတ်ရန် အနောက်နှင့် ခြုံငုံကြည့်ခြင်းကို ဖိ၍ နှိပ်ထားနိုင်သည်။"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"သင်ပင်ဖြုတ်သည့် တိုင်အောင် ၎င်းအား မြင်ကွင်းတွင် ထားရှိပါမည်။ ပင်ဖြုတ်ရန် ခြုံငုံကြည့်ခြင်းကို ဖိ၍ နှိပ်ထားနိုင်သည်။"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ငြင်းပယ်သည်"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> သည် အသံဒိုင်ယာလော့ခ်ဖြစ်သည်"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"မူရင်းအားပြန်လည်သိမ်းဆည်းရန် ထိပါ။"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"သင်သည် အလုပ်ပရိုဖိုင်းအား သုံးနေသည်"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"စနစ် UI ဖမ်းစက်"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"မြုတ်ထားသည့် ဘတ်ထရီ ရာခိုင်နှုန်းကို ပြပါ"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"အားမသွင်းနေစဉ်တွင် ဘတ်ထရီအဆင့် ရာခိုင်နှုန်းကို အခြေနေပြဘား အိုင်ကွန်တွင် ပြပါ"</string> - <string name="quick_settings" msgid="10042998191725428">"အမြန် ဆက်တင်များ"</string> - <string name="status_bar" msgid="4877645476959324760">"အခြေအနေပြနေရာ"</string> - <string name="demo_mode" msgid="2389163018533514619">"သရုပ်ပြ မုဒ်"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"သရုပ်ပြမုဒ်ကို ဖွင့်ရန်"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"သရုပ်ပြမုဒ် ပြရန်"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"အီသာနက်"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"နှိုးစက်"</string> - <string name="status_bar_work" msgid="6022553324802866373">"အလုပ် ပရိုဖိုင်"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"လေယာဉ်ပေါ်သုံးစနစ်"</string> - <string name="add_tile" msgid="2995389510240786221">"လေးထောင့်ကွက် ထည့်ရန်"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"လေးထောင့်ကွက် ထုတ်လွှင့်ရန်"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"သင့်ရဲ့ နောက်ထပ်နှိုးစက် <xliff:g id="WHEN">%1$s</xliff:g> ကိုသင်ကြားမည်မဟုတ်ပါ အကယ်၍ သင်၎င်းအချိန်မတိုင်"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g> ၌သင့်နောက်ထပ် နှိုးစက်ကို ကြားမည်မဟုတ်ပါ"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> ၌"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> တွင်"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"အမြန်ချိန်ညှိခြင်း၊ <xliff:g id="TITLE">%s</xliff:g>။"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ဟော့စပေါ့"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"အလုပ် ပရိုဖိုင်"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"အချို့သူများ အတွက် ပျော်စရာ ဖြစ်ပေမဲ့ အားလုံး အတွက် မဟုတ်ပါ"</string> - <string name="tuner_warning" msgid="8730648121973575701">"စနစ် UI ဖမ်းစက်က သင့်အတွက် Android အသုံးပြုသူ အင်တာဖေ့စ်ကို ပြောင်းကြည့်ရန် နှင့် စိတ်ကြိုက်ပြုလုပ်ရန် နည်းလမ်း အပိုများကို သင့်အတွက် စီစဉ်ပေးသည်။ ဤ စမ်းသပ်ရေး အင်္ဂါရပ်များမှာ ပြောင်းလဲ၊ ကျိုးပျက် သို့မဟုတ် ပျောက်ကွယ် သွားနိုင်သည်။ သတိထားလျက် ဆက်လက် ဆောင်ရွက်ပါ။"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ဤ စမ်းသပ်ရေး အင်္ဂါရပ်များမှာ ပြောင်းလဲ၊ ကျိုးပျက် သို့မဟုတ် ပျောက်ကွယ် သွားနိုင်သည်။ သတိထားလျက် ဆက်လက် ဆောင်ရွက်ပါ။"</string> - <string name="got_it" msgid="2239653834387972602">"ရပါပြီ"</string> - <string name="tuner_toast" msgid="603429811084428439">"ဂုဏ်ပြုပါရစေ! စနစ် UI ဖမ်းစက်ကို ဆက်တင်ထဲသို့ ထည့်ပြီးပြီ။"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"ဆက်တင် အထဲမှ ဖယ်ရှားရန်"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ဆက်တင် အထဲမှ စနစ် UI ဖမ်းစက်ကို ဖယ်ရှားလျက် ၎င်း၏ အင်္ဂါရပ်များ အားလုံး အသုံးပြုမှု ရပ်တန့်ရမလား?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"သင်သည် အလုပ်ပရိုဖိုင်တွင် ဖြစ်သည်"</string> </resources> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 37091196f858..b8fd029d7dbb 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info om appen"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"De sist brukte skjermene dine vises her"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Avvis nylige apper"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 skjerm i Oversikten"</item> - <item quantity="other" msgid="5523506463832158203">"%d skjermer i Oversikten"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d skjermer i oversikten</item> + <item quantity="one">1 skjerm i oversikten</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ingen varslinger"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Aktiviteter"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Varsler"</string> @@ -44,7 +44,7 @@ <string name="battery_saver_start_action" msgid="5576697451677486320">"Slå på batterisparing"</string> <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Innstillinger"</string> <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Trådløse nettverk"</string> - <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Rotér skjermen automatisk"</string> + <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Roter skjerm automatisk"</string> <string name="status_bar_settings_mute_label" msgid="554682549917429396">"DEMPET"</string> <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> <string name="status_bar_settings_notifications" msgid="397146176280905137">"Varsler"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Vil du tillate USB-feilsøking?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Datamaskinens nøkkelfingeravtrykk for RSA er:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Tillat alltid fra denne datamaskinen"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-feilsøking er ikke tillatt"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Brukeren som for øyeblikket er logget på denne enheten, kan ikke slå på USB-feilsøking. For å bruke denne funksjonen, bytt til hovedbrukeren «<xliff:g id="NAME">%s</xliff:g>»."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom for å fylle skjermen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Strekk for å fylle skjerm"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Lagrer skjermdumpen …"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Søk"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefonnummer"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Talehjelp"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Lås opp"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Lås opp-knappen – venter på fingeravtrykk"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Lås opp uten å bruke fingeravtrykk"</string> <string name="unlock_label" msgid="8779712358041029439">"lås opp"</string> <string name="phone_label" msgid="2320074140205331708">"åpne telefonen"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"åpne talehjelp"</string> <string name="camera_label" msgid="7261107956054836961">"åpne kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Velg en ny utforming for oppgaver"</string> <string name="cancel" msgid="6442560571259935130">"Avbryt"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data – to stolper."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data – tre stolper."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datasignal er fullt."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi er av."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi er frakoblet."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi – én stolpe."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi – to stolper."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi – tre stolper."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi-signal er ved full styrke."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Koblet til <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Koblet til <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX – to stolper."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX – tre stolper."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Fullt WiMAX-signal."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet er frakoblet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet er tilkoblet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ikke noe signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Ikke tilkoblet."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Ingen stolper."</string> @@ -146,9 +144,8 @@ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"Uten SIM."</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-internettdeling."</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-deling."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flymodus."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Mangler SIM-kort."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Bytting av operatørnettverk."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Batteri – <xliff:g id="NUMBER">%d</xliff:g> prosent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Systeminnstillinger."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> avvist."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Alle nylig brukte apper er avvist."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Starter <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Varselet ble skjult."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Varselskygge."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hurtiginnstillinger."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Låseskjerm."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Innstillinger"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Oversikt."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Lukk"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Bekreft"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Bruker: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi er slått av."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Flymodus er slått av."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Flymodus er slått på."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"«Ikke forstyrr» er på – bare prioritert."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Ikke forstyrr er slått på, full stillhet."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"«Ikke forstyrr» er på – ingen avbrytelser."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Ikke forstyrr er på – bare alarmer."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"«Ikke forstyrr» er av."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"«Ikke forstyrr» er slått av."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"«Ikke forstyrr»"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Bare prioritet"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Bare alarmer"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Total stillhet"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Ingen forstyrrelser"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheter)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth er slått av"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ikke tilkoblet"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ingen nettverk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi er av"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Ingen Wi-Fi-nettverk er tilgjengelige"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Ingen lagrede nettverk er tilgjengelige"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Casting"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Enhet uten navn"</string> @@ -278,7 +274,7 @@ <string name="quick_settings_done" msgid="3402999958839153376">"Ferdig"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Tilkoblet"</string> <string name="quick_settings_connecting" msgid="47623027419264404">"Kobler til …"</string> - <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Internettdeling"</string> + <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tilknytning"</string> <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Wi-Fi-sone"</string> <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Varsler"</string> <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Lommelykt"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Søk"</string> <string name="description_direction_up" msgid="7169032478259485180">"Dra opp for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Dra til venstre for å <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Du blir ikke forstyrret av lyder og vibrasjoner, bortsett fra alarmer, påminnelser, aktiviteter og oppringere du angir."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Ingen forstyrrelser, ikke engang alarmer."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Du blir ikke forstyrret av lyder og vibrasjoner, bortsett fra alarmer, påminnelser, aktiviteter og oppringere du angir."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Tilpass"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Dette blokkerer ALLE lyder og vibrasjoner, inkludert fra alarmer, musikk, videoer og spill. Du kan fremdeles ringe."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Dette blokkerer ALLE lyder og vibrasjoner, inkludert fra alarmer, musikk, videoer og spill."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Ingen forstyrrelser"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Bare prioriterte forstyrrelser"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Bare alarmer"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Den neste alarmen din er stilt inn kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Den neste alarmen din er stilt inn <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Du kommer ikke til å høre alarmen kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Mindre presserende varsler nedenfor"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Trykk på nytt for å åpne"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Sveip oppover for å låse opp"</string> - <string name="phone_hint" msgid="4872890986869209950">"Sveip ikonet for å åpne telefon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Sveip fra ikonet for å åpne talehjelp"</string> - <string name="camera_hint" msgid="7939688436797157483">"Sveip ikonet for å åpne kamera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Total stillhet. Dette demper også skjermlesere."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Total stillhet"</string> + <string name="phone_hint" msgid="3101468054914424646">"Sveip mot høyre for å åpne telefonen"</string> + <string name="camera_hint" msgid="5241441720959174226">"Sveip mot venstre for å åpne kameraet"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Ingen forstyrrelser"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Bare prioritet"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Bare alarmer"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Total\nstillhet"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Ingen\nforstyrrelser"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Bare\nPrioritet"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Bare\nalarmer"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Lader (fulladet om <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Bytt bruker"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Bytt bruker, gjeldende bruker er <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Gjeldende bruker: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Vis profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Legg til brukere"</string> <string name="user_new_user_name" msgid="426540612051178753">"Ny bruker"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Start på nytt"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, fortsett"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gjestebruker"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Fjern gjesten for å slette appene og dataene"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Fjern gjesten for å slette appene og dataene"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"FJERN GJEST"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Vil du legge til en ny bruker?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Når du legger til en ny bruker, må vedkommende konfigurere sitt eget område.\n\nAlle brukere kan oppdatere apper for alle andre brukere."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Deaktiver VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Koble fra VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Enheten din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratoren din kan overvåke og administrere innstillinger, bedriftstilgang, apper, data tilknyttet enheten din og enhetens posisjonsinformasjon. Hvis du vil har mer informasjon, kan du ta kontakt med administratoren."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Du ga en app tillatelse til å konfigurere en VPN-tilkobling.\n\nDenne appen kan overvåke enheten og nettverksaktiviteten din, inkludert e-post, apper og nettsteder."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Arbeidsprofilen din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratoren din kan overvåke nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder.\n\nHvis du vil ha mer informasjon, kan du ta kontakt med administratoren."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Enheten din administreres av:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nArbeidsprofilen din administreres av:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratoren din kan overvåke enheten og nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder.\n\nHvis du vil ha mer informasjon, kan du ta kontakt med administratoren."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Du ga en app tillatelse til å konfigurere en VPN-tilkobling.\n\nDenne appen kan overvåke enheten og nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Enheten din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratoren din kan overvåke og administrere innstillinger, bedriftstilgang, apper, data tilknyttet enheten din og enhetens posisjonsinformasjon.\n\nDu er koblet til et VPN, som kan overvåke nettverksaktiviteten din, inkludert e-post, apper og nettsteder.\n\nHvis du vil ha mer informasjon, kan du ta kontakt med administratoren."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Work-profilen din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratoren din kan overvåke nettverksaktiviteten din, inkludert e-post, apper og nettsteder.\n\nFor mer informasjon, ta kontakt med administratoren.\n\nDu er også koblet til et VPN, som kan overvåke nettverksaktiviteten din."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Enheten er koblet til <xliff:g id="APPLICATION">%1$s</xliff:g>, som kan overvåke nettverksaktiviteten din, inkludert e-post, apper og nettsteder."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Enheten er koblet til <xliff:g id="APPLICATION">%1$s</xliff:g>, som kan overvåke den personlige nettverksaktiviteten din, inkludert e-post, apper og nettsteder."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Work-profilen din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Den er koblet til <xliff:g id="APPLICATION">%2$s</xliff:g>, som kan overvåke nettverksaktiviteten din på jobben, inkludert e-post, apper og nettsteder.\n\nFor å få mer informasjon, ta kontakt med administratoren."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Work-profilen din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Den er koblet til <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, som kan overvåke nettverksaktiviteten din på jobben, inkludert e-post, apper og nettsteder.\n\nDu er også koblet til <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, som kan overvåke den personlige nettverksaktiviteten din."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Enheten din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratoren din kan overvåke og administrere innstillinger, bedriftstilgang, apper, data tilknyttet enheten din og enhetens posisjonsinformasjon.\n\nDu er koblet til <xliff:g id="APPLICATION">%2$s</xliff:g>, som kan overvåke nettverksaktiviteten din, inkludert e-post, apper og nettsteder.\n\nFor mer informasjon, ta kontakt med administratoren."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Arbeidsprofilen din administreres av <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministratoren din kan overvåke nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder.\n\nHvis du vil ha mer informasjon, kan du ta kontakt med administratoren.\n\nDu er også koblet til et VPN, som kan overvåke nettverksaktiviteten din."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Enheten din administreres av <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nArbeidsprofilen din administreres av:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratoren din kan overvåke nettverksaktiviteten din, inkludert e-post, apper og sikre nettsteder.\n\nHvis du vil ha mer informasjon, kan du ta kontakt med administratoren.\n\nDu er også koblet til et VPN, som kan overvåke den personlige nettverksaktiviteten"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Enheten forblir låst til du låser den opp manuelt"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Motta varsler raskere"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Se dem før du låser opp"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Se alle"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skjul alle"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Avslutt nå"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Utvid"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Skjul"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skjermen er låst"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"På denne måten blir skjermen synlig frem til du låser den opp. Trykk på og hold inne Tilbake og Oversikt samtidig for å låse opp."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"På denne måten blir skjermen synlig frem til du låser den opp. Trykk på og hold inne Tilbake og Oversikt for å låse opp."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Ikke tillat"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> er volumdialogen"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Trykk for å gå tilbake til den opprinnelige volumdialogen."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Du bruker jobbprofilen din"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Vis prosent for det innebygde batteriet"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Vis batterinivåprosenten inni statusfeltikonet når du ikke lader"</string> - <string name="quick_settings" msgid="10042998191725428">"Hurtiginnstillinger"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusrad"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo-modus"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Slå på demo-modus"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Vis demo-modus"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Work-profil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Flymodus"</string> - <string name="add_tile" msgid="2995389510240786221">"Legg til felt"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Publiser feltet"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Du hører ikke neste innstilte alarm <xliff:g id="WHEN">%1$s</xliff:g> med mindre du slår dette av i forkant"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Du hører ikke neste innstilte alarm <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Hurtiginnstillinger, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Wi-Fi-sone"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Work-profil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Gøy for noen – ikke for alle"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Med System UI Tuner har du flere måter å justere og tilpasse Android-brukergrensesnittet på. Disse eksperimentelle funksjonene kan endres, avbrytes eller fjernes i fremtidige utgivelser. Fortsett med forbehold."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Disse eksperimentelle funksjonene kan endres, avbrytes eller fjernes i fremtidige utgivelser. Fortsett med forbehold."</string> - <string name="got_it" msgid="2239653834387972602">"Greit"</string> - <string name="tuner_toast" msgid="603429811084428439">"Gratulerer! System UI Tuner er lagt til i Innstillinger"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Fjern fra Innstillinger"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Vil du fjerne System UI Tuner fra Innstillinger og slutte å bruke alle de tilknyttede funksjonene?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Du er i Work-profilen"</string> </resources> diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml index 6773657db985..b50088fed46d 100644 --- a/packages/SystemUI/res/values-ne-rNP/strings.xml +++ b/packages/SystemUI/res/values-ne-rNP/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"अनुप्रयोगको जानकारी"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"तपाईँको हालको स्क्रिन यहाँ प्रकट हुन्छ"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"नयाँ अनुप्रयोगहरू खारेज गर्नुहोस्"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"सारांशमा 1 पर्दा"</item> - <item quantity="other" msgid="5523506463832158203">"सारांशमा %d पर्दाहरू"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other"> अवलोकनमा %d स्क्रिनहरू</item> + <item quantity="one">अवलोकनमा 1 स्क्रिन</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"कुनै सूचनाहरू छैन"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"चलिरहेको"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"सूचनाहरू"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB डिबग गर्नको लागि अनुमति दिने हो?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"कम्प्युटरको RSA कुञ्जी औंलाछाप:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"यो कम्प्युटरबाट सधैँ अनुमति दिनुहोस्"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB डिबग गर्न अनुमति छैन"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"हाल यस यन्त्रमा साइन इन भएका प्रयोगकर्ताले USB डिबग सक्रिय गर्न सक्दैन। यो विशेषता प्रयोग गर्न, \"<xliff:g id="NAME">%s</xliff:g>\" प्राथमिक प्रयोगकर्तामा स्विच गर्नुहोस्।"</string> <string name="compat_mode_on" msgid="6623839244840638213">"स्क्रिन भर्न जुम गर्नुहोस्"</string> <string name="compat_mode_off" msgid="4434467572461327898">"स्क्रिन भर्न तन्काउनुहोस्"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"स्क्रिनसट बचत गर्दै…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"खोज्नुहोस्"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"क्यामेरा"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"फोन"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"आवाज सहायता"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"खोल्नुहोस्"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"अनलक बटन, फिंगरप्रिन्ट पर्खँदै"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"तपाईँको फिंगरप्रिन्ट बिना नै अनलक गर्नुहोस्"</string> <string name="unlock_label" msgid="8779712358041029439">"खोल्नुहोस्"</string> <string name="phone_label" msgid="2320074140205331708">"फोन खोल्नुहोस्"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"आवाज सहायता खोल्नुहोस्"</string> <string name="camera_label" msgid="7261107956054836961">"क्यामेरा खोल्नुहोस्"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"नयाँ कार्य लेआउट चयन गर्नुहोस्"</string> <string name="cancel" msgid="6442560571259935130">"रद्द गर्नुहोस्"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"डेटा दुई बाधाहरू।"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"डेटा तिन बाधाहरू।"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"डेटा संकेत पूर्ण।"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"वाइफाइ बन्द।"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"वाइफाइ विच्छेद भयो।"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"वाइफाइ एक पट्टि।"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"वाइफाइ दुई पट्टि।"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"वाइफाइ तिन बारहरू।"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"वाइफाइ सङ्केत भरिएको।"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> मा जडित।"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> मा जडित।"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"वाइम्यास छैन।"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"वाइम्याक्स दुईवटा बारहरू।"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"वाइम्याक्स तिनवटा बारहरू।"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"वाइम्याक्स सङ्केत भरिएका।"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"इथरनेट विच्छेद भयो।"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"इथरनेट जोडियो।"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"सङ्केत छैन।"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"जडान नगरिएको।"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"शून्य पट्टि।"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM छैन।"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"ब्लुटुथ टेदर गर्दै।"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"हवाइजहाज मोड।"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM कार्ड छैन।"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"वाहक नेटवर्क परिवर्तन हुँदै।"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"ब्याट्रि <xliff:g id="NUMBER">%d</xliff:g> प्रतिशत"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"प्रणाली सेटिङहरू"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> खारेज गरिएको छ।"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"सबै हालका अनुप्रयोगहरू खारेज गरियो।"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g>सुरु गर्दै।"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"सूचना खारेज।"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"सूचना कक्ष।"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"द्रुत सेटिङहरू"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"स्क्रीन बन्द गर्नुहोस्।"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"सेटिङहरू"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"सारांश।"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"बन्द गर्नुहोस्"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"पुष्टि गर्नुहोस्"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"प्रयोगकर्ता <xliff:g id="USER">%s</xliff:g>।"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>।"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"वाइफाइ बन्द गरियो।"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"हवाइजहाज मोड बन्द छ।"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"हवाइजहाज मोड खोलियो।"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"प्राथमिकतालाई मात्र बाधा नपुर्याउनुहोस्।"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"बाधा नपुर्यानुहोस्, पुरै शान्त"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"बाधा नपुर्याउँनुहोस्, कुनै पनि अवरोध छैनन्।"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"बाधा नगर्नुहोस्, अलार्महरू मात्र।"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"निष्क्रियलाई बाधा नपुर्याउनुहोस्"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"निष्क्रिय गरिएकालाई अवरोध नपुर्याउनुहोस्।"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"बाधा नपुर्याउँनुहोस्"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"प्राथमिकता मात्र"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"अलार्महरू मात्र"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"पूरै शान्त"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"कुनै अवरोधहरू छैन"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"ब्लुटुथ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"ब्लुटुथ (<xliff:g id="NUMBER">%d</xliff:g> उपकरणहरू)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ब्लुटुथ बन्द"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"जोडिएको छैन"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"नेटवर्क छैन"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"वाइफाइ बन्द"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fi नेटवर्क अनुपलब्ध"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"उपलब्ध सञ्जाल सुरक्षित गरिएन"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"प्रसारण गर्दै"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"बेनाम उपकरण"</string> @@ -306,28 +302,32 @@ <string name="description_target_search" msgid="3091587249776033139">"खोज्नुहोस्"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>को लागि माथि धिसार्नुहोस्"</string> <string name="description_direction_left" msgid="7207478719805562165">"स्लाइड <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>को लागि बायाँ।"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"अलार्म, रिमाइन्डर, घटना, र तपाईँले निर्दिष्ट गर्नुहुने कलरहरू देखि बाहेक, आवाज र कम्पनले तपाईँ लाई वाधा गर्ने छैन।"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"कुनै रुकावट छैन। चेतावनी समेत छैन।"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"अलार्म, अनुस्मारक, घटनाहरु, र तपाईँले निर्दिष्ट कल देखि बाहेक, आवाज र कंपनले तपाईँ व्याकुल हुनुहुने छैन।"</string> + <string name="zen_priority_introduction" msgid="3070506961866919502">"अलार्म, अनुस्मारक, घटना, र तपाईँले निर्दिष्ट गर्नुहुने कलरहरू देखि बाहेक, आवाज र कम्पनले तपाईँ लाई वाधा गर्ने छैन।"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"अनुकूलन गर्नुहोस्"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"यसले अलार्म, संगीत, भिडियो, र खेलहरू लगायतका सबै ध्वनि र कम्पन रोक्छ। तपाईँ अझै पनि फोन कल गर्न सक्षम हुनुहुन्छ।"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"यसले अलार्म, संगीत, भिडियोहरू र खेलहरूसहित सबै ध्वनिहरू र कम्पनहरूलाई रोक्छ।"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"कुनै रुकावटहरू छैन"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"प्राथमिकता रुकावटहरूमा मात्र"</string> + <string name="zen_alarms" msgid="5055668280767657759">"अलार्महरू मात्र"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"तपाईंको अर्को सचेतक <xliff:g id="ALARM_TIME">%s</xliff:g> मा छ"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"तपाईंको अर्को सचेतक <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> हो"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> मा तपाईंले आफ्नो सचेतक सुन्नुहुने छैन"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"तल कम जरुरी सूचनाहरू"</string> <string name="notification_tap_again" msgid="8524949573675922138">"खोल्न फेरि छुनुहोस्"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"अनलक गर्न स्वाप गर्नुहोस्"</string> - <string name="phone_hint" msgid="4872890986869209950">"फोनको लागि आइकनबाट स्वाइप गर्नुहोस्"</string> - <string name="voice_hint" msgid="8939888732119726665">"आवाज सहायताका लागि आइकनबाट स्वाइप गर्नुहोस्"</string> - <string name="camera_hint" msgid="7939688436797157483">"क्यामेराको लागि आइकनबाट स्वाइप गर्नुहोस्"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"पूर्ण शान्त। यसले पनि स्क्रिन बाचकलाई शान्त गराउँछ।"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"पूरै शान्त"</string> + <string name="phone_hint" msgid="3101468054914424646">"फोनका लागि दाँया स्वाइप"</string> + <string name="camera_hint" msgid="5241441720959174226">"क्यामेराका लागि बाँया स्वाइप"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"कुनै अवरोधहरू छैनन्"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"प्राथमिकता मात्र"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"अलार्महरू मात्र"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"पूरै\nशान्त"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"सबै"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">\n" अवरोधहरू छैनन्"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"प्राथमिकता \nमात्र"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"अलार्महरू \nमात्र"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"चार्ज हुँदै (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> पूर्ण भएसम्म)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"प्रयोगकर्ता फेर्नुहोस्"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"प्रयोगकर्ता, हालको प्रयोगकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g> मा स्विच गर्नुहोस्"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"हालको प्रयोगकर्ता <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"प्रोफाइल देखाउनुहोस्"</string> <string name="user_add_user" msgid="5110251524486079492">"प्रयोगकर्ता थप्नुहोस्"</string> <string name="user_new_user_name" msgid="426540612051178753">"नयाँ प्रयोगकर्ता"</string> @@ -342,7 +342,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"सुरु गर्नुहोस्"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"हो, जारी राख्नुहोस्"</string> <string name="guest_notification_title" msgid="1585278533840603063">"अतिथि प्रयोगकर्ता"</string> - <string name="guest_notification_text" msgid="335747957734796689">"अनुप्रयोगहरू र डेटा मेटाउन, अतिथि प्रयोगकर्ता हटाउनुहोस्"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"अनुप्रयोगहरू र डेटा मेटाउन अतिथिलाई निकाल्नुहोस्"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"अतिथिलाई हटाउनुहोस्"</string> <string name="user_add_user_title" msgid="4553596395824132638">"नयाँ प्रयोगकर्ता थप्नुहुन्छ?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"जब तपाईँले नयाँ प्रयोगकर्ता थप्नुहुन्छ, त्यस प्रयोगकर्ताले आफ्नो स्थान स्थापना गर्न पर्ने छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूका लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्छन्।"</string> @@ -363,16 +363,25 @@ <string name="monitoring_title" msgid="169206259253048106">"सञ्जाल अनुगमन"</string> <string name="disable_vpn" msgid="4435534311510272506">"VPN असक्षम गर्नुहोस्"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"विच्छेद VPN"</string> - <string name="monitoring_description_device_owned" msgid="5780988291898461883">"तपाईँको यन्त्र <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासकले सेटिङहरू, कर्पोरेट पहुँच, अनुप्रयोगहरू, आफ्नो उपकरण सम्बन्धित डेटा, र उपकरणको स्थानीय जानकारीको अनुगमन तथा व्यवस्थापन गर्न सक्छ। थप जानकारीको लागि, आफ्नो प्रशासकसँग सम्पर्क राख्नुहोस्।"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"तपाईँले VPN जडान गर्न अनुप्रयोगलाई अनुमति दिनुभयो।\n\nयो अनुप्रयोगले तपाईँका यन्त्र र नेटवर्क गतिविधि लगायत इमेल, अनुप्रयोग र वेबसाइटहरू अनुगमन गर्न सक्छ।"</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"तपाईँको यन्त्र <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासकले सेटिङ्हरू, कर्पोरेट पहुँच, अनुप्रयोगहरू, आफ्नो उपकरण सम्बन्धित डेटा, र उपकरणको स्थानीय जानकारीको अनुगमन तथा व्यवस्थापन गर्न सक्छ।\n\nतपाईँ VPN सँग जडित हुनुहुन्छ, जसले तपाईँको इमेल, अनुप्रयोगहरू, र वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि अनुगमन गर्न सक्छ। \n\nथप जानकारीको लागि, आफ्नो प्रशासकसँग सम्पर्क राख्नुहोस्।"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"तपाईँको कार्य प्रोफाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g>द्वारा व्यवस्थापन गरिन्छ।.\n\nतपाईँको प्रशासक इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइटहरू लगायतका तपाईँका नेटवर्क गतिविधि अनुगमन गर्न सक्षम छ।\n\nथप जानकारीको लागि, आफ्नो प्रशासकसँग सम्पर्क राख्नुहोस्।\n\nतपाईँ VPN सँग पनि जडित हुनुहुन्छ, जसले तपाईँको नेटवर्क गतिविधि अनुगमन गर्न सक्छ।"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"तपाईँ <xliff:g id="APPLICATION">%1$s</xliff:g> सँग जडित हुनुहुन्छ जसले इ-मेल, अनुप्रयोगहरू र वेबसाइट लगायतका तपाईँका नेटवर्क गतिविधिको अनुगमन गर्न सक्छ।"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"तपाईँ <xliff:g id="APPLICATION">%1$s</xliff:g> सँग जडित हुनुहुन्छ जसले इ-मेल, अनुप्रयोगहरू र वेबसाइट लगायतका तपाईँको निजी नेटवर्क गतिविधिका अनुगमन गर्न सक्छ।"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"तपाईँको कार्य प्रोफाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ। यो <xliff:g id="APPLICATION">%2$s</xliff:g> सँग जोडिएको छ जसले इमेल, अनुप्रयोगहरू, र वेबसाइटहरू लगायतका तपाईँका नेटवर्क गतिविधि अनुगमन गर्न सक्छ।\n\nथप जानकारीको लागि, आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"तपाईँको कार्य प्रोफाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ। यो <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> सँग जोडिएको छ जसले इमेल, अनुप्रयोगहरू, र वेबसाइटहरू लगायतका तपाईँका नेटवर्क गतिविधि अनुगमन गर्न सक्छ।\n\nतपाईँ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> सँग पनि जडित हुनुहुन्छ, जसले तपाईँको व्यक्तिगत नेटवर्क गतिविधि अनुगमन गर्न सक्छ।"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"तपाईंको उपकरण <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थित गरिन्छ।\n\nतपाईंको प्रशासकले तपाईँको यन्त्र र त्यसको स्थान जानकारीमार्फत सेटिङहरू, कर्पोरेट पहुँच, अनुप्रयोगहरू, तपाईँको यन्त्रसँग सम्बद्ध डेटा र तपाईँको यन्त्रको स्थान जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।\n\nतपाईं <xliff:g id="APPLICATION">%2$s</xliff:g> सँग जडित हुनुहुन्छ जसले इमेल, अनुप्रयोगहरू, र वेबसाइटहरू लगायतका तपाईँका नेटवर्क गतिविधिका अनुगमन गर्न सक्छ।\n\nथप जानकारीको लागि तपाईको प्रशासकलाई सम्पर्क गर्नुहोस्।"</string> + <string name="monitoring_description_device_owned" msgid="5780988291898461883">"तपाईँको उपकरण <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासकले सेटिङहरू, कर्पोरेट पहुँच, अनुप्रयोगहरू, आफ्नो उपकरण सम्बन्धित डेटा, र उपकरणको स्थानीय जानकारीको अनुगमन तथा व्यवस्थापन गर्न सक्छ। थप जानकारीको लागि, आफ्नो प्रशासक संग सम्पर्क राख्नुहोस्।"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"तपाईँको कार्य प्रोफाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासक इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि अनुगमन गर्न सक्षम छ।\n\n थप जानकारीको लागि, आफ्नो प्रशासक संग सम्पर्क राख्नुहोस्।"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"तपाईँको उपकरण \n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n तपाईँको कार्य प्रोफाइल \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासकले इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइटहरू सहित आफ्नो उपकरण र सञ्जाल गतिविधि अनुगमन गर्न सक्छ।\n\n थप जानकारीको लागि, आफ्नो प्रशासक संग सम्पर्क राख्नुहोस्।"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"तपाईँले VPN जडान गर्न अनुप्रयोगलाई अनुमति दिनुभयो।\n\nयो अनुप्रयोगले तपाईको यन्त्र र नेटवर्क गतिविधि, इमेलहरु सम्मिलित, अनुप्रयोगहरू र सुरक्षित वेबसाइटहरू।"</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"तपाईँको उपकरण <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासकले सेटिङ्हरू, कर्पोरेट पहुँच, अनुप्रयोगहरू, आफ्नो उपकरण सम्बन्धित डेटा, र उपकरणको स्थानीय जानकारीको अनुगमन तथा व्यवस्थापन गर्न सक्छ।\n\nतपाईँ VPN संग जडित हुनुहुन्छ, जसले तपाईँको इमेल, अनुप्रयोगहरू, र वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि अनुगमन गर्न सक्छ। \n\nथप जानकारीको लागि, आफ्नो प्रशासक संग सम्पर्क राख्नुहोस्।"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"तपाईँको कार्य प्रोफाइल <xliff:g id="ORGANIZATION">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासकले इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि अनुगमन गर्न सक्षम छ।\n\n थप जानकारीको लागि, आफ्नो प्रशासक संग सम्पर्क राख्नुहोस्।\n\n तपाईँ VPN संग पनि जडित हुनुहुन्छ, जसले आफ्नो सञ्जाल गतिविधि अनुगमन गर्न सक्छ।"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"तपाईँको उपकरण <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\nतपाईँको कार्य प्रोफाइल \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g> द्वारा व्यवस्थापन गरिन्छ।\n\n तपाईँको प्रशासक इमेल, अनुप्रयोगहरू, र सुरक्षित वेबसाइटहरू सहित आफ्नो सञ्जाल गतिविधि अनुगमन गर्न सक्षम छ।\n\n थप जानकारीको लागि, आफ्नो प्रशासक संग सम्पर्क राख्नुहोस्।\n\n तपाईँ VPN संग पनि जडित हुनुहुन्छ, जसले आफ्नो व्यक्तिगत सञ्जाल गतिविधि अनुगमन गर्न सक्छ।"</string> + <!-- no translation found for legacy_vpn_name (6604123105765737830) --> + <skip /> + <!-- no translation found for monitoring_description_app (6947928635272782570) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal (8506133233655324426) --> + <skip /> + <!-- no translation found for monitoring_description_app_work (808687576155832307) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal_work (7711690793960304868) --> + <skip /> + <!-- no translation found for monitoring_description_vpn_app_device_owned (4970443827043261703) --> + <skip /> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"तपाईँले नखोले सम्म उपकरण बन्द रहनेछ"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"छिटो सूचनाहरू प्राप्त गर्नुहोस्"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"तपाईँले अनलक गर्नअघि तिनीहरूलाई हेर्नुहोस्"</string> @@ -381,9 +390,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"सबै हेर्नुहोस्"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"सबै लुकाउनुहोस्"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"अहिल्यै अन्त्य गर्नुहोस्"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"विस्तार गर्नुहोस्"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"संक्षिप्त पार्नुहोस्"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"पर्दा राखेका छ"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"तपाईं अनपिन सम्म यो दृश्य मा राख्छ। छुनुहोस् र अनपिन फिर्ता र सिंहावलोकन नै समय मा पकड।"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"तपाईं अनपिन सम्म यो दृश्य मा राख्छ। छुनुहोस् र अनपिन गर्न सिंहावलोकन पकड।"</string> @@ -397,33 +403,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"अस्वीकार गर्नुहोस्"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> भोल्यूम संवाद हो"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"मूल पुनर्स्थापना गर्न छुनुहोस्।"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"तपाईँले कार्य प्रोफाइल प्रयोग गर्दै हुनुहुन्छ"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"प्रणाली UI ट्युनर"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"इम्बेड गरिएको ब्याट्री प्रतिशत देखाउनुहोस्"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"चार्ज नगरेको बेला वस्तुस्थिति पट्टी आइकन भित्र ब्याट्री प्रतिशत स्तर देखाउनुहोस्"</string> - <string name="quick_settings" msgid="10042998191725428">"द्रुत सेटिङहरू"</string> - <string name="status_bar" msgid="4877645476959324760">"स्थिति पट्टी"</string> - <string name="demo_mode" msgid="2389163018533514619">"डेमो मोड"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"डेमो मोड सक्षम गर्नुहोस्"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"डेमो मोड देखाउनुहोस्"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"इथरनेट"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"अलार्म"</string> - <string name="status_bar_work" msgid="6022553324802866373">"कार्य प्रोफाइल"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"हवाइजहाज मोड"</string> - <string name="add_tile" msgid="2995389510240786221">"टाइल थप्नुहोस्"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"प्रसारण टाइल"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"तपाईँले पहिले यो बन्द नगरेसम्म आफ्नो अर्को अलार्म <xliff:g id="WHEN">%1$s</xliff:g> सुन्नुहुने छैन"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"तपाईँले आफ्नो अर्को अलार्म <xliff:g id="WHEN">%1$s</xliff:g> सुन्नुहुने छैन"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> मा"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> मा"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"द्रुत सेटिङ, <xliff:g id="TITLE">%s</xliff:g>।"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"कार्य प्रोफाइल"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"केहीका लागि रमाइलो हुन्छ तर सबैका लागि होइन"</string> - <string name="tuner_warning" msgid="8730648121973575701">"प्रणाली UI ट्युनरले तपाईँलाई Android प्रयोगकर्ता इन्टरफेस अनुकूलन गर्न र ट्विक गर्न थप तरिकाहरू प्रदान गर्छ। यी प्रयोगात्मक सुविधाहरू भावी विमोचनमा परिवर्तन हुन, बिग्रिन वा हराउन सक्ने छन्। सावधानीपूर्वक अगाडि बढ्नुहोस्।"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"यी प्रयोगात्मक सुविधाहरू भावी विमोचनहरूमा परिवर्तन हुन, बिग्रन वा हराउन सक्छन्। सावधानीपूर्वक अगाडि बढ्नुहोस्।"</string> - <string name="got_it" msgid="2239653834387972602">"बुझेँ"</string> - <string name="tuner_toast" msgid="603429811084428439">"बधाईँ छ! सेटिङहरूमा प्रणाली UI ट्युनर थप गरिएको छ"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"सेटिङहरूबाट हटाउनुहोस्"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"प्रणाली UI ट्युनर सेटिङहरूबाट हटाउने र यसका सबै सुविधाहरू प्रयोग गर्न रोक्ने हो?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"तपाईँ कार्य प्रोफाइलमा हुनुहुन्छ"</string> </resources> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index ae8b4eb0df91..846e9ebf53df 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -23,12 +23,12 @@ <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Wissen"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Verwijderen uit lijst"</string> <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"App-info"</string> - <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Je recente schermen worden hier weergegeven"</string> + <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Uw recente schermen worden hier weergegeven"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Recente apps negeren"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 scherm in Overzicht"</item> - <item quantity="other" msgid="5523506463832158203">"%d schermen in Overzicht"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d schermen in Overzicht</item> + <item quantity="one">1 scherm in Overzicht</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Geen meldingen"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Actief"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meldingen"</string> @@ -63,17 +63,15 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB-foutopsporing toestaan?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"De vingerafdruk voor de RSA-sleutel van de computer is:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Altijd toestaan vanaf deze computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-foutopsporing niet toegestaan"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"De gebruiker die momenteel is ingelogd op dit apparaat, kan USB-foutopsporing niet inschakelen. Als u deze functie wilt gebruiken, schakelt u naar de primaire gebruiker \'<xliff:g id="NAME">%s</xliff:g>\'."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom om scherm te vullen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Rek uit v. schermvulling"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Screenshot opslaan..."</string> <string name="screenshot_saving_title" msgid="8242282144535555697">"Screenshot opslaan..."</string> <string name="screenshot_saving_text" msgid="2419718443411738818">"Screenshot wordt opgeslagen."</string> <string name="screenshot_saved_title" msgid="6461865960961414961">"Screenshot gemaakt."</string> - <string name="screenshot_saved_text" msgid="1152839647677558815">"Raak aan om je screenshot te bekijken."</string> + <string name="screenshot_saved_text" msgid="1152839647677558815">"Raak aan om uw screenshot te bekijken."</string> <string name="screenshot_failed_title" msgid="705781116746922771">"Screenshot is niet gemaakt."</string> - <string name="screenshot_failed_text" msgid="1260203058661337274">"Kan geen screenshot maken wegens beperkte opslagruimte of omdat de app of je organisatie dit niet toestaat."</string> + <string name="screenshot_failed_text" msgid="1260203058661337274">"Kan geen screenshot maken wegens beperkte opslagruimte of omdat de app of uw organisatie dit niet toestaat."</string> <string name="usb_preference_title" msgid="6551050377388882787">"Opties voor USB-bestandsoverdracht"</string> <string name="use_mtp_button_title" msgid="4333504413563023626">"Koppelen als mediaspeler (MTP)"</string> <string name="use_ptp_button_title" msgid="7517127540301625751">"Koppelen als camera (PTP)"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Zoeken"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefoon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Spraakassistent"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Ontgrendelen"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Knop Ontgrendelen, wacht op vingerafdruk"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Ontgrendelen zonder je vingerafdruk te gebruiken"</string> <string name="unlock_label" msgid="8779712358041029439">"ontgrendelen"</string> <string name="phone_label" msgid="2320074140205331708">"telefoon openen"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"spraakassistent openen"</string> <string name="camera_label" msgid="7261107956054836961">"camera openen"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Nieuwe taakindeling selecteren"</string> <string name="cancel" msgid="6442560571259935130">"Annuleren"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Gegevens: twee streepjes."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Gegevens: drie streepjes."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Gegevenssignaal is op volle sterkte."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi: uitgeschakeld."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi-verbinding verbroken."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi: één streepje."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi: twee streepjes."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi: drie streepjes."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi-signaal is op volledige sterkte."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Verbonden met <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Verbonden met <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Geen WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: twee streepjes."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX: drie streepjes."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-signaal is op volle sterkte."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet-verbinding verbroken."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet verbonden."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Geen signaal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Niet verbonden."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Geen streepjes."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Geen simkaart."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-tethering."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Vliegtuigmodus."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Geen simkaart."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Netwerk van provider wordt gewijzigd."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Accu: <xliff:g id="NUMBER">%d</xliff:g> procent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Systeeminstellingen."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> verwijderd."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Alle recente apps gesloten."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> starten."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Melding verwijderd."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Meldingenpaneel."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Snelle instellingen."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Vergrendelingsscherm."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Instellingen"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overzicht."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Sluiten"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Bevestigen"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Gebruiker: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi uitgeschakeld."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Vliegtuigmodus uitgeschakeld."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Vliegtuigmodus ingeschakeld."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Niet storen aan, alleen prioriteit."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Niet storen aan, totale stilte."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Niet storen aan, geen onderbrekingen."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Niet storen aan, alleen alarmen."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Niet storen uit."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Niet storen uitgeschakeld."</string> @@ -217,7 +213,7 @@ <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-data zijn onderbroken"</string> <string name="data_usage_disabled_dialog_mobile_title" msgid="4651001290947318931">"Mobiele gegevens zijn onderbroken"</string> <string name="data_usage_disabled_dialog_title" msgid="3932437232199671967">"Gegevens zijn onderbroken"</string> - <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"Omdat de ingestelde gegevenslimiet is bereikt, heeft het apparaat het gegevensverbruik onderbroken voor de rest van deze cyclus.\n\nAls u het gegevensverbruik hervat, kan je provider kosten in rekening brengen."</string> + <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"Omdat de ingestelde gegevenslimiet is bereikt, heeft het apparaat het gegevensverbruik onderbroken voor de rest van deze cyclus.\n\nAls u het gegevensverbruik hervat, kan uw provider kosten in rekening brengen."</string> <string name="data_usage_disabled_dialog_enable" msgid="1412395410306390593">"Hervatten"</string> <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"Geen internetverbinding"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Verbonden via wifi"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Niet storen"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Alleen prioriteit"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Alleen alarmen"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Totale stilte"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Geen onderbrekingen"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> apparaten)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth uit"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Niet verbonden"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Geen netwerk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wifi uit"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Geen wifi-netwerken beschikbaar"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Geen opgeslagen netwerken beschikbaar"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Casten"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Casten"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Naamloos apparaat"</string> @@ -289,7 +285,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> gebruikt"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limiet van <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Waarschuwing voor <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <string name="recents_empty_message" msgid="8682129509540827999">"Je recente schermen worden hier weergegeven"</string> + <string name="recents_empty_message" msgid="8682129509540827999">"Uw recente schermen worden hier weergegeven"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"App-informatie"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"scherm vastzetten"</string> <string name="recents_search_bar_label" msgid="8074997400187836677">"zoeken"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Zoeken"</string> <string name="description_direction_up" msgid="7169032478259485180">"Veeg omhoog voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Veeg naar links voor <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"U wordt niet gestoord door geluiden en trillingen, behalve voor alarmen, herinneringen, afspraken en bellers die u specificeert."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Geen onderbrekingen. Zelfs geen alarm."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"U wordt niet gestoord door geluiden en trillingen, behalve voor alarmen, herinneringen, afspraken en bellers die u specificeert."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Aanpassen"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Hiermee worden ALLE geluiden en trillingen geblokkeerd, waaronder die voor alarmen, muziek, video\'s en games. U kunt wel nog steeds bellen."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Hiermee worden ALLE geluiden en trillingen geblokkeerd, waaronder die voor alarmen, muziek, video\'s en games."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Geen onderbrekingen"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Alleen prioriteitsonderbrekingen"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Alleen alarmen"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Uw volgende alarm is om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Uw volgende alarm is <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"U hoort uw alarm niet om <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Minder urgente meldingen onderaan"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Raak opnieuw aan om te openen"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Veeg omhoog om te ontgrendelen"</string> - <string name="phone_hint" msgid="4872890986869209950">"Vegen voor telefoon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Vegen vanaf pictogram voor spraakassistent"</string> - <string name="camera_hint" msgid="7939688436797157483">"Vegen voor camera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Totale stilte. Hiermee worden schermlezers ook op stil gezet."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Totale stilte"</string> + <string name="phone_hint" msgid="3101468054914424646">"Veeg naar rechts voor telefoon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Veeg naar links voor camera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Geen onderbrekingen"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Alleen prioriteit"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Alleen alarmen"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Totale\nstilte"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Alle"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Geen\nonderbrekingen"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Alleen\nprioriteit"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Alleen\nalarmen"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Opladen (vol over <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Gebruiker wijzigen"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Schakelen tussen gebruikers, huidige gebruiker <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Huidige gebruiker <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Profiel weergeven"</string> <string name="user_add_user" msgid="5110251524486079492">"Gebruiker toevoegen"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nieuwe gebruiker"</string> @@ -338,11 +337,11 @@ <string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"Alle apps en gegevens in deze sessie worden verwijderd."</string> <string name="guest_exit_guest_dialog_remove" msgid="7402231963862520531">"Verwijderen"</string> <string name="guest_wipe_session_title" msgid="6419439912885956132">"Welkom terug, gast!"</string> - <string name="guest_wipe_session_message" msgid="8476238178270112811">"Wilt u doorgaan met je sessie?"</string> + <string name="guest_wipe_session_message" msgid="8476238178270112811">"Wilt u doorgaan met uw sessie?"</string> <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Opnieuw starten"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, doorgaan"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gastgebruiker"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Verwijder gastgebruiker om apps en gegevens te verwijderen"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Verwijder de gast om apps en gegevens te wissen"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"GAST VERWIJDEREN"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Nieuwe gebruiker toevoegen?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Wanneer u een nieuwe gebruiker toevoegt, moet die persoon zijn eigen profiel instellen.\n\n1Elke gebruiker kan apps updaten voor alle andere gebruikers."</string> @@ -350,7 +349,7 @@ <string name="battery_saver_notification_text" msgid="820318788126672692">"Vermindert de prestaties en achtergrondgegevens"</string> <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Accubesparing uitschakelen"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"Inhoud verborgen"</string> - <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> gaat alles vastleggen dat wordt weergegeven op je scherm."</string> + <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> gaat alles vastleggen dat wordt weergegeven op uw scherm."</string> <string name="media_projection_remember_text" msgid="3103510882172746752">"Niet opnieuw weergeven"</string> <string name="clear_all_notifications_text" msgid="814192889771462828">"Alles wissen"</string> <string name="media_projection_action_text" msgid="8470872969457985954">"Nu starten"</string> @@ -363,16 +362,13 @@ <string name="monitoring_title" msgid="169206259253048106">"Netwerkcontrole"</string> <string name="disable_vpn" msgid="4435534311510272506">"VPN uitschakelen"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Verbinding met VPN verbreken"</string> - <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Je apparaat wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJe beheerder kan instellingen, bedrijfstoegang, apps, gegevens voor je apparaat en locatiegegevens voor je apparaat controleren en beheren. Neem voor meer informatie contact op met je beheerder."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Je hebt een app toestemming gegeven voor het instellen van een VPN-verbinding.\n\nMet deze app kan je apparaat- en netwerkactiviteit worden gecontroleerd, inclusief e-mails, apps en websites."</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Je apparaat wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJe beheerder kan instellingen, bedrijfstoegang, apps, gegevens voor je apparaat en locatiegegevens voor je apparaat controleren en beheren.\n\nU bent verbonden met een VPN, die je netwerkactiviteit kan controleren, waaronder e-mails, apps en websites.\n\nNeem voor meer informatie contact op met je beheerder."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Je werkprofiel wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJe beheerder kan je netwerkactiviteit controleren, inclusief e-mails, apps en websites.\n\nNeem contact op met je beheerder voor meer informatie.\n\nU bent ook verbonden met een VPN waarmee je netwerkactiviteit kan worden gecontroleerd."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"U bent verbonden met <xliff:g id="APPLICATION">%1$s</xliff:g>, waarmee je netwerkactiviteit kan worden gecontroleerd, inclusief e-mails, apps en websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"U bent verbonden met <xliff:g id="APPLICATION">%1$s</xliff:g>, waarmee je persoonlijke netwerkactiviteit kan worden gecontroleerd, inclusief e-mails, apps en websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Je werkprofiel wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Deze is verbonden met <xliff:g id="APPLICATION">%2$s</xliff:g>, waarmee je werkgerelateerde netwerkactiviteit kan worden gecontroleerd, inclusief e-mails, apps en websites.\n\nNeem contact op met je beheerder voor meer informatie."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Je werkprofiel wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Deze is verbonden met <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, waarmee je werkgerelateerde netwerkactiviteit kan worden gecontroleerd, inclusief e-mails, apps en websites.\n\nU bent ook verbonden met <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, waarmee je persoonlijke netwerkactiviteit kan worden gecontroleerd."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Je apparaat wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nJe beheerder kan instellingen, zakelijke toegang, apps, gekoppelde apparaatgegevens en locatiegegevens voor je apparaat controleren en beheren.\n\nU bent verbonden met <xliff:g id="APPLICATION">%2$s</xliff:g> waarmee je netwerkactiviteit kan worden gecontroleerd, inclusief e-mails, apps en websites.\n\nNeem contact op met je beheerder voor meer informatie."</string> + <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Uw apparaat wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUw beheerder kan instellingen, bedrijfstoegang, apps, gegevens voor uw apparaat en locatiegegevens voor uw apparaat controleren en beheren. Neem voor meer informatie contact op met uw beheerder."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Uw werkprofiel wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUw beheerder kan uw netwerkactiviteit controleren, inclusief e-mails, apps en veilige websites.\n\nNeem voor meer informatie contact op met uw beheerder."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Uw apparaat wordt beheerd door:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nUw werkprofiel wordt beheerd door:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nUw beheerder kan uw apparaat en netwerkactiviteit controleren, inclusief e-mails, apps en veilige websites.\n\nNeem voor meer informatie contact op met uw beheerder."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"U heeft een app toestemming gegeven een VPN-verbinding in te stellen.\n\nDeze app kan uw apparaat- en netwerkactiviteit bijhouden, waaronder e-mails, apps en beveiligde websites."</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Uw apparaat wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUw beheerder kan instellingen, bedrijfstoegang, apps, gegevens voor uw apparaat en locatiegegevens voor uw apparaat controleren en beheren.\n\nU bent verbonden met een VPN, die uw netwerkactiviteit kan controleren, waaronder e-mails, apps en websites.\n\nNeem voor meer informatie contact op met uw beheerder."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Uw werkprofiel wordt beheerd door <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUw beheerder kan uw netwerkactiviteit controleren, inclusief e-mails, apps en veilige websites.\n\nNeem voor meer informatie contact op met uw beheerder.\n\nDaarnaast bent u verbonden met een VPN, die uw netwerkactiviteit kan controleren."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Uw apparaat wordt beheerd door <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nUw werkprofiel wordt beheerd door:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nUw beheerder kan uw netwerkactiviteit controleren, inclusief e-mails, apps en veilige websites.\n\nNeem voor meer informatie contact op met uw beheerder.\n\nDaarnaast bent u verbonden met een VPN, die uw persoonlijke netwerkactiviteit kan controleren."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Het apparaat blijft vergrendeld totdat u het handmatig ontgrendelt"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Sneller meldingen ontvangen"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Weergeven voordat u ontgrendelt"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Alles weergeven"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Alles verbergen"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Nu uitschakelen"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Uitvouwen"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Samenvouwen"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Scherm is vastgezet"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Het scherm blijft zichtbaar totdat u het u losmaakt. Houd \'Terug\' en \'Overzicht\' tegelijkertijd aangeraakt om het los te maken."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Het scherm blijft zichtbaar totdat u het u losmaakt. Houd \'Overzicht\' aangeraakt om het los te maken."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Afwijzen"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> is het volumedialoogvenster"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tik hierop om het origineel te herstellen."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"U gebruikt je werkprofiel"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Systeem-UI-tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Percentage ingebouwde accu weergeven"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Accupercentage weergeven in het pictogram op de statusbalk wanneer er niet wordt opgeladen"</string> - <string name="quick_settings" msgid="10042998191725428">"Snelle instellingen"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusbalk"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demomodus"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Demomodus inschakelen"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Demomodus weergeven"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Werkprofiel"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Vliegtuigmodus"</string> - <string name="add_tile" msgid="2995389510240786221">"Tegel toevoegen"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Tegel \'Uitzenden\'"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"U hoort je volgende alarm niet <xliff:g id="WHEN">%1$s</xliff:g> tenzij u dit voor die tijd uitschakelt"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"U hoort je volgende alarm niet <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"om <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"op <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Snelle instellingen, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Werkprofiel"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Leuk voor sommige gebruikers, maar niet voor iedereen"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Met Systeem-UI-tuner beschikt u over extra manieren om de Android-gebruikersinterface aan te passen. Deze experimentele functies kunnen veranderen, vastlopen of verdwijnen in toekomstige releases. Ga voorzichtig verder."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Deze experimentele functies kunnen veranderen, vastlopen of verdwijnen in toekomstige releases. Ga voorzichtig verder."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Systeem-UI-tuner is toegevoegd aan Instellingen"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Verwijderen uit Instellingen"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Systeem-UI-tuner uit Instellingen verwijderen en het gebruik van alle functies daarvan stopzetten?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"U bevindt zich in het werkprofiel"</string> </resources> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 9a9dda1f4107..aa5b044580dc 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informacje o aplikacji"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Tutaj pojawią się ostatnie ekrany"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ukryj ostatnie aplikacje"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ekran w widoku przeglądu"</item> - <item quantity="other" msgid="5523506463832158203">"Ekrany w widoku przeglądu: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="few">%d ekrany w widoku przeglądu</item> + <item quantity="many">%d ekranów w widoku przeglądu</item> + <item quantity="other">%d ekranu w widoku przeglądu</item> + <item quantity="one">1 ekran w widoku przeglądu</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Brak powiadomień"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Bieżące"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Powiadomienia"</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Zezwalać na debugowanie USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Odcisk cyfrowy klucza RSA komputera to:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Zawsze zezwalaj z tego komputera"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Debugowanie USB jest niedozwolone"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Użytkownik obecnie zalogowany na tym urządzeniu nie może włączyć debugowania USB. Aby użyć tej funkcji, przełącz się na użytkownika głównego: „<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Powiększ, aby wypełnić ekran"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Rozciągnij, aby wypełnić ekran"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Zapisywanie zrzutu ekranu..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Szukaj"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Aparat"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Asystent głosowy"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Odblokuj"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Przycisk odblokowania, oczekiwanie na odcisk palca"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Odblokuj bez używania odcisku palca"</string> <string name="unlock_label" msgid="8779712358041029439">"odblokuj"</string> <string name="phone_label" msgid="2320074140205331708">"otwórz telefon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"otwórz pomoc głosową"</string> <string name="camera_label" msgid="7261107956054836961">"otwórz aparat"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Wybierz nowy układ zadań"</string> <string name="cancel" msgid="6442560571259935130">"Anuluj"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dane: dwa paski."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Dane: trzy paski."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Dane: pełna moc sygnału."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi wyłączone."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi rozłączone."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi: jeden pasek."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi: dwa paski."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi: trzy paski."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi: pełna moc sygnału."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Połączono z <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Połączono z <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX: brak"</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: dwa paski"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX: trzy paski"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX: pełna moc sygnału"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Rozłączono z siecią Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Połączono z siecią Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Brak sygnału."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nie połączono."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Zero pasków."</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Brak karty SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Powiązanie Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Tryb samolotowy."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Brak karty SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Zmiana sieci operatora."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateria: <xliff:g id="NUMBER">%d</xliff:g> procent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Ustawienia systemu."</string> @@ -165,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g>: zamknięto."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Wszystkie ostatnie aplikacje zostały zamknięte."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Uruchamiam <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Zamknięto powiadomienie."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Obszar powiadomień."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Szybkie ustawienia."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Ekran blokady."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ustawienia"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Przegląd."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Zamknij"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Potwierdź"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Użytkownik: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi wyłączone."</string> @@ -184,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Tryb samolotowy został wyłączony."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Tryb samolotowy został włączony."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Nie przeszkadzać (włączone, tylko priorytetowe)."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Nie przeszkadzać (włączone, całkowita cisza)."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Nie przeszkadzać (włączone, bez przeszkadzania)."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Nie przeszkadzać (włączone, tylko alarmy)."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Nie przeszkadzać (wyłączone)."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Nieprzeszkadzanie wyłączone."</string> @@ -239,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nie przeszkadzać"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Tylko priorytetowe"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Tylko alarmy"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Całkowita cisza"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Bez przeszkadzania"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (urządzenia: <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth wył."</string> @@ -264,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Brak połączenia"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Brak sieci"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi wyłączone"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Brak dostępnych sieci Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Brak dostępnych zapisanych sieci"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Przesyłanie"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Przesyłam"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Urządzenie bez nazwy"</string> @@ -306,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Szukaj"</string> <string name="description_direction_up" msgid="7169032478259485180">"Przesuń w górę: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Przesuń w lewo: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Urządzenie nie będzie odtwarzać dźwięków ani włączać wibracji, z wyjątkiem wybranych przez Ciebie alarmów, przypomnień, wydarzeń i kontaktów."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Żadnych powiadomień. Nawet alarmów."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Urządzenie nie będzie odtwarzać dźwięków ani włączać wibracji, z wyjątkiem wybranych przez Ciebie alarmów, przypomnień, wydarzeń i kontaktów."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Dostosuj"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"To zablokuje WSZYSTKIE dźwięki i wibracje, w tym alarmy, muzykę, filmy i gry. Nadal będzie można wykonywać połączenia."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"To zablokuje WSZYSTKIE dźwięki i wibracje – w tym alarmy, muzykę, filmy i gry."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Bez przerw"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Tylko dźwięki priorytetowe"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Tylko alarmy"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Następny alarm o <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Następny alarm: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Nie usłyszysz alarmu o <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Poniżej widać mniej pilne powiadomienia"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Kliknij ponownie, by otworzyć"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Przesuń w górę, by odblokować"</string> - <string name="phone_hint" msgid="4872890986869209950">"Aby włączyć telefon, przesuń palcem od ikony"</string> - <string name="voice_hint" msgid="8939888732119726665">"Aby uzyskać pomoc głosową, przesuń palcem od ikony"</string> - <string name="camera_hint" msgid="7939688436797157483">"Przesuń palcem od ikony, by włączyć aparat"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Całkowita cisza. Wyciszone zostaną też czytniki ekranu."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Całkowita cisza"</string> + <string name="phone_hint" msgid="3101468054914424646">"Przesuń w prawo, by przełączyć się na telefon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Przesuń w lewo, by włączyć aparat"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Bez przeszkadzania"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Tylko priorytetowe"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Tylko alarmy"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Całkowita\ncisza"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Wszystkie"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">\n"0/}przeszkadzać"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Tylko\npriorytetowe"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Tylko\nalarmy"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Ładuje się (pełne naładowanie za <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Przełącz użytkownika"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Przełącz użytkownika. Bieżący użytkownik: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Bieżący użytkownik: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Pokaż profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Dodaj użytkownika"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nowy użytkownik"</string> @@ -342,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Rozpocznij nową"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Tak, kontynuuj"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gość"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Usuń gościa, by usunąć aplikacje i dane"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Usuń gościa, by usunąć aplikacje i dane"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"USUŃ GOŚCIA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Dodać nowego użytkownika?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Gdy dodasz nowego użytkownika, musi on skonfigurować swój profil.\n\nKażdy użytkownik może aktualizować aplikacje wszystkich innych użytkowników."</string> @@ -364,15 +365,24 @@ <string name="disable_vpn" msgid="4435534311510272506">"Wyłącz VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Rozłącz z VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Urządzeniem zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator może monitorować ustawienia, firmowe uprawnienia dostępu, aplikacje, dane powiązane z tym urządzeniem i informacje o lokalizacji urządzenia oraz nimi zarządzać. Skontaktuj się z nim, by dowiedzieć się więcej."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Aplikacja otrzymała od Ciebie uprawnienia do konfigurowania połączenia VPN.\n\nMoże ona monitorować Twoją aktywność na urządzeniu i w sieci, w tym e-maile, aplikacje i strony internetowe."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Twoim profilem do pracy zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe.\n\nSkontaktuj się z nim, by dowiedzieć się więcej."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Urządzeniem zarządza:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nTwoim profilem do pracy zarządza:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministrator może monitorować Twoje urządzenie i aktywność w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe.\n\nSkontaktuj się z nim, by dowiedzieć się więcej."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Nadałeś aplikacji uprawnienie do konfigurowania połączenia VPN.\n\nMoże ona monitorować Twoją aktywność na urządzeniu i w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Urządzeniem zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator może monitorować ustawienia, firmowe uprawnienia dostępu, aplikacje, dane powiązane z tym urządzeniem i informacje o lokalizacji urządzenia oraz nimi zarządzać.\n\nMasz połączenie z siecią VPN, która może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i strony internetowe.\n\nAby uzyskać więcej informacji, skontaktuj się z administratorem."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Twoim profilem do pracy zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i strony internetowe.\n\nSkontaktuj się z nim, by dowiedzieć się więcej.\n\nMasz też połączenie z siecią VPN, która może monitorować Twoją aktywność w sieci."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Masz połączenie z aplikacją <xliff:g id="APPLICATION">%1$s</xliff:g>, która może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i strony internetowe."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Masz połączenie z aplikacją <xliff:g id="APPLICATION">%1$s</xliff:g>, która może monitorować Twoją prywatną aktywność w sieci, w tym e-maile, aplikacje i strony internetowe."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Twoim profilem do pracy zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Profil jest połączony z aplikacją <xliff:g id="APPLICATION">%2$s</xliff:g>, która może monitorować Twoją aktywność w sieci związaną z pracą, w tym e-maile, aplikacje i strony internetowe.\n\nAby dowiedzieć się więcej, skontaktuj się z administratorem."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Twoim profilem do pracy zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Profil jest połączony z aplikacją <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, która może monitorować Twoją aktywność w sieci związaną z pracą, w tym e-maile, aplikacje i strony internetowe.\n\nMasz też połączenie z aplikacją <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, która może monitorować Twoją prywatną aktywność w sieci."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Twoim urządzeniem zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministrator może monitorować ustawienia, firmowe uprawnienia dostępu, aplikacje, dane powiązane z urządzeniem i informacje o jego lokalizacji oraz nimi zarządzać.\n\nMasz połączenie z aplikacją <xliff:g id="APPLICATION">%2$s</xliff:g>, która może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i strony internetowe.\n\nAby dowiedzieć się więcej, skontaktuj się z administratorem."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Twoim profilem do pracy zarządza <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nAdministrator może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i bezpieczne strony internetowe.\n\nSkontaktuj się z nim, by dowiedzieć się więcej.\n\nMasz także połączenie z siecią VPN, która może monitorować Twoją aktywność w sieci."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Urządzeniem zarządza <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nTwoim profilem do pracy zarządza:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministrator może monitorować Twoją aktywność w sieci, w tym e-maile, aplikacje i bezpieczne strony.\n\nSkontaktuj się z nim, by dowiedzieć się więcej.\n\nMasz także połączenie z siecią VPN, która może monitorować Twoją osobistą aktywność w sieci"</string> + <!-- no translation found for legacy_vpn_name (6604123105765737830) --> + <skip /> + <!-- no translation found for monitoring_description_app (6947928635272782570) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal (8506133233655324426) --> + <skip /> + <!-- no translation found for monitoring_description_app_work (808687576155832307) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal_work (7711690793960304868) --> + <skip /> + <!-- no translation found for monitoring_description_vpn_app_device_owned (4970443827043261703) --> + <skip /> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Urządzenie pozostanie zablokowane, aż odblokujesz je ręcznie"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Szybszy dostęp do powiadomień"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Zobacz powiadomienia, jeszcze zanim odblokujesz ekran"</string> @@ -381,9 +391,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Pokaż wszystkie"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ukrywaj wszystkie"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Zakończ teraz"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Rozwiń"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Zwiń"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekran jest przypięty"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ekran będzie widoczny, dopóki go nie odepniesz. Aby to zrobić, kliknij i przytrzymaj jednocześnie Wstecz i Przegląd."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ekran będzie widoczny, dopóki go nie odepniesz. Aby to zrobić, kliknij i przytrzymaj Przegląd."</string> @@ -397,33 +404,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmów"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> steruje głośnością"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Dotknij, by przywrócić pierwotną."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Używasz profilu do pracy"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Kalibrator System UI"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Pokaż procent naładowania baterii"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Pokaż procent naładowania baterii w ikonie na pasku stanu, gdy telefon się nie ładuje"</string> - <string name="quick_settings" msgid="10042998191725428">"Szybkie ustawienia"</string> - <string name="status_bar" msgid="4877645476959324760">"Pasek stanu"</string> - <string name="demo_mode" msgid="2389163018533514619">"Tryb demonstracyjny"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Włącz tryb demonstracyjny"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Pokaż tryb demonstracyjny"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil do pracy"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Tryb samolotowy"</string> - <string name="add_tile" msgid="2995389510240786221">"Dodaj nazwę"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Rozgłaszana nazwa"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Nie usłyszysz swojego następnego alarmu (<xliff:g id="WHEN">%1$s</xliff:g>), jeśli nie wyłączysz do tego czasu tej funkcji"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Nie usłyszysz swojego następnego alarmu <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"o <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"w: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Szybkie ustawienia, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profil do pracy"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Dobra zabawa, ale nie dla każdego"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Kalibrator System UI udostępnia dodatkowe sposoby dostrajania i dostosowywania interfejsu Androida. Te eksperymentalne funkcje mogą się zmienić, popsuć lub zniknąć w przyszłych wersjach. Zachowaj ostrożność."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Te eksperymentalne funkcje mogą się zmienić, popsuć lub zniknąć w przyszłych wersjach. Zachowaj ostrożność."</string> - <string name="got_it" msgid="2239653834387972602">"Rozumiem"</string> - <string name="tuner_toast" msgid="603429811084428439">"Gratulujemy, Kalibrator System UI został dodany do Ustawień"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Usuń z Ustawień"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Usunąć Kalibrator System UI z Ustawień i przestać używać wszystkich jego funkcji?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Korzystasz z profilu do pracy"</string> </resources> diff --git a/packages/SystemUI/res/values-pt-rBR-land/strings.xml b/packages/SystemUI/res/values-pt-rBR-land/strings.xml deleted file mode 100644 index 7b04e7eb5586..000000000000 --- a/packages/SystemUI/res/values-pt-rBR-land/strings.xml +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright (c) 2010, The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="toast_rotation_locked" msgid="7609673011431556092">"A tela está bloqueada na orientação cenário."</string> -</resources> diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml deleted file mode 100644 index 229d0e2d79a4..000000000000 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,431 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- -/** - * Copyright (c) 2009, The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="7164937344850004466">"Interf sist"</string> - <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Limpar"</string> - <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Remover da lista"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informações do app"</string> - <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Suas telas recentes aparecem aqui"</string> - <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dispensar apps recentes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 tela em \"Visão geral\""</item> - <item quantity="other" msgid="5523506463832158203">"%d telas em \"Visão geral\""</item> - </plurals> - <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Sem notificações"</string> - <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Em andamento"</string> - <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificações"</string> - <string name="battery_low_title" msgid="6456385927409742437">"Bateria fraca"</string> - <string name="battery_low_percent_format" msgid="2900940511201380775">"<xliff:g id="PERCENTAGE">%s</xliff:g> restantes"</string> - <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"<xliff:g id="PERCENTAGE">%s</xliff:g> restantes. A Economia de bateria está ativada."</string> - <string name="invalid_charger" msgid="4549105996740522523">"O carregamento via USB não é suportado.\nUse apenas o carregador fornecido."</string> - <string name="invalid_charger_title" msgid="3515740382572798460">"O carregamento via USB não é suportado."</string> - <string name="invalid_charger_text" msgid="5474997287953892710">"Use apenas o carregador fornecido."</string> - <string name="battery_low_why" msgid="4553600287639198111">"Configurações"</string> - <string name="battery_saver_confirmation_title" msgid="5299585433050361634">"Ativar a economia de bateria?"</string> - <string name="battery_saver_confirmation_ok" msgid="7507968430447930257">"Ativar"</string> - <string name="battery_saver_start_action" msgid="5576697451677486320">"Ativar a economia de bateria"</string> - <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"Configurações"</string> - <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string> - <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"Girar automaticamente a tela"</string> - <string name="status_bar_settings_mute_label" msgid="554682549917429396">"MUDO"</string> - <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"AUTO"</string> - <string name="status_bar_settings_notifications" msgid="397146176280905137">"Notificações"</string> - <string name="bluetooth_tethered" msgid="7094101612161133267">"Bluetooth vinculado"</string> - <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Configurar métodos de entrada"</string> - <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Teclado físico"</string> - <string name="usb_device_permission_prompt" msgid="834698001271562057">"Permitir que o app <xliff:g id="APPLICATION">%1$s</xliff:g> acesse o dispositivo USB?"</string> - <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"Permitir que o app <xliff:g id="APPLICATION">%1$s</xliff:g> acesse o acessório USB?"</string> - <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"Abrir <xliff:g id="ACTIVITY">%1$s</xliff:g> quando este dispositivo USB estiver conectado?"</string> - <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"Abrir <xliff:g id="ACTIVITY">%1$s</xliff:g> quando este acessório USB estiver conectado?"</string> - <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"Nenhum apl. instalado funciona com o USB. Saiba mais sobre o acessório em <xliff:g id="URL">%1$s</xliff:g>"</string> - <string name="title_usb_accessory" msgid="4966265263465181372">"Acessório USB"</string> - <string name="label_view" msgid="6304565553218192990">"Visualizar"</string> - <string name="always_use_device" msgid="1450287437017315906">"Usar por padrão para este dispositivo USB"</string> - <string name="always_use_accessory" msgid="1210954576979621596">"Usar por padrão para este acessório USB"</string> - <string name="usb_debugging_title" msgid="4513918393387141949">"Permitir a depuração USB?"</string> - <string name="usb_debugging_message" msgid="2220143855912376496">"A impressão digital da chave RSA deste computador é:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> - <string name="usb_debugging_always" msgid="303335496705863070">"Sempre permitir a partir deste computador"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Depuração USB não permitida"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"O usuário conectado a este dispositivo não pode ativar a depuração USB. Para usar esse recurso, mude para o usuário principal \"<xliff:g id="NAME">%s</xliff:g>\"."</string> - <string name="compat_mode_on" msgid="6623839244840638213">"Zoom p/ preencher a tela"</string> - <string name="compat_mode_off" msgid="4434467572461327898">"Ampliar p/ preencher tela"</string> - <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Salvando captura de tela..."</string> - <string name="screenshot_saving_title" msgid="8242282144535555697">"Salvando captura de tela..."</string> - <string name="screenshot_saving_text" msgid="2419718443411738818">"A captura de tela está sendo salva."</string> - <string name="screenshot_saved_title" msgid="6461865960961414961">"Captura de tela obtida."</string> - <string name="screenshot_saved_text" msgid="1152839647677558815">"Toque para visualizar a captura de tela."</string> - <string name="screenshot_failed_title" msgid="705781116746922771">"Não foi possível obter a captura de tela."</string> - <string name="screenshot_failed_text" msgid="1260203058661337274">"Não é possível capturar a tela porque não há espaço suficiente ou o app ou organização não permite."</string> - <string name="usb_preference_title" msgid="6551050377388882787">"Opções transf. arq. por USB"</string> - <string name="use_mtp_button_title" msgid="4333504413563023626">"Conectar como media player (MTP)"</string> - <string name="use_ptp_button_title" msgid="7517127540301625751">"Montar como uma câmera (PTP)"</string> - <string name="installer_cd_button_title" msgid="2312667578562201583">"Instalar apl. de transf. arq. do Android para Mac"</string> - <string name="accessibility_back" msgid="567011538994429120">"Voltar"</string> - <string name="accessibility_home" msgid="8217216074895377641">"Página inicial"</string> - <string name="accessibility_menu" msgid="316839303324695949">"Menu"</string> - <string name="accessibility_recent" msgid="5208608566793607626">"Visão geral"</string> - <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string> - <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmera"</string> - <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefone"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Assistência de voz"</string> - <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloquear"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botão de desbloqueio. Aguardando impressão digital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloquear sem usar impressão digital"</string> - <string name="unlock_label" msgid="8779712358041029439">"desbloquear"</string> - <string name="phone_label" msgid="2320074140205331708">"abrir telefone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"abrir assistência de voz"</string> - <string name="camera_label" msgid="7261107956054836961">"abrir câmera"</string> - <string name="recents_caption_resize" msgid="3517056471774958200">"Selecionar novo layout da tarefa"</string> - <string name="cancel" msgid="6442560571259935130">"Cancelar"</string> - <string name="accessibility_compatibility_zoom_button" msgid="8461115318742350699">"Botão de zoom da compatibilidade."</string> - <string name="accessibility_compatibility_zoom_example" msgid="4220687294564945780">"Aumentar a tela com zoom."</string> - <string name="accessibility_bluetooth_connected" msgid="2707027633242983370">"Bluetooth conectado."</string> - <string name="accessibility_bluetooth_disconnected" msgid="7416648669976870175">"Bluetooth desconectado."</string> - <string name="accessibility_no_battery" msgid="358343022352820946">"Sem bateria."</string> - <string name="accessibility_battery_one_bar" msgid="7774887721891057523">"Uma barra de bateria."</string> - <string name="accessibility_battery_two_bars" msgid="8500650438735009973">"Duas barras de bateria."</string> - <string name="accessibility_battery_three_bars" msgid="2302983330865040446">"Três barras de bateria."</string> - <string name="accessibility_battery_full" msgid="8909122401720158582">"Bateria cheia."</string> - <string name="accessibility_no_phone" msgid="4894708937052611281">"Sem telefone."</string> - <string name="accessibility_phone_one_bar" msgid="687699278132664115">"Uma barra de sinal do telefone."</string> - <string name="accessibility_phone_two_bars" msgid="8384905382804815201">"Duas barras de sinal do telefone."</string> - <string name="accessibility_phone_three_bars" msgid="8521904843919971885">"Três barras de sinal do telefone."</string> - <string name="accessibility_phone_signal_full" msgid="6471834868580757898">"Sinal do telefone cheio."</string> - <string name="accessibility_no_data" msgid="4791966295096867555">"Nenhum dado."</string> - <string name="accessibility_data_one_bar" msgid="1415625833238273628">"Uma barra de sinal de dados."</string> - <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Duas barras de sinal de dados."</string> - <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Três barras do sinal de dados."</string> - <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinal de dados cheio."</string> - <string name="accessibility_wifi_name" msgid="7202151365171148501">"Conectado a <xliff:g id="WIFI">%s</xliff:g>."</string> - <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> - <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string> - <string name="accessibility_wimax_one_bar" msgid="4170994299011863648">"Uma barra do WiMAX."</string> - <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras do WiMAX."</string> - <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Três barras do WiMAX."</string> - <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Sinal WiMAX completo."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet desconectada."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet conectada."</string> - <string name="accessibility_no_signal" msgid="7064645320782585167">"Sem sinal."</string> - <string name="accessibility_not_connected" msgid="6395326276213402883">"Sem conexão."</string> - <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nenhuma barra."</string> - <string name="accessibility_one_bar" msgid="1685730113192081895">"Uma barra."</string> - <string name="accessibility_two_bars" msgid="6437363648385206679">"Duas barras."</string> - <string name="accessibility_three_bars" msgid="2648241415119396648">"Três barras."</string> - <string name="accessibility_signal_full" msgid="9122922886519676839">"Sinal cheio."</string> - <string name="accessibility_desc_on" msgid="2385254693624345265">"Ligado."</string> - <string name="accessibility_desc_off" msgid="6475508157786853157">"Desligado."</string> - <string name="accessibility_desc_connected" msgid="8366256693719499665">"Conectado."</string> - <string name="accessibility_desc_connecting" msgid="3812924520316280149">"Conectando."</string> - <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string> - <string name="accessibility_data_connection_1x" msgid="994133468120244018">"1 X"</string> - <string name="accessibility_data_connection_hspa" msgid="2032328855462645198">"HSPA"</string> - <string name="accessibility_data_connection_3g" msgid="8628562305003568260">"3G"</string> - <string name="accessibility_data_connection_3.5g" msgid="8664845609981692001">"3.5G"</string> - <string name="accessibility_data_connection_4g" msgid="7741000750630089612">"4G"</string> - <string name="accessibility_data_connection_lte" msgid="5413468808637540658">"LTE"</string> - <string name="accessibility_data_connection_cdma" msgid="6132648193978823023">"CDMA"</string> - <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"Roaming"</string> - <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> - <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> - <string name="accessibility_no_sim" msgid="8274017118472455155">"Sem SIM."</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Tethering Bluetooth."</string> - <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avião."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Sem cartão SIM."</string> - <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Alteração de rede de operadora."</string> - <!-- String.format failed for translation --> - <!-- no translation found for accessibility_battery_level (7451474187113371965) --> - <skip /> - <string name="accessibility_settings_button" msgid="799583911231893380">"Configurações do sistema"</string> - <string name="accessibility_notifications_button" msgid="4498000369779421892">"Notificações."</string> - <string name="accessibility_remove_notification" msgid="3603099514902182350">"Limpar notificação."</string> - <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS ativado."</string> - <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Aquisição de GPS."</string> - <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTYpewriter ativado."</string> - <string name="accessibility_ringer_vibrate" msgid="666585363364155055">"Vibração da campainha."</string> - <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Campainha silenciosa."</string> - <!-- no translation found for accessibility_casting (6887382141726543668) --> - <skip /> - <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Descartar <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> descartado."</string> - <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Todos os apps recentes foram dispensados."</string> - <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Iniciando <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> - <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificação dispensada."</string> - <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Aba de notificações."</string> - <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configurações rápidas."</string> - <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Tela de bloqueio."</string> - <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configurações"</string> - <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visão geral."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Fechar"</string> - <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuário <xliff:g id="USER">%s</xliff:g>."</string> - <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> - <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"O Wi-Fi foi desativado."</string> - <string name="accessibility_quick_settings_wifi_changed_on" msgid="6440117170789528622">"O Wi-Fi foi ativado."</string> - <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Celular <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string> - <string name="accessibility_quick_settings_battery" msgid="1480931583381408972">"Bateria <xliff:g id="STATE">%s</xliff:g>."</string> - <string name="accessibility_quick_settings_airplane_off" msgid="7786329360056634412">"Modo avião desativado."</string> - <string name="accessibility_quick_settings_airplane_on" msgid="6406141469157599296">"Modo avião ativado."</string> - <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"O modo avião foi desativado."</string> - <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"O modo avião foi ativado."</string> - <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Não perturbe\" ativado, somente prioridade."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\"Não perturbe\" ativado, silêncio total."</string> - <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Não perturbe\" ativado, somente alarmes."</string> - <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Não perturbe\" desativado."</string> - <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Não perturbe\" desativado."</string> - <string name="accessibility_quick_settings_dnd_changed_on" msgid="4483780856613561039">"\"Não perturbe\" ativado."</string> - <string name="accessibility_quick_settings_bluetooth_off" msgid="2133631372372064339">"Bluetooth desativado."</string> - <string name="accessibility_quick_settings_bluetooth_on" msgid="7681999166216621838">"Bluetooth ativado."</string> - <string name="accessibility_quick_settings_bluetooth_connecting" msgid="6953242966685343855">"Conectando Bluetooth."</string> - <string name="accessibility_quick_settings_bluetooth_connected" msgid="4306637793614573659">"Bluetooth conectado."</string> - <string name="accessibility_quick_settings_bluetooth_changed_off" msgid="2730003763480934529">"O Bluetooth foi desativado."</string> - <string name="accessibility_quick_settings_bluetooth_changed_on" msgid="8722351798763206577">"O Bluetooth foi ativado."</string> - <string name="accessibility_quick_settings_location_off" msgid="5119080556976115520">"Relatório de Localização desativado."</string> - <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"Relatório de Localização ativado."</string> - <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"O Relatório de Localização foi desativado."</string> - <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"O Relatório de Localização foi ativado."</string> - <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"Alarme definido para <xliff:g id="TIME">%s</xliff:g>."</string> - <string name="accessibility_quick_settings_close" msgid="3115847794692516306">"Fechar painel."</string> - <string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"Mais tempo."</string> - <string name="accessibility_quick_settings_less_time" msgid="2404728746293515623">"Menos tempo."</string> - <string name="accessibility_quick_settings_flashlight_off" msgid="4936432000069786988">"Lanterna desativada."</string> - <string name="accessibility_quick_settings_flashlight_on" msgid="2003479320007841077">"Lanterna ativada."</string> - <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"A lanterna foi desativada."</string> - <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"A lanterna foi ativada."</string> - <string name="accessibility_quick_settings_color_inversion_changed_off" msgid="4406577213290173911">"A inversão de cores foi desativada."</string> - <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="6897462320184911126">"A inversão de cores foi ativada."</string> - <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"O ponto de acesso móvel foi desativado."</string> - <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"O ponto de acesso móvel foi ativado."</string> - <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"A transmissão de tela foi interrompida."</string> - <string name="accessibility_brightness" msgid="8003681285547803095">"Brilho da tela"</string> - <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Os dados 2G e 3G foram pausados"</string> - <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Os dados 4G foram pausados"</string> - <string name="data_usage_disabled_dialog_mobile_title" msgid="4651001290947318931">"Os dados da rede celular foram pausados"</string> - <string name="data_usage_disabled_dialog_title" msgid="3932437232199671967">"Os dados foram pausados"</string> - <string name="data_usage_disabled_dialog" msgid="8453242888903772524">"Como seu limite de dados definido foi atingido, o dispositivo pausou o uso de dados para o restante deste ciclo.\n\nA retomada pode gerar cobranças por parte da sua operadora."</string> - <string name="data_usage_disabled_dialog_enable" msgid="1412395410306390593">"Retomar"</string> - <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"Sem conexão à Internet"</string> - <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi conectado"</string> - <string name="gps_notification_searching_text" msgid="8574247005642736060">"Buscando GPS"</string> - <string name="gps_notification_found_text" msgid="4619274244146446464">"Local definido por GPS"</string> - <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitações de localização ativas"</string> - <string name="accessibility_clear_all" msgid="5235938559247164925">"Limpar todas as notificações."</string> - <string name="status_bar_notification_inspect_item_title" msgid="5668348142410115323">"Configurações de notificação"</string> - <string name="status_bar_notification_app_settings_title" msgid="5525260160341558869">"Configurações de <xliff:g id="APP_NAME">%s</xliff:g>"</string> - <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"A tela girará automaticamente."</string> - <string name="accessibility_rotation_lock_on_landscape" msgid="6731197337665366273">"A tela está bloqueada na orientação paisagem."</string> - <string name="accessibility_rotation_lock_on_portrait" msgid="5809367521644012115">"A tela está bloqueada na orientação retrato."</string> - <string name="accessibility_rotation_lock_off_changed" msgid="8134601071026305153">"Agora a tela vai girar automaticamente."</string> - <string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"A tela está bloqueada na orientação cenário."</string> - <string name="accessibility_rotation_lock_on_portrait_changed" msgid="8922481981834012126">"A tela está bloqueada na orientação retrato."</string> - <string name="dessert_case" msgid="1295161776223959221">"Mostruário de sobremesas"</string> - <string name="start_dreams" msgid="7219575858348719790">"Daydream"</string> - <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> - <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Não perturbe"</string> - <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Só prioridade"</string> - <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Somente alarmes"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silêncio total"</string> - <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> - <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> - <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desativado"</string> - <string name="quick_settings_bluetooth_detail_empty_text" msgid="4910015762433302860">"Não há dispositivos pareados disponíveis"</string> - <string name="quick_settings_brightness_label" msgid="6968372297018755815">"Brilho"</string> - <string name="quick_settings_rotation_unlocked_label" msgid="7305323031808150099">"Rotação automática"</string> - <string name="quick_settings_rotation_locked_label" msgid="6359205706154282377">"Rotação bloqueada"</string> - <string name="quick_settings_rotation_locked_portrait_label" msgid="5102691921442135053">"Retrato"</string> - <string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"Paisagem"</string> - <string name="quick_settings_ime_label" msgid="7073463064369468429">"Método de entrada"</string> - <string name="quick_settings_location_label" msgid="5011327048748762257">"Localização"</string> - <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Localização desativada"</string> - <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Dispositivo de mídia"</string> - <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> - <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Somente chamadas de emergência"</string> - <string name="quick_settings_settings_label" msgid="5326556592578065401">"Configurações"</string> - <string name="quick_settings_time_label" msgid="4635969182239736408">"Hora"</string> - <string name="quick_settings_user_label" msgid="5238995632130897840">"Eu"</string> - <string name="quick_settings_user_title" msgid="4467690427642392403">"Usuário"</string> - <string name="quick_settings_user_new_user" msgid="9030521362023479778">"Novo usuário"</string> - <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> - <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Não conectado"</string> - <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem rede"</string> - <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desligado"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nenhuma rede Wi-Fi disponível"</string> - <string name="quick_settings_cast_title" msgid="7709016546426454729">"Transmitir"</string> - <string name="quick_settings_casting" msgid="6601710681033353316">"Transmitindo"</string> - <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sem nome"</string> - <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pronto para transmitir"</string> - <string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"Não há dispositivos disponíveis"</string> - <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brilho"</string> - <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> - <string name="quick_settings_inversion_label" msgid="8790919884718619648">"Inverter cores"</string> - <string name="quick_settings_color_space_label" msgid="853443689745584770">"Modo de correção de cor"</string> - <string name="quick_settings_more_settings" msgid="326112621462813682">"Mais configurações"</string> - <string name="quick_settings_done" msgid="3402999958839153376">"Concluído"</string> - <string name="quick_settings_connected" msgid="1722253542984847487">"Conectado"</string> - <string name="quick_settings_connecting" msgid="47623027419264404">"Conectando..."</string> - <string name="quick_settings_tethering_label" msgid="7153452060448575549">"Tethering"</string> - <string name="quick_settings_hotspot_label" msgid="6046917934974004879">"Ponto de acesso"</string> - <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Notificações"</string> - <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Lanterna"</string> - <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"Dados da rede celular"</string> - <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Uso de dados"</string> - <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"Dados restantes"</string> - <string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"Limite excedido"</string> - <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Usados: <xliff:g id="DATA_USED">%s</xliff:g>"</string> - <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Aviso de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <string name="recents_empty_message" msgid="8682129509540827999">"Suas telas recentes aparecem aqui"</string> - <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informações do app"</string> - <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fixação de tela"</string> - <string name="recents_search_bar_label" msgid="8074997400187836677">"pesquisar"</string> - <string name="recents_launch_error_message" msgid="2969287838120550506">"Não foi possível iniciar <xliff:g id="APP">%s</xliff:g>."</string> - <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Dispensar todos os apps"</string> - <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Divisão horizontal"</string> - <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Divisão vertical"</string> - <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Divisão personalizada"</string> - <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Carregada"</string> - <string name="expanded_header_battery_charging" msgid="205623198487189724">"Carregando"</string> - <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> até concluir"</string> - <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"Não está carregando"</string> - <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"A rede pode estar\nsob monitoração"</string> - <string name="description_target_search" msgid="3091587249776033139">"Pesquisar"</string> - <string name="description_direction_up" msgid="7169032478259485180">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para cima."</string> - <string name="description_direction_left" msgid="7207478719805562165">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a esquerda."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Você não será perturbado por sons e vibrações, com exceção de alarmes, lembretes, eventos e autores de chamadas que você especificar."</string> - <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Isso bloqueia TODOS os sons e vibrações, incluindo alarmes, músicas, vídeos e jogos. Você ainda poderá fazer chamadas telefônicas."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Isso bloqueia TODOS os sons e vibrações, incluindo alarmes, músicas, vídeos e jogos."</string> - <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> - <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificações menos urgentes abaixo"</string> - <string name="notification_tap_again" msgid="8524949573675922138">"Toque novamente para abrir"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Deslize para cima para desbloquear"</string> - <string name="phone_hint" msgid="4872890986869209950">"Deslize a partir do ícone do telefone"</string> - <string name="voice_hint" msgid="8939888732119726665">"Deslize a partir do ícone de assistência de voz"</string> - <string name="camera_hint" msgid="7939688436797157483">"Deslize a partir do ícone da câmera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silêncio total. Isso também silenciará os leitores de tela."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silêncio total"</string> - <string name="interruption_level_priority" msgid="6426766465363855505">"Só prioridade"</string> - <string name="interruption_level_alarms" msgid="5226306993448328896">"Somente alarmes"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silêncio\ntotal"</string> - <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Somente\nprioridade"</string> - <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Somente\nalarmes"</string> - <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até concluir)"</string> - <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Trocar usuário"</string> - <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Alternar usuário. Usuário atual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Usuário atual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostrar perfil"</string> - <string name="user_add_user" msgid="5110251524486079492">"Adicionar usuário"</string> - <string name="user_new_user_name" msgid="426540612051178753">"Novo usuário"</string> - <string name="guest_nickname" msgid="8059989128963789678">"Convidado"</string> - <string name="guest_new_guest" msgid="600537543078847803">"Adicionar convidado"</string> - <string name="guest_exit_guest" msgid="7187359342030096885">"Remover convidado"</string> - <string name="guest_exit_guest_dialog_title" msgid="8480693520521766688">"Remover convidado?"</string> - <string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"Todos os apps e dados nesta sessão serão excluídos."</string> - <string name="guest_exit_guest_dialog_remove" msgid="7402231963862520531">"Remover"</string> - <string name="guest_wipe_session_title" msgid="6419439912885956132">"Bem-vindo, convidado."</string> - <string name="guest_wipe_session_message" msgid="8476238178270112811">"Deseja continuar a sessão?"</string> - <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recomeçar"</string> - <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sim, continuar"</string> - <string name="guest_notification_title" msgid="1585278533840603063">"Usuário convidado"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Para excluir apps e dados, remova o usuário convidado"</string> - <string name="guest_notification_remove_action" msgid="8820670703892101990">"REMOVER CONVIDADO"</string> - <string name="user_add_user_title" msgid="4553596395824132638">"Adicionar novo usuário?"</string> - <string name="user_add_user_message_short" msgid="2161624834066214559">"Quando você adiciona um novo usuário, essa pessoa precisa configurar o próprio espaço.\n\nQualquer usuário pode atualizar apps para os demais usuários."</string> - <string name="battery_saver_notification_title" msgid="237918726750955859">"A Economia de bateria está ativada"</string> - <string name="battery_saver_notification_text" msgid="820318788126672692">"Reduz o desempenho e os dados em segundo plano"</string> - <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Desativar a economia de bateria"</string> - <string name="notification_hidden_text" msgid="1135169301897151909">"Conteúdo oculto"</string> - <string name="media_projection_dialog_text" msgid="3071431025448218928">"<xliff:g id="APP_SEEKING_PERMISSION">%s</xliff:g> começará a capturar tudo o que for exibido na tela."</string> - <string name="media_projection_remember_text" msgid="3103510882172746752">"Não mostrar novamente"</string> - <string name="clear_all_notifications_text" msgid="814192889771462828">"Limpar tudo"</string> - <string name="media_projection_action_text" msgid="8470872969457985954">"Iniciar agora"</string> - <string name="empty_shade_text" msgid="708135716272867002">"Sem notificações"</string> - <string name="device_owned_footer" msgid="3802752663326030053">"O dispositivo pode ser monitorado"</string> - <string name="profile_owned_footer" msgid="8021888108553696069">"O perfil pode ser monitorado"</string> - <string name="vpn_footer" msgid="2388611096129106812">"A rede pode ser monitorada"</string> - <string name="monitoring_title_device_owned" msgid="7121079311903859610">"Monitoramento de dispositivos"</string> - <string name="monitoring_title_profile_owned" msgid="6790109874733501487">"Monitoramento de perfis"</string> - <string name="monitoring_title" msgid="169206259253048106">"Monitoramento de rede"</string> - <string name="disable_vpn" msgid="4435534311510272506">"Desativar VPN"</string> - <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string> - <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar e gerenciar configurações, acesso corporativo, apps, dados associados ao dispositivo e informações sobre a localização do dispositivo. Para mais informações, entre em contato com o administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Você deu permissão para um app configurar uma conexão VPN.\n\nEsse app pode monitorar seu dispositivo e a atividade na rede, incluindo e-mails, apps e websites."</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar e gerenciar configurações, acesso corporativo, apps, dados associados ao seu dispositivo e informações sobre localização do dispositivo.\n\nVocê está conectado a uma VPN, a qual pode monitorar suas atividades de rede, incluindo e-mails, apps e websites.\n\nPara mais informações, entre em contato com seu administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Seu perfil de trabalho é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar suas atividades de rede, incluindo e-mails, apps e websites.\n\nPara mais informações, entre em contato com seu administrador.\n\nVocê também está conectado a uma VPN, a qual pode monitorar suas atividades de rede."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Você está conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode monitorar sua atividade na rede, incluindo e-mails, apps e websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Você está conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode monitorar sua atividade pessoal na rede, incluindo e-mails, apps e websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Seu perfil de trabalho é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Ele está conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode monitorar sua atividade profissional na rede, incluindo e-mails, apps e websites.\n\nPara ver mais informações, entre em contato com seu administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Seu perfil de trabalho é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Ele está conectado a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que pode monitorar sua atividade profissional na rede, incluindo e-mails, apps e websites.\n\nVocê também está conectado a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que pode monitorar sua atividade pessoal na rede."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar e gerenciar configurações, acesso corporativo, apps, dados associados ao seu dispositivo e informações sobre localização do dispositivo.\n\nVocê está conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode monitorar suas atividades de rede, incluindo e-mails, apps e websites.\n\nPara ver mais informações, entre em contato com seu administrador."</string> - <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"O dispositivo permanecerá bloqueado até que você o desbloqueie manualmente"</string> - <string name="hidden_notifications_title" msgid="7139628534207443290">"Receba notificações mais rápido"</string> - <string name="hidden_notifications_text" msgid="2326409389088668981">"Veja-as antes de desbloquear"</string> - <string name="hidden_notifications_cancel" msgid="3690709735122344913">"Não, obrigado"</string> - <string name="hidden_notifications_setup" msgid="41079514801976810">"Configurar"</string> - <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver tudo"</string> - <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar tudo"</string> - <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Finalizar agora"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expandir"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Recolher"</string> - <string name="screen_pinning_title" msgid="3273740381976175811">"A tela está fixada"</string> - <string name="screen_pinning_description" msgid="1346522416878235405">"Ela é mantida à vista até que seja liberada. Toque em \"Voltar\" e \"Visão Geral\" e mantenha essas opções pressionadas ao mesmo tempo para liberar."</string> - <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ela é mantida à vista até que seja liberada. Toque em \"Visão geral\" e mantenha essa opção pressionada para liberar."</string> - <string name="screen_pinning_positive" msgid="3783985798366751226">"Entendi"</string> - <string name="screen_pinning_negative" msgid="3741602308343880268">"Não, obrigado"</string> - <string name="quick_settings_reset_confirmation_title" msgid="748792586749897883">"Esconder <xliff:g id="TILE_LABEL">%1$s</xliff:g>?"</string> - <string name="quick_settings_reset_confirmation_message" msgid="2235970126803317374">"Ela reaparecerá na próxima vez que você ativá-la nas configurações."</string> - <string name="quick_settings_reset_confirmation_button" msgid="2660339101868367515">"Ocultar"</string> - <string name="volumeui_prompt_message" msgid="918680947433389110">"<xliff:g id="APP_NAME">%1$s</xliff:g> deseja ser a caixa de diálogo referente ao volume."</string> - <string name="volumeui_prompt_allow" msgid="7954396902482228786">"Permitir"</string> - <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Negar"</string> - <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo referente ao volume"</string> - <string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Você está usando seu perfil de trabalho"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sintonizador System UI"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostrar porcentagem de bateria incorporada"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostrar porcentagem de nível de bateria dentro do ícone da barra de status quando não estiver carregando"</string> - <string name="quick_settings" msgid="10042998191725428">"Configurações rápidas"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra de status"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modo de demonstração"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Ativar modo de demonstração"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostrar modo de demonstração"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarme"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil de trabalho"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modo avião"</string> - <string name="add_tile" msgid="2995389510240786221">"Adicionar bloco"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Transmitir bloco"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Você não ouvirá o próximo alarme às <xliff:g id="WHEN">%1$s</xliff:g>, a menos que desative essa opção antes desse horário"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Você não ouvirá o próximo alarme às <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"às <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configurações rápidas, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Ponto de acesso"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil de trabalho"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversão para alguns, mas não para todos"</string> - <string name="tuner_warning" msgid="8730648121973575701">"O sintonizador System UI fornece maneiras adicionais de ajustar e personalizar a interface do usuário do Android. Esses recursos experimentais podem mudar, falhar ou desaparecer nas versões futuras. Prossiga com cuidado."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Esses recursos experimentais podem mudar, falhar ou desaparecer nas versões futuras. Prossiga com cuidado."</string> - <string name="got_it" msgid="2239653834387972602">"Entendi"</string> - <string name="tuner_toast" msgid="603429811084428439">"Parabéns! O sintonizador System UI foi adicionado às configurações"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Remover das configurações"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Remover sintonizador System UI das configurações e parar de usar todos os seus recursos?"</string> -</resources> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index c057be04da48..f3170c116463 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informações da aplicação"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Os ecrãs recentes aparecem aqui"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ignorar aplicações recentes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ecrã na Visão geral"</item> - <item quantity="other" msgid="5523506463832158203">"%d ecrãs na Visão geral"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d ecrãs na Vista geral</item> + <item quantity="one">1 ecrã na Vista geral</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Sem notificações"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Em curso"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificações"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Permitir depuração USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"A impressão digital da chave RSA do computador é:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Permitir sempre a partir deste computador"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Depuração USB não permitida"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"O utilizador com sessão iniciada atualmente neste dispositivo não pode ativar a depuração USB. Para utilizar esta funcionalidade, mude para o utilizador principal \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom para preencher o ecrã"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Esticar p. caber em ec. int."</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"A guardar captura de ecrã..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmara"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telemóvel"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Assistente de voz"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloquear"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botão de desbloqueio, a aguardar a impressão digital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloquear sem utilizar a sua impressão digital"</string> <string name="unlock_label" msgid="8779712358041029439">"desbloquear"</string> <string name="phone_label" msgid="2320074140205331708">"abrir telemóvel"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"abrir assistente de voz"</string> <string name="camera_label" msgid="7261107956054836961">"abrir câmara"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Selecionar novo esquema de tarefa"</string> <string name="cancel" msgid="6442560571259935130">"Cancelar"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Duas barras de dados."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Três barras de dados."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinal de dados completo."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi desativada."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi desligada."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Uma barra de Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Duas barras de Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Três barras de Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Sinal Wi-Fi completo."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Ligado a <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Ligado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras de WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Três barras de WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Sinal WiMAX completo."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet desligada."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet ligada."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Sem sinal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Sem ligação."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Zero barras."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Sem SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Ligação Bluetooth via telemóvel."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo de avião"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Nenhum cartão SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Rede do operador em mudança."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Bateria a <xliff:g id="NUMBER">%d</xliff:g> por cento."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Definições do sistema"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ignorado."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Todas as aplicações recentes foram ignoradas."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"A iniciar <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificação ignorada."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Painel de notificações."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Definições rápidas."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Ecrã de bloqueio."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Definições"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visão geral."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Fechar"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmar"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilizador <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi desligado."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Modo de avião desligado."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modo de avião ligado."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Não incomodar ligado, apenas prioridade."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Não incomodar ativado, silêncio total."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Não incomodar ligado, sem interrupções."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Não incomodar ligado, apenas alarmes."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Não incomodar desligado."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Não incomodar desligado."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Não incomodar"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Apenas prioridade"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Apenas alarmes"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silêncio total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sem interrupções"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Dispositivos)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desat."</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Não Ligado"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem Rede"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Desligado"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Não estão disponíveis redes Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Sem redes guardadas disponíveis"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Transmitir"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Transmissão"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sem nome"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Pesquisar"</string> <string name="description_direction_up" msgid="7169032478259485180">"Deslize para cima para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> <string name="description_direction_left" msgid="7207478719805562165">"Deslize para a esquerda para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Não é incomodado por sons e vibrações, exceto de alarmes, lembretes, eventos e autores de chamadas que especificar."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sem interrupções. Nem mesmo alarmes."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Não é incomodado por sons e vibrações, exceto de alarmes, lembretes, eventos e autores de chamadas que especificar."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Esta ação bloqueia TODOS os sons e as vibrações, incluindo de alarmes, de músicas, de vídeos e de jogos. Continua a ser possível telefonar."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Esta ação bloqueia TODOS os sons e as vibrações, incluindo de alarmes, de músicas, de vídeos e de jogos."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Sem interrupções"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Apenas interrupções com prioridade"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Apenas alarmes"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"O próximo alarme é à(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"O próximo alarme é <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Não vai ouvir o alarme à(s) <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificações menos urgentes abaixo"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Tocar novamente para abrir"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Deslizar rapidamente com o dedo para cima para desbloquear"</string> - <string name="phone_hint" msgid="4872890986869209950">"Deslize rapid. a partir do ícone para aceder ao telemóvel"</string> - <string name="voice_hint" msgid="8939888732119726665">"Deslize rapid. a partir do ícone para aceder ao assist. voz"</string> - <string name="camera_hint" msgid="7939688436797157483">"Deslize rapidamente a partir do ícone para aceder à câmara"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silêncio total. Isto também silencia os leitores de ecrã."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silêncio total"</string> + <string name="phone_hint" msgid="3101468054914424646">"Deslize rapidamente para a direita para aceder ao telemóvel"</string> + <string name="camera_hint" msgid="5241441720959174226">"Deslize rapidamente para a esquerda para aceder à câmara"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sem interrupções"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Apenas prioridade"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Apenas alarmes"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silêncio\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Tudo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sem\ninterrupções"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Apenas\nprioridade"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Apenas\nalarmes"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"A carregar (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até à carga máxima)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Mudar utilizador"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Mudar de utilizador; o utilizador atual é <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Utilizador atual: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostrar perfil"</string> <string name="user_add_user" msgid="5110251524486079492">"Adicionar utilizador"</string> <string name="user_new_user_name" msgid="426540612051178753">"Novo utilizador"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recomeçar"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sim, continuar"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Utilizador convidado"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Para eliminar aplicações e dados, remover utiliz. convidado"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Remover convidado para eliminar aplicações e dados"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"REMOVER CONVIDADO"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Adicionar um novo utilizador?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Ao adicionar um novo utilizador, essa pessoa tem de configurar o respetivo espaço.\n\nQualquer utilizador pode atualizar aplicações para todos os outros utilizadores."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Desativar a VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Desligar VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"O seu dispositivo é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO seu administrador pode monitorizar e gerir as definições, o acesso empresarial, as aplicações, os dados associados ao dispositivo e as informações de localização do dispositivo. Para obter mais informações, contacte o administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Concedeu autorização a uma aplicação para configurar uma ligação VPN.\n\nEsta aplicação pode monitorizar a atividade do dispositivo e da rede, incluindo emails, aplicações e Websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"O seu perfil de trabalho é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO seu administrador pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações, contacte o administrador."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"O seu dispositivo é gerido por:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nO seu perfil de trabalho é gerido por:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nO seu administrador pode monitorizar a atividade do dispositivo e da rede, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações, contacte o administrador."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Concedeu autorização a uma aplicação para configurar uma ligação VPN.\n\nEsta aplicação pode monitorizar a atividade do dispositivo e da rede, incluindo emails, aplicações e Websites seguros."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"O seu dispositivo é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO seu administrador pode monitorizar e gerir as definições, o acesso empresarial, as aplicações, os dados associados ao dispositivo e as informações de localização do dispositivo.\n\nEncontra-se ligado a uma VPN, que pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites.\n\nPara obter mais informações, contacte o administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"O seu perfil de trabalho é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO seu administrador pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites.\n\nPara obter mais informações, contacte o administrador.\n\nAlém disso, está ligado a uma VPN, que pode monitorizar a atividade da rede."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Está ligado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Está ligado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode monitorizar a atividade da rede pessoal, incluindo emails, aplicações e Websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"O seu perfil de trabalho é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Está ligado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode monitorizar a atividade da rede de trabalho, incluindo emails, aplicações e Websites.\n\nPara obter mais informações, contacte o administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"O seu perfil de trabalho é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Está ligado a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que pode monitorizar a atividade da rede de trabalho, incluindo emails, aplicações e Websites.\n\nTambém está ligado a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que pode monitorizar a atividade da rede pessoal."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"O seu dispositivo é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO seu administrador pode monitorizar e gerir as definições, o acesso empresarial, as aplicações, os dados associados ao dispositivo e as informações de localização do dispositivo.\n\nEstá ligado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites.\n\nPara obter mais informações, contacte o administrador."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"O seu perfil de trabalho é gerido por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nO seu administrador pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações, contacte o administrador.\n\nAlém disso, encontra-se ligado a uma VPN, que pode monitorizar a atividade da rede."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"O seu dispositivo é gerido por <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nO seu perfil de trabalho é gerido por:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nO seu administrador pode monitorizar a atividade da rede, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações, contacte o administrador.\n\nAlém disso, encontra-se ligado a uma VPN, que pode monitorizar a sua atividade de rede pessoal."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"O dispositivo permanecerá bloqueado até ser desbloqueado manualmente"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Receber notificações mais rapidamente"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Ver antes de desbloquear"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver tudo"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar tudo"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Terminar agora"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expandir"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Reduzir"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"O ecrã está fixado"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Será mantido na vista até soltar. Toque sem soltar em Anterior e Vista geral em simultâneo para soltar."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Será mantido na vista até soltar. Toque sem soltar em Vista geral para soltar."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Recusar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo do volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Está a utilizar o seu perfil de trabalho"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sintonizador da interface do sistema"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostrar percentagem da bateria incorporada"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostrar a percentagem do nível da bateria no ícone da barra de estado quando não estiver a carregar"</string> - <string name="quick_settings" msgid="10042998191725428">"Definições rápidas"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra de estado"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modo de demonstração"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Ativar o modo de demonstração"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostrar modo de demonstração"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarme"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil de trabalho"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modo de avião"</string> - <string name="add_tile" msgid="2995389510240786221">"Adicionar mosaico"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Mosaico de transmissão"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Só vai ouvir o próximo alarme às <xliff:g id="WHEN">%1$s</xliff:g> se desativar esta funcionalidade antes dessa hora"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Não vai ouvir o próximo alarme às <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"às <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"em <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Definições rápidas, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Zona Wi-Fi"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil de trabalho"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversão para alguns, mas não para todos"</string> - <string name="tuner_warning" msgid="8730648121973575701">"O Sintonizador da interface do sistema disponibiliza-lhe formas adicionais ajustar e personalizar a interface do utilizador do Android. Estas funcionalidades experimentais podem ser alteradas, deixar de funcionar ou desaparecer em versões futuras. Prossiga com cuidado."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Estas funcionalidades experimentais podem ser alteradas, deixar de funcionar ou desaparecer em versões futuras. Prossiga com cuidado."</string> - <string name="got_it" msgid="2239653834387972602">"Compreendi"</string> - <string name="tuner_toast" msgid="603429811084428439">"Parabéns! O Sintonizador da interface do sistema foi adicionado às Definições"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Remover das Definições"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Pretende remover o Sintonizador da interface do sistema das Definições e deixar de utilizar todas as respetivas funcionalidades?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Está no Perfil de trabalho"</string> </resources> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index 229d0e2d79a4..3061d5387324 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informações do app"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Suas telas recentes aparecem aqui"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Dispensar apps recentes"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 tela em \"Visão geral\""</item> - <item quantity="other" msgid="5523506463832158203">"%d telas em \"Visão geral\""</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d telas em \"Visão geral\"</item> + <item quantity="other">%d telas em \"Visão geral\"</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Sem notificações"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Em andamento"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificações"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Permitir a depuração USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"A impressão digital da chave RSA deste computador é:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Sempre permitir a partir deste computador"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Depuração USB não permitida"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"O usuário conectado a este dispositivo não pode ativar a depuração USB. Para usar esse recurso, mude para o usuário principal \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom p/ preencher a tela"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Ampliar p/ preencher tela"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Salvando captura de tela..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Pesquisar"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Câmera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefone"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Assistência de voz"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Desbloquear"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Botão de desbloqueio. Aguardando impressão digital"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Desbloquear sem usar impressão digital"</string> <string name="unlock_label" msgid="8779712358041029439">"desbloquear"</string> <string name="phone_label" msgid="2320074140205331708">"abrir telefone"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"abrir assistência de voz"</string> <string name="camera_label" msgid="7261107956054836961">"abrir câmera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Selecionar novo layout da tarefa"</string> <string name="cancel" msgid="6442560571259935130">"Cancelar"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Duas barras de sinal de dados."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Três barras do sinal de dados."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Sinal de dados cheio."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi desligado."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi desconectado."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Uma barra de sinal Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Duas barras de sinal Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Três barras de sinal Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Sinal Wi-Fi cheio."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Conectado a <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Conectado a <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Sem WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Duas barras do WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Três barras do WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Sinal WiMAX completo."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet desconectada."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet conectada."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Sem sinal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Sem conexão."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nenhuma barra."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Sem SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Tethering Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Modo avião."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Sem cartão SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Alteração de rede de operadora."</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> descartado."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Todos os apps recentes foram dispensados."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Iniciando <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificação dispensada."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Aba de notificações."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Configurações rápidas."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Tela de bloqueio."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Configurações"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Visão geral."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Fechar"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmar"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Usuário <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"O Wi-Fi foi desativado."</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"O modo avião foi desativado."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"O modo avião foi ativado."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"\"Não perturbe\" ativado, somente prioridade."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"\"Não perturbe\" ativado, silêncio total."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"\"Não perturbe\" ativado, sem interrupções."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"\"Não perturbe\" ativado, somente alarmes."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Não perturbe\" desativado."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Não perturbe\" desativado."</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Não perturbe"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Só prioridade"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Somente alarmes"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Silêncio total"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Sem interrupções"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispositivos)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth desativado"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Não conectado"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Sem rede"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi desligado"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nenhuma rede Wi-Fi disponível"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Não há redes salvas disponíveis"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Transmitir"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Transmitindo"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispositivo sem nome"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Pesquisar"</string> <string name="description_direction_up" msgid="7169032478259485180">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para cima."</string> <string name="description_direction_left" msgid="7207478719805562165">"Para <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>, deslize para a esquerda."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Você não será perturbado por sons e vibrações, com exceção de alarmes, lembretes, eventos e autores de chamadas que você especificar."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Sem interrupções. Nem mesmo alarmes."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Você não será perturbado por sons e vibrações, com exceção de alarmes, lembretes, eventos e autores de chamadas que você especificar."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizar"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Isso bloqueia TODOS os sons e vibrações, incluindo alarmes, músicas, vídeos e jogos. Você ainda poderá fazer chamadas telefônicas."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Isso bloqueia TODOS os sons e vibrações, incluindo alarmes, músicas, vídeos e jogos."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Sem interrupções"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Apenas interrupções prioritárias"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Somente alarmes"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Seu próximo alarme será às <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Seu próximo alarme será em <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Você não ouvirá o alarme às <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificações menos urgentes abaixo"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Toque novamente para abrir"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Deslize para cima para desbloquear"</string> - <string name="phone_hint" msgid="4872890986869209950">"Deslize a partir do ícone do telefone"</string> - <string name="voice_hint" msgid="8939888732119726665">"Deslize a partir do ícone de assistência de voz"</string> - <string name="camera_hint" msgid="7939688436797157483">"Deslize a partir do ícone da câmera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Silêncio total. Isso também silenciará os leitores de tela."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Silêncio total"</string> + <string name="phone_hint" msgid="3101468054914424646">"Deslize à direita p/ usar o telefone"</string> + <string name="camera_hint" msgid="5241441720959174226">"Deslize à esquerda p/ usar a câmera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Sem interrupções"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Só prioridade"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Somente alarmes"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Silêncio\ntotal"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Tudo"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Sem\ninterrupções"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Somente\nprioridade"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Somente\nalarmes"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Carregando (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> até concluir)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Trocar usuário"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Alternar usuário. Usuário atual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Usuário atual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Mostrar perfil"</string> <string name="user_add_user" msgid="5110251524486079492">"Adicionar usuário"</string> <string name="user_new_user_name" msgid="426540612051178753">"Novo usuário"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Recomeçar"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Sim, continuar"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Usuário convidado"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Para excluir apps e dados, remova o usuário convidado"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Remover convidado para excluir apps e dados"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"REMOVER CONVIDADO"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Adicionar novo usuário?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Quando você adiciona um novo usuário, essa pessoa precisa configurar o próprio espaço.\n\nQualquer usuário pode atualizar apps para os demais usuários."</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Desativar VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Desconectar VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar e gerenciar configurações, acesso corporativo, apps, dados associados ao dispositivo e informações sobre a localização do dispositivo. Para mais informações, entre em contato com o administrador."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Você deu permissão para um app configurar uma conexão VPN.\n\nEsse app pode monitorar seu dispositivo e a atividade na rede, incluindo e-mails, apps e websites."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Seu perfil profissional é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar sua atividades de rede, incluindo e-mails, apps e websites seguros.\n\nPara mais informações, entre em contato com seu administrador."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Seu dispositivo é gerenciado por:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nSeu perfil profissional é gerenciado por:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nSeu administrador pode monitorar seu dispositivo e suas atividades de rede, incluindo e-mails, apps e websites seguros.\n\nPara mais informações, entre em contato com seu administrador."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Você autorizou um app a configurar uma conexão VPN.\n\nEsse app pode monitorar seu dispositivo e atividades de rede, incluindo e-mails, aplicativos e websites seguros."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar e gerenciar configurações, acesso corporativo, apps, dados associados ao seu dispositivo e informações sobre localização do dispositivo.\n\nVocê está conectado a uma VPN, a qual pode monitorar suas atividades de rede, incluindo e-mails, apps e websites.\n\nPara mais informações, entre em contato com seu administrador."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Seu perfil de trabalho é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar suas atividades de rede, incluindo e-mails, apps e websites.\n\nPara mais informações, entre em contato com seu administrador.\n\nVocê também está conectado a uma VPN, a qual pode monitorar suas atividades de rede."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Você está conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode monitorar sua atividade na rede, incluindo e-mails, apps e websites."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Você está conectado a <xliff:g id="APPLICATION">%1$s</xliff:g>, que pode monitorar sua atividade pessoal na rede, incluindo e-mails, apps e websites."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Seu perfil de trabalho é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Ele está conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode monitorar sua atividade profissional na rede, incluindo e-mails, apps e websites.\n\nPara ver mais informações, entre em contato com seu administrador."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Seu perfil de trabalho é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Ele está conectado a <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, que pode monitorar sua atividade profissional na rede, incluindo e-mails, apps e websites.\n\nVocê também está conectado a <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, que pode monitorar sua atividade pessoal na rede."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar e gerenciar configurações, acesso corporativo, apps, dados associados ao seu dispositivo e informações sobre localização do dispositivo.\n\nVocê está conectado a <xliff:g id="APPLICATION">%2$s</xliff:g>, que pode monitorar suas atividades de rede, incluindo e-mails, apps e websites.\n\nPara ver mais informações, entre em contato com seu administrador."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Seu perfil profissional é gerenciado por <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSeu administrador pode monitorar suas atividades de rede, incluindo e-mails, apps e websites seguros.\n\nPara mais informações, entre em contato com seu administrador.\n\nVocê também está conectado a uma VPN, a qual pode monitorar suas atividades de rede."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Seu dispositivo é gerenciado por <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nSeu perfil profissional é gerenciado por:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nSeu administrador pode monitorar suas atividades de rede, incluindo e-mails, apps e websites seguros.\n\nPara mais informações, entre em contato com seu administrador.\n\nVocê também está conectado a uma VPN que pode monitorar suas atividades de rede pessoais"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"O dispositivo permanecerá bloqueado até que você o desbloqueie manualmente"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Receba notificações mais rápido"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Veja-as antes de desbloquear"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Ver tudo"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ocultar tudo"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Finalizar agora"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Expandir"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Recolher"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"A tela está fixada"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ela é mantida à vista até que seja liberada. Toque em \"Voltar\" e \"Visão Geral\" e mantenha essas opções pressionadas ao mesmo tempo para liberar."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ela é mantida à vista até que seja liberada. Toque em \"Visão geral\" e mantenha essa opção pressionada para liberar."</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Negar"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> é a caixa de diálogo referente ao volume"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Toque para restaurar o original."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Você está usando seu perfil de trabalho"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sintonizador System UI"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Mostrar porcentagem de bateria incorporada"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Mostrar porcentagem de nível de bateria dentro do ícone da barra de status quando não estiver carregando"</string> - <string name="quick_settings" msgid="10042998191725428">"Configurações rápidas"</string> - <string name="status_bar" msgid="4877645476959324760">"Barra de status"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modo de demonstração"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Ativar modo de demonstração"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Mostrar modo de demonstração"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarme"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Perfil de trabalho"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Modo avião"</string> - <string name="add_tile" msgid="2995389510240786221">"Adicionar bloco"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Transmitir bloco"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Você não ouvirá o próximo alarme às <xliff:g id="WHEN">%1$s</xliff:g>, a menos que desative essa opção antes desse horário"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Você não ouvirá o próximo alarme às <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"às <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Configurações rápidas, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Ponto de acesso"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Perfil de trabalho"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diversão para alguns, mas não para todos"</string> - <string name="tuner_warning" msgid="8730648121973575701">"O sintonizador System UI fornece maneiras adicionais de ajustar e personalizar a interface do usuário do Android. Esses recursos experimentais podem mudar, falhar ou desaparecer nas versões futuras. Prossiga com cuidado."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Esses recursos experimentais podem mudar, falhar ou desaparecer nas versões futuras. Prossiga com cuidado."</string> - <string name="got_it" msgid="2239653834387972602">"Entendi"</string> - <string name="tuner_toast" msgid="603429811084428439">"Parabéns! O sintonizador System UI foi adicionado às configurações"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Remover das configurações"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Remover sintonizador System UI das configurações e parar de usar todos os seus recursos?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Você está no Perfil de trabalho"</string> </resources> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 9bd13becd312..6c6374a30e60 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -20,15 +20,16 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="7164937344850004466">"UI sistem"</string> - <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ștergeți"</string> + <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Ștergeţi"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Eliminaţi din listă"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informații despre aplicație"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informaţii despre aplicație"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Ecranele dvs. recente apar aici"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Renunţaţi la aplicațiile recente"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 ecran în Vizualizare generală"</item> - <item quantity="other" msgid="5523506463832158203">"%d ecrane în Vizualizare generală"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="few">%d ecrane în Recente</item> + <item quantity="other">%d de ecrane în Recente</item> + <item quantity="one">Un ecran în Recente</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Nicio notificare"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"În desfăşurare"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Notificări"</string> @@ -51,8 +52,8 @@ <string name="bluetooth_tethered" msgid="7094101612161133267">"Conectat prin tethering prin Bluetooth"</string> <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"Setaţi metode introducere text"</string> <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"Tastatură fizică"</string> - <string name="usb_device_permission_prompt" msgid="834698001271562057">"Permiteți aplicației <xliff:g id="APPLICATION">%1$s</xliff:g> să acceseze dispozitivul USB?"</string> - <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"Permiteți aplicației <xliff:g id="APPLICATION">%1$s</xliff:g> să acceseze accesoriul USB?"</string> + <string name="usb_device_permission_prompt" msgid="834698001271562057">"Permiteţi aplicației <xliff:g id="APPLICATION">%1$s</xliff:g> să acceseze dispozitivul USB?"</string> + <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"Permiteţi aplicației <xliff:g id="APPLICATION">%1$s</xliff:g> să acceseze accesoriul USB?"</string> <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"Deschideţi <xliff:g id="ACTIVITY">%1$s</xliff:g> la conectarea acestui dispozitiv USB?"</string> <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"Deschideţi <xliff:g id="ACTIVITY">%1$s</xliff:g> la conectarea acestui accesoriu USB?"</string> <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"Aplic. instal. nu funcţ. cu acest acces. USB. Aflaţi despre acest accesoriu la <xliff:g id="URL">%1$s</xliff:g>"</string> @@ -60,24 +61,22 @@ <string name="label_view" msgid="6304565553218192990">"Afişaţi"</string> <string name="always_use_device" msgid="1450287437017315906">"Utilizaţi în mod prestabilit pt. acest dispoz. USB"</string> <string name="always_use_accessory" msgid="1210954576979621596">"Utiliz. în mod prestabilit pt. acest accesoriu USB"</string> - <string name="usb_debugging_title" msgid="4513918393387141949">"Permiteți depanarea USB?"</string> + <string name="usb_debugging_title" msgid="4513918393387141949">"Permiteţi depanarea USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Amprenta digitală din cheia RSA a computerului este:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> - <string name="usb_debugging_always" msgid="303335496705863070">"Permiteți întotdeauna de pe acest computer"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Remedierea erorilor prin USB nu este permisă"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Utilizatorul conectat momentan pe acest dispozitiv nu poate activa remedierea erorilor prin USB. Pentru a folosi această funcție, comutați la utilizatorul principal „<xliff:g id="NAME">%s</xliff:g>”."</string> + <string name="usb_debugging_always" msgid="303335496705863070">"Permiteţi întotdeauna de pe acest computer"</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zoom pt. a umple ecranul"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Înt. pt. a umple ecranul"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Se salv. captura de ecran..."</string> <string name="screenshot_saving_title" msgid="8242282144535555697">"Se salvează captura de ecran..."</string> <string name="screenshot_saving_text" msgid="2419718443411738818">"Captura de ecran este salvată."</string> <string name="screenshot_saved_title" msgid="6461865960961414961">"Captură de ecran realizată."</string> - <string name="screenshot_saved_text" msgid="1152839647677558815">"Atingeți pentru a vedea captura de ecran."</string> + <string name="screenshot_saved_text" msgid="1152839647677558815">"Atingeţi pentru a vedea captura de ecran."</string> <string name="screenshot_failed_title" msgid="705781116746922771">"Captura de ecran nu a putut fi realizată."</string> <string name="screenshot_failed_text" msgid="1260203058661337274">"Captură de ecran impos. de realizat: spațiu de stoc. limitat sau nu este permisă de apl. sau de organiz."</string> - <string name="usb_preference_title" msgid="6551050377388882787">"Opţiuni pentru transferul de fișiere prin USB"</string> + <string name="usb_preference_title" msgid="6551050377388882787">"Opţiuni pentru transferul de fişiere prin USB"</string> <string name="use_mtp_button_title" msgid="4333504413563023626">"Montaţi ca player media (MTP)"</string> <string name="use_ptp_button_title" msgid="7517127540301625751">"Montaţi drept cameră foto (PTP)"</string> - <string name="installer_cd_button_title" msgid="2312667578562201583">"Instal. aplic. Transfer de fișiere Android pt. Mac"</string> + <string name="installer_cd_button_title" msgid="2312667578562201583">"Instal. aplic. Transfer de fişiere Android pt. Mac"</string> <string name="accessibility_back" msgid="567011538994429120">"Înapoi"</string> <string name="accessibility_home" msgid="8217216074895377641">"Ecranul de pornire"</string> <string name="accessibility_menu" msgid="316839303324695949">"Meniu"</string> @@ -85,13 +84,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Căutați"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Cameră foto"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Asistent vocal"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Deblocați"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Buton pentru deblocare, se așteaptă amprenta"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Deblocați fără amprentă"</string> <string name="unlock_label" msgid="8779712358041029439">"deblocați"</string> <string name="phone_label" msgid="2320074140205331708">"deschideți telefonul"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"deschideți asistentul vocal"</string> <string name="camera_label" msgid="7261107956054836961">"deschideți camera foto"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Selectați noul aspect pentru activitate"</string> <string name="cancel" msgid="6442560571259935130">"Anulați"</string> @@ -114,6 +109,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Semnal pentru date: două bare."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Semnal pentru date: trei bare."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Semnal pentru date: complet."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi dezactivat."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi deconectat."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Semnal Wi-Fi: o bară."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Semnal Wi-Fi: două bare."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Semnal Wi-Fi: trei bare."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Semnal Wi-Fi: complet."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Conectat la <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Conectat la <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Fără WiMAX."</string> @@ -121,8 +122,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX două bare."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX trei bare."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX semnal complet."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet deconectat."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet conectat."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Fără semnal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Neconectat."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nicio bară."</string> @@ -148,12 +147,11 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Niciun card SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Conectarea ca modem prin Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mod Avion."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Niciun card SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Se schimbă rețeaua operatorului."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterie: <xliff:g id="NUMBER">%d</xliff:g> procente."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Setări de sistem."</string> <string name="accessibility_notifications_button" msgid="4498000369779421892">"Notificări."</string> - <string name="accessibility_remove_notification" msgid="3603099514902182350">"Ștergeți notificarea."</string> + <string name="accessibility_remove_notification" msgid="3603099514902182350">"Ștergeţi notificarea."</string> <string name="accessibility_gps_enabled" msgid="3511469499240123019">"GPS activat."</string> <string name="accessibility_gps_acquiring" msgid="8959333351058967158">"Se obţine GPS."</string> <string name="accessibility_tty_enabled" msgid="4613200365379426561">"TeleTypewriter activat."</string> @@ -165,14 +163,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> a fost eliminată."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Toate aplicațiile recente au fost închise."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Se inițiază <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Notificarea a fost închisă."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Fereastră pentru notificări."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Setări rapide."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Ecranul de blocare."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Setări"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Vizualizare generală"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Închideți"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Confirmați"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Utilizatorul <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Conexiunea prin Wi-Fi este dezactivată."</string> @@ -184,7 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Modul Avion este dezactivat."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Modul Avion este activat."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Setarea „Nu deranja” este activată – numai prioritare."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Setarea „Nu deranja” este activată – niciun sunet."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Setarea „Nu deranja” este activată – fără întreruperi."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Setarea „Nu deranja” este activată – numai alarme."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Setarea „Nu deranja” este dezactivată."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Setarea „Nu deranja” a fost dezactivată."</string> @@ -222,9 +219,9 @@ <string name="status_bar_settings_signal_meter_disconnected" msgid="1940231521274147771">"Fără conex. internet"</string> <string name="status_bar_settings_signal_meter_wifi_nossid" msgid="6557486452774597820">"Wi-Fi conectat"</string> <string name="gps_notification_searching_text" msgid="8574247005642736060">"Se caută GPS"</string> - <string name="gps_notification_found_text" msgid="4619274244146446464">"Locație setată prin GPS"</string> + <string name="gps_notification_found_text" msgid="4619274244146446464">"Locaţie setată prin GPS"</string> <string name="accessibility_location_active" msgid="2427290146138169014">"Solicitări locație active"</string> - <string name="accessibility_clear_all" msgid="5235938559247164925">"Ștergeți toate notificările."</string> + <string name="accessibility_clear_all" msgid="5235938559247164925">"Ștergeţi toate notificările."</string> <string name="status_bar_notification_inspect_item_title" msgid="5668348142410115323">"Setări pentru notificări"</string> <string name="status_bar_notification_app_settings_title" msgid="5525260160341558869">"Setări <xliff:g id="APP_NAME">%s</xliff:g>"</string> <string name="accessibility_rotation_lock_off" msgid="4062780228931590069">"Ecranul se va roti în mod automat."</string> @@ -239,7 +236,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nu deranja"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Numai cu prioritate"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Numai alarme"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Niciun sunet"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Fără întreruperi"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> dispozitive)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth dezactivat"</string> @@ -262,9 +259,9 @@ <string name="quick_settings_user_new_user" msgid="9030521362023479778">"Utilizator nou"</string> <string name="quick_settings_wifi_label" msgid="9135344704899546041">"Wi-Fi"</string> <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Neconectat"</string> - <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nicio rețea"</string> + <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Nicio reţea"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi deconectat"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Nicio rețea Wi-Fi disponibilă"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nicio rețea salvată disponibilă"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Proiectați"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Se proiectează"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Dispozitiv nedenumit"</string> @@ -303,31 +300,34 @@ <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> până la încărcare completă"</string> <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"Nu se încarcă"</string> <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"Rețeaua poate\nfi monitorizată"</string> - <string name="description_target_search" msgid="3091587249776033139">"Căutați"</string> + <string name="description_target_search" msgid="3091587249776033139">"Căutaţi"</string> <string name="description_direction_up" msgid="7169032478259485180">"Glisaţi în sus pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Glisaţi spre stânga pentru <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Nu veți fi deranjat(ă) de sunete și vibrații, exceptând alarmele, mementourile, evenimentele și apelanții pe care îi menționați."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Fără întreruperi. Nici măcar alarme."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Nu veți fi deranjat(ă) de sunete și vibrații, exceptând alarmele, mementourile, evenimentele și apelanții pe care îi menționați."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Personalizați"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Această opțiune blochează TOATE sunetele și vibrațiile, inclusiv cele ale alarmelor, muzicii, videoclipurilor și jocurilor. Totuși, veți putea iniția apeluri."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Această opțiune blochează TOATE sunetele și vibrațiile, inclusiv cele ale alarmelor, muzicii, videoclipurilor și jocurilor."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Fără întreruperi"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Numai întreruperi cu prioritate"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Numai alarme"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Următoarea alarmă este setată la <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Următoarea alarmă este la <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Nu veți auzi alarma la <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Notificările mai puțin urgente mai jos"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Atingeți din nou pentru a deschide"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Glisați în sus pentru a debloca"</string> - <string name="phone_hint" msgid="4872890986869209950">"Glisați dinspre telefon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Glisați dinspre pictogramă pentru asistentul vocal"</string> - <string name="camera_hint" msgid="7939688436797157483">"Glisați pentru a fotografia"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Liniște absolută. Se va opri sunetul și pentru cititoarele de ecran."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Niciun sunet"</string> + <string name="phone_hint" msgid="3101468054914424646">"Glisați la dreapta pentru a acesa telefonul"</string> + <string name="camera_hint" msgid="5241441720959174226">"Glisați la stânga pentru a accesa camera foto"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Fără întreruperi"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Numai cu prioritate"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Numai alarme"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Niciun\nsunet"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Toate"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Fără\nîntreruperi"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Numai\ncu prioritate"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Numai\nalarme"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Se încarcă (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> până la finalizare)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Comutați între utilizatori"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Schimbați utilizatorul (utilizator actual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Utilizator actual <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Afișați profilul"</string> <string name="user_add_user" msgid="5110251524486079492">"Adăugați un utilizator"</string> <string name="user_new_user_name" msgid="426540612051178753">"Utilizator nou"</string> @@ -342,7 +342,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Începeți din nou"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Da, continuați"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Utilizator oaspete"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Ștergeți aplicații și date eliminând utilizatorul invitat"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Eliminați oaspetele pentru a șterge aplicațiile și datele"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ELIMINAȚI OASPETELE"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Adăugați utilizator nou?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Când adăugați un utilizator nou, acesta trebuie să-și configureze spațiul.\n\nOrice utilizator poate actualiza aplicațiile pentru toți ceilalți utilizatori."</string> @@ -364,15 +364,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Dezactivați conexiunea prin VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Deconectați rețeaua VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Dispozitivul este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratorul poate monitoriza și gestiona setările, accesul la rețeaua companiei, aplicațiile, datele asociate cu dispozitivul și informațiile privind locația dispozitivului. Pentru mai multe informații, contactați administratorul."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Ați acordat unei aplicații permisiunea de a configura o conexiune VPN.\n\nAceastă aplicație poate monitoriza activitatea de pe dispozitiv și în rețea, inclusiv e-mailurile, aplicațiile și site-urile."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Profilul de serviciu este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratorul poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate.\n\nPentru mai multe informații, contactați administratorul."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Dispozitivul este gestionat de:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nProfilul de serviciu este gestionat de:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratorul poate monitoriza activitatea de pe dispozitiv și în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate.\n\nPentru mai multe informații, contactați administratorul."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Ați acordat unei aplicații permisiunea de a configura o conexiune VPN.\n\nAceastă aplicație poate monitoriza activitatea de pe dispozitiv și în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Dispozitivul este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratorul poate monitoriza și gestiona setările, accesul la rețeaua companiei, aplicațiile, datele asociate cu dispozitivul și informațiile privind locația dispozitivului.\n\nSunteți conectat(ă) la o rețea VPN, care vă poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile.\n\nPentru mai multe informații, contactați administratorul."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Profilul de serviciu este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratorul poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile.\n\nPentru mai multe informații, contactați administratorul.\n\nDe asemenea, sunteți conectat(ă) la o rețea VPN, care vă poate monitoriza activitatea în rețea."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Sunteți conectat(ă) la <xliff:g id="APPLICATION">%1$s</xliff:g>, care vă poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Sunteți conectat(ă) la <xliff:g id="APPLICATION">%1$s</xliff:g>, care vă poate monitoriza activitatea în rețeaua personală, inclusiv e-mailurile, aplicațiile și site-urile."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Profilul de serviciu este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Este conectat la <xliff:g id="APPLICATION">%2$s</xliff:g>, care vă poate monitoriza activitatea în rețeaua de serviciu, inclusiv e-mailurile, aplicațiile și site-urile.\n\nPentru mai multe informații, contactați administratorul."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Profilul de serviciu este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Este conectat la <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, care vă poate monitoriza activitatea în rețeaua de serviciu, inclusiv e-mailurile, aplicațiile și site-urile.\n\nDe asemenea, sunteți conectat(ă) la <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, care vă poate monitoriza activitatea în rețeaua personală."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Dispozitivul este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratorul poate monitoriza și gestiona setările, accesul la rețeaua companiei, aplicațiile, datele asociate cu dispozitivul și informațiile privind locația dispozitivului.\n\nSunteți conectat(ă) la <xliff:g id="APPLICATION">%2$s</xliff:g>, care vă poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile.\n\nPentru mai multe informații, contactați administratorul."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Profilul de serviciu este gestionat de <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratorul poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate.\n\nPentru mai multe informații, contactați administratorul.\n\nDe asemenea, sunteți conectat(ă) la o rețea VPN, care vă poate monitoriza activitatea în rețea."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Dispozitivul este gestionat de <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nProfilul de serviciu este gestionat de:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratorul poate monitoriza activitatea în rețea, inclusiv e-mailurile, aplicațiile și site-urile securizate.\n\nPentru mai multe informații, contactați administratorul.\n\nDe asemenea, sunteți conectat(ă) la o rețea VPN, care vă poate monitoriza activitatea în rețea."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Dispozitivul va rămâne blocat până când îl deblocați manual"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Obțineți notificări mai rapid"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Doresc să se afișeze înainte de deblocare"</string> @@ -381,9 +378,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Afișați toate"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ascundeți toate"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Opriți acum"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Extindeți"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Restrângeți"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ecranul este fixat"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ecranul este afișat până anulați fixarea. Apăsați lung pe Înapoi și pe Vizualizare generală simultan pentru a anula fixarea."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ecranul este afișat până anulați fixarea. Apăsați lung pe Vizualizare generală pentru a anula fixarea."</string> @@ -397,33 +391,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuzați"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> afișează caseta de dialog pentru volum"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Atingeți pentru a reveni la setarea inițială."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Acum folosiți profilul de serviciu"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Afișați procentajul bateriei încorporat"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Afișați procentajul cu nivelul bateriei în interiorul pictogramei din bara de stare, atunci când nu se încarcă"</string> - <string name="quick_settings" msgid="10042998191725428">"Setări rapide"</string> - <string name="status_bar" msgid="4877645476959324760">"Bară de stare"</string> - <string name="demo_mode" msgid="2389163018533514619">"Modul demonstrativ"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Activați modul demonstrativ"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Afișați modul demonstrativ"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarmă"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil de serviciu"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Mod Avion"</string> - <string name="add_tile" msgid="2995389510240786221">"Adăugați o casetă"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Caseta mesajului difuzat"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Dacă nu dezactivați această opțiune înainte, nu veți auzi următoarea alarmă <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Nu veți auzi următoarea alarmă <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"la <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Setări rapide, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profil de serviciu"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Distractiv pentru unii, dar nu pentru toată lumea"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner vă oferă modalități suplimentare de a ajusta și a personaliza interfața de utilizare Android. Aceste funcții experimentale pot să se schimbe, să se blocheze sau să dispară din versiunile viitoare. Continuați cu prudență."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Aceste funcții experimentale pot să se schimbe, să se blocheze sau să dispară din versiunile viitoare. Continuați cu prudență."</string> - <string name="got_it" msgid="2239653834387972602">"Am înțeles"</string> - <string name="tuner_toast" msgid="603429811084428439">"Felicitări! System UI Tuner a fost adăugat în Setări"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Eliminați din Setări"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Eliminați System UI Tuner din Setări și încetați utilizarea tuturor funcțiilor sale?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Vă aflați în profilul de serviciu"</string> </resources> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index 99de843d131c..a700f1705a01 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"О приложении"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Здесь будут показаны недавние приложения."</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Закрыть недавние приложения"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"В обзоре 1 экран."</item> - <item quantity="other" msgid="5523506463832158203">"Экранов в обзоре: %d."</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">Показан %d экран</item> + <item quantity="few">Показано %d экрана</item> + <item quantity="many">Показано %d экранов</item> + <item quantity="other">Показано %d экранов</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Нет уведомлений"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Текущие"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Уведомления"</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Отладка по USB"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Цифровой отпечаток ключа RSA:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Всегда разрешать отладку с этого компьютера"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Отладка по USB запрещена"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"В текущем аккаунте нельзя включить отладку по USB. Перейдите в аккаунт основного пользователя (<xliff:g id="NAME">%s</xliff:g>)."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Подогнать по размерам экрана"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Растянуть на весь экран"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Сохранение..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Поиск"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон."</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Аудиоподсказки"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Разблокировать."</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Кнопка разблокировки, отсканируйте отпечаток пальца"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Разблокировать без отпечатка пальца"</string> <string name="unlock_label" msgid="8779712358041029439">"Разблокировать."</string> <string name="phone_label" msgid="2320074140205331708">"Открыть телефон."</string> - <string name="voice_assist_label" msgid="3956854378310019854">"включить аудиоподсказки"</string> <string name="camera_label" msgid="7261107956054836961">"Открыть камеру."</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Выберите другой макет"</string> <string name="cancel" msgid="6442560571259935130">"Отмена"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Сигнал передачи данных: два деления."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Сигнал передачи данных: три деления."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Надежный сигнал передачи данных."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi выключен"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi выключен"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi: одно деление"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi: два деления"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi: три деления"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi: надежный сигнал"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>: подключено."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>: подключено."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Нет сигнала WiMAX."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Сигнал WiMAX: два деления."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Сигнал WiMAX: три деления."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Надежный сигнал WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Устройство отключено от Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Устройство подключено к Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Нет сигнала"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Не подключено"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Нет сигнала"</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM-карта отсутствует."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth-модем"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Режим полета."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Нет SIM-карты."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Сменить сеть"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +166,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Приложение \"<xliff:g id="APP">%s</xliff:g>\" удалено из списка."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Все недавние приложения закрыты."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Запуск приложения <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Уведомление закрыто"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Панель уведомлений"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Быстрые настройки"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заблокированный экран."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Настройки"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Обзор."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Закрыть"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Подтвердить"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Пользователь <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Модуль Wi-Fi отключен."</string> @@ -186,7 +184,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Режим полета отключен."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Режим полета включен."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Режим \"Не беспокоить\" включен. Будут показаны только важные оповещения."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Не беспокоить, полная тишина."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Включен режим \"Не беспокоить\". Все оповещения отключены."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Не беспокоить – только будильник."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Режим \"Не беспокоить\" выключен."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Режим \"Не беспокоить\" выключен."</string> @@ -241,7 +239,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не беспокоить"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Только важные"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Только будильник"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Полная тишина"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без оповещений"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth выкл."</string> @@ -266,8 +264,8 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Нет соединения"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нет сети"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi выкл."</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Не удалось найти доступные сети Wi-Fi"</string> - <string name="quick_settings_cast_title" msgid="7709016546426454729">"Трансляция"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Нет доступных сохраненных сетей"</string> + <string name="quick_settings_cast_title" msgid="7709016546426454729">"Wi-Fi-монитор"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Передача изображения"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Безымянное устройство"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Готово к передаче"</string> @@ -308,28 +306,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Поиск"</string> <string name="description_direction_up" msgid="7169032478259485180">"Проведите вверх, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Проведите влево, чтобы <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Вас не будут отвлекать звуки и вибрация, за исключением сигналов будильника, напоминаний, уведомлений о мероприятиях и звонков от помеченных контактов."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Никаких оповещений, даже от будильника."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Вибрация и звуки будут отключены. Вас могут побеспокоить только сигналы будильника, напоминания, уведомления о мероприятиях и звонки от выбранных абонентов."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Настроить"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"В этом режиме будут отключены вибросигнал и все звуки (в том числе для будильника, музыкального проигрывателя, игр и видео). При этом вы сможете разговаривать по телефону."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"В этом режиме будут отключены вибросигнал и все звуки (в том числе для будильника, музыкального проигрывателя, игр и видео)."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Не беспокоить"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Только важные оповещения"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Только будильник"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следующий будильник: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следующий будильник: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Следующий будильник: <xliff:g id="ALARM_TIME">%s</xliff:g>. Звук отключен."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Показать менее важные оповещения"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Нажмите ещё раз, чтобы открыть"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Проведите вверх, чтобы разблокировать"</string> - <string name="phone_hint" msgid="4872890986869209950">"Телефон: проведите от значка"</string> - <string name="voice_hint" msgid="8939888732119726665">"Аудиоподсказки: проведите от значка"</string> - <string name="camera_hint" msgid="7939688436797157483">"Камера: проведите от значка"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Полная тишина. Также будет выключен звук в программах чтения с экрана."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Полная тишина"</string> + <string name="phone_hint" msgid="3101468054914424646">"Чтобы позвонить, пролистните вправо"</string> + <string name="camera_hint" msgid="5241441720959174226">"Чтобы включить камеру, пролистните влево"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Не беспокоить"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Только важные"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Только будильник"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Полная\nтишина"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Все"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Не\nбеспокоить"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Только\nважные"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Только\nбудильник"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Зарядка батареи (осталось <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Сменить пользователя."</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Сменить аккаунт. Вход выполнен под именем <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>."</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Выбран аккаунт пользователя <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Показать профиль."</string> <string name="user_add_user" msgid="5110251524486079492">"Добавить пользователя"</string> <string name="user_new_user_name" msgid="426540612051178753">"Новый пользователь"</string> @@ -344,7 +345,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Начать заново"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, продолжить"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Пользователь \"Гость\""</string> - <string name="guest_notification_text" msgid="335747957734796689">"Чтобы стереть все приложения и данные, удалите аккаунт гостя."</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Удалите аккаунт гостя, чтобы стереть все приложения и данные."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"УДАЛИТЬ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Добавить пользователя?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"После создания профиля его необходимо настроить.\n\nОбновлять приложения для всех аккаунтов может любой пользователь устройства."</string> @@ -366,15 +367,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Отключить VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Отключить VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Этим устройством управляет <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор может управлять настройками, корпоративным доступом, приложениями, данными на вашем устройстве, в том числе геоданными, а также просматривать соответствующие сведения. За дополнительной информацией обратитесь к администратору."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Вы разрешили приложению подключаться к сети VPN.\n\nОно может отслеживать ваши действия на устройстве и в Интернете, включая работу с электронной почтой, приложениями и веб-сайтами."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Этим корпоративным профилем управляет <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами.\n\nОбратитесь к нему за дополнительной информацией."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Вашим устройством управляет\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nВашим корпоративным профилем управляет\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистратор может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами.\n\nОбратитесь к нему за дополнительной информацией."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Вы разрешили приложению подключаться к сети VPN.\n\nЭто приложение может отслеживать ваши действия на устройстве и в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Этим устройством управляет <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор может управлять настройками, корпоративным доступом, приложениями, данными на вашем устройстве, в том числе геоданными, а также просматривать соответствующие сведения.\n\nВы подключены к сети VPN, поэтому возможно отслеживание ваших действий в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами.\n\nЗа дополнительной информацией обратитесь к администратору."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Вашим корпоративным профилем управляет <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и веб-сайтами.\n\nЗа подробностями обратитесь к нему.\n\nУстройство также подключено к сети VPN, в которой возможно отслеживание ваших действий."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"Сеть VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Запущено приложение \"<xliff:g id="APPLICATION">%1$s</xliff:g>\", которое может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и веб-сайтами."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Запущено приложение \"<xliff:g id="APPLICATION">%1$s</xliff:g>\", которое может отслеживать ваши действия в Интернете (выполняемые в личном профиле), включая работу с электронной почтой, приложениями и веб-сайтами."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Вашим рабочим профилем управляет \"<xliff:g id="ORGANIZATION">%1$s</xliff:g>\". Приложение \"<xliff:g id="APPLICATION">%2$s</xliff:g>\" может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и веб-сайтами.\n\nЗа дополнительной информацией обратитесь к своему администратору."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Вашим рабочим профилем управляет \"<xliff:g id="ORGANIZATION">%1$s</xliff:g>\". Приложение \"<xliff:g id="APPLICATION_WORK">%2$s</xliff:g>\" может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и веб-сайтами.\n\nПриложение \"<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>\" может отслеживать ваши действия в Интернете, выполняемые в личном профиле."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Вашим корпоративным профилем управляет <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор может управлять настройками, корпоративным доступом, приложениями, данными на вашем устройстве, в том числе геоданными, а также просматривать соответствующие сведения.\n\nПриложение <xliff:g id="APPLICATION">%2$s</xliff:g> также может отслеживать ваши действия в сети, включая работу с электронной почтой, приложениями и веб-сайтами.\n\nЗа подробностями обратитесь к своему администратору."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Этим профилем управляет <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор может отслеживать ваши действия в Интернете, включая работу с электронной почтой, приложениями и защищенными веб-сайтами.\n\nОбратитесь к нему за дополнительной информацией.\n\nУстройство также подключено к сети VPN, в которой возможно отслеживание ваших действий."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Устройством управляет <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nВашим корпоративным профилем управляет\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистратор может отслеживать вашу работу с почтой, приложениями и защищенными веб-сайтами.\n\nОбратитесь к нему за дополнительной информацией.\n\nУстройство также подключено к сети VPN, в которой возможно отслеживание ваших действий."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Устройство необходимо будет разблокировать вручную"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Быстрый доступ к уведомлениям"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Просматривайте уведомления на заблокированном экране."</string> @@ -383,9 +381,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Показать все"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Скрыть все"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>."</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Завершить"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Развернуть"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Свернуть"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Блокировка в приложении включена"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Это приложение останется активным, пока вы не отмените блокировку, одновременно нажав кнопки \"Назад\" и \"Обзор\"."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Приложение останется активным, пока вы не отмените блокировку, одновременно нажав кнопки Назад и Обзор."</string> @@ -399,33 +394,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Нет"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"Приложение <xliff:g id="APP_NAME">%1$s</xliff:g> назначено регулятором громкости"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Нажмите, чтобы восстановить приложение по умолчанию."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Вы перешли в рабочий профиль"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Показывать уровень заряда батареи в процентах"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Когда устройство работает в автономном режиме, процент заряда батареи показан в строке состояния"</string> - <string name="quick_settings" msgid="10042998191725428">"Быстрые настройки"</string> - <string name="status_bar" msgid="4877645476959324760">"Строка состояния"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демонстрация"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Включить демонстрационный режим"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Перейти в демонстрационный режим"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Будильник"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Рабочий профиль"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Режим полета"</string> - <string name="add_tile" msgid="2995389510240786221">"Добавить кнопку быстрого доступа"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Кнопка трансляции"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Следующий будильник: <xliff:g id="WHEN">%1$s</xliff:g>. Чтобы услышать сигнал, включите звук."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Следующий будильник: <xliff:g id="WHEN">%1$s</xliff:g>. Звук отключен."</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Быстрые настройки, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Точка доступа"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Рабочий профиль"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Внимание!"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner позволяет настраивать интерфейс устройства Android по вашему вкусу. В будущем эта экспериментальная функция может измениться, перестать работать или исчезнуть."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Это экспериментальная функция. В будущем она может измениться, перестать работать или исчезнуть."</string> - <string name="got_it" msgid="2239653834387972602">"ОК"</string> - <string name="tuner_toast" msgid="603429811084428439">"Функция System UI Tuner добавлена в меню настроек"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Удалить из настроек"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Убрать функцию System UI Tuner из меню настроек и прекратить ее работу?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Вы вошли в профиль Android for Work"</string> </resources> diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml index ba0c89cc630c..7f8a5044f22a 100644 --- a/packages/SystemUI/res/values-si-rLK/strings.xml +++ b/packages/SystemUI/res/values-si-rLK/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"යෙදුම් තොරතුරු"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"මෙහි ඔබගේ මෑතක තිර පෙන්නුම් කරයි"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"මෑත යෙදුම් ඉවතලන්න"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"දළ විශ්ලේෂණය තුළ 1 තීරයයි"</item> - <item quantity="other" msgid="5523506463832158203">"දළ විශ්ලේෂණය තුළ තීරයෙන් %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">විශ්ලේෂණය තුළ තිර %d යි</item> + <item quantity="other">විශ්ලේෂණය තුළ තිර %d</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"දැනුම්දීම් නැත"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"දැනට පවතින"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"දැනුම්දීම්"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB නිදොස්කරණයට අවසර දෙනවද?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"මෙම පරිගණකයේ RSA යතුරු ඇඟිලි සටහන වන්නේ:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"සැම විටම මෙම පරිගණකයෙන් ඉඩ ලබා දෙන්න"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB නිදොස්කරණය වෙත අවසර නැහැ"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"දැනට මෙම උපාංගයට පුරනය වී ඇති පරිශීලකයා හට USB නිදොස්කරණය සක්රිය කළ නොහැක. මෙම අංගය භාවිතා කිරීම සඳහා, \"<xliff:g id="NAME">%s</xliff:g>\" මූලික පරිශීලකයා වෙත මාරු වෙන්න."</string> <string name="compat_mode_on" msgid="6623839244840638213">"තිරය පිරවීමට විශාලනය කරන්න"</string> <string name="compat_mode_off" msgid="4434467572461327898">"තිරය පිරවීමට අදින්න"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"තිර රුව සුරකිමින්…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"සොයන්න"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"කැමරාව"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"දුරකථනය"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"හඬ සහාය"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"අඟුල අරින්න"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"අගුළු ඇරීමේ බොත්තම, ඇඟිලි සලකුණු සඳහා රැඳී සිටිමින්"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ඔබේ ඇඟිලි සලකුණ භාවිත නොකර අගුළු අරින්න"</string> <string name="unlock_label" msgid="8779712358041029439">"අඟුල අරින්න"</string> <string name="phone_label" msgid="2320074140205331708">"දුරකථනය විවෘත කරන්න"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"විවෘත හඬ සහාය"</string> <string name="camera_label" msgid="7261107956054836961">"කැමරාව විවෘත කරන්න"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"නව කාර්යය සැකැස්ම තෝරන්න"</string> <string name="cancel" msgid="6442560571259935130">"අවලංගු කරන්න"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"දත්ත තීරු 2."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"දත්ත තීරු 3."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"දත්ත සංඥාව පිරී ඇත."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi අක්රියයි."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi සම්බන්ධ කර නොමැත."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi තීරු එකයි."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi තීරු දෙකයි."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi තීරු තුනයි."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi සංඥාව පිරී ඇත."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> වෙත සම්බන්ධ කරන ලදි."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> වෙත සම්බන්ධ කරන ලදි."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX නැත."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX තීරු දෙකයි."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX තීරු තුනයි."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX සංඥාව පිරී ඇත."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ඊතර්නෙට් විසන්ධි කරන ලදී."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ඊතර්නෙට් සම්බන්ධ කරන ලදී."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"සංඥා නැත."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"සම්බන්ධ වී නැත."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"තීරු ශුන්යයි."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM නැත."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"බ්ලූටූත් ටෙදරින්."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"අහස්යානා ආකාරය."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM කාඩ්පත නැත."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"වාහක ජාලය වෙනස් වේ."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"බැටරි ප්රතිශතය <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"පද්ධති සැකසීම්."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> අස් කර ඇත."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"සියලුම මෑත යෙඳුම් අස් කරන ලදි."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> ආරම්භ කරමින්."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"දැනුම්දීම නිෂ්ප්රභා කරඇත."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"දැනුම්දීම් ආවරණය."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"ක්ෂණික සැකසීම්."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"අගුළු තිරය."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"සැකසීම්"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"දළ විශ්ලේෂණය."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"වසන්න"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"තහවුරු කරන්න"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"පරිශීලකයා <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi අක්රියයි."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"අහස්යානා අකාරය අක්රියයි."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"අහස්යානා ආකාරය සක්රීයයි."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"බාධා නොකරන්න ක්රියාත්මකයි, ප්රමුඛතා පමණි."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"සම්පූර්ණ නිහඬතාවය, බාධා නොකරන්න."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"බාධා නොකරන්න ක්රියාත්මකයි, බාධා කිරීම් නැත."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"බාධා නොකරන්න ක්රියාත්මකයි, ප්රමුඛතා පමණි."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"බාධා නොකරන්න ක්රියා විරහිතයි."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"බාධා නොකරන්න ක්රියා විරහිත කරන ලදි."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"බාධා නොකරන්න"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ප්රමුඛතාව පමණයි"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"ඇඟවීම් පමණි"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"සම්පූර්ණ නිහඬතාව"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"බාධා කිරීම් නැත"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"බ්ලූටූත්"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"බ්ලූටූත් (උපාංග <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"බ්ලූටූත් අක්රියයි"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"සම්බන්ධ වී නොමැත"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ජාලයක් නැත"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi අක්රියයි"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fi ජාල ලබා ගත නොහැකිය"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"තිබෙන ජාල සුරැකුවේ නැත"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"කාස්ට් කිරීම"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"නම් නොකළ උපාංගය"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"සෙවීම"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා උඩට සර්පණය කරන්න."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> සඳහා වමට සර්පණය කරන්න."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"එලාම, සිහි කැඳවීම්, සිදුවීම් සහ ඔබ සඳහන් කරන අමතන්නන් වෙතින් හැර, වෙනත් ශබ්ද සහ කම්පනවලින් ඔබට බාධා නොවනු ඇත."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"අතුරු බිඳීම් නැත. අඩුම තරමේ අනතුරු ඇඟවීමක්වත් නැත."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"සීනු, සිහි කැඳවීම්, සිදුවීම් සහ ඔබ සඳහන් කරන අමතන්නන් හැර වෙනත් ශබ්ද සහ කම්පන වලින් ඔබව බාධා නොකරයි."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"අභිරුචිකරණය"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"මෙය සීනු, සංගීතය, වීඩියෝ, සහ ක්රීඩා ඇතුළු, සියලු ශබ්ද සහ කම්පන අවහිර කරයි. ඔබට තවමත් දුරකථන ඇමතුම් සිදු කිරීමේ හැකියාව ඇත."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"මෙය සීනු, සංගීතය, වීඩියෝ, සහ ක්රීඩා ඇතුළු, සියලු ශබ්ද සහ කම්පන අවහිර කරයි."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"අතුරු බිදුම් නැත"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"ප්රමුඛ අතුරු බිඳීම් පමණයි"</string> + <string name="zen_alarms" msgid="5055668280767657759">"ඇඟවීම් පමණි"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"ඔබගේ ඊළඟ සීනුව <xliff:g id="ALARM_TIME">%s</xliff:g> තිබේ"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"ඔබගේ ඊළඟ සීනුව <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> වේ"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> හි තිබෙන ඔබගේ සීනුව ඔබට ඇසෙන්නේ නැත"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"හදිසිය අඩු දැනුම් දීම් පහත"</string> <string name="notification_tap_again" msgid="8524949573675922138">"විවෘත කිරීමට නැවත ස්පර්ශ කරන්න"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"අගුළු ඇරීමට ස්වයිප් කරන්න."</string> - <string name="phone_hint" msgid="4872890986869209950">"දුරකථනය සඳහා නිරූපකය වෙතින් ස්වයිප් කරන්න"</string> - <string name="voice_hint" msgid="8939888732119726665">"හඬ සහාය සඳහා නිරූපකය වෙතින් ස්වයිප් කරන්න"</string> - <string name="camera_hint" msgid="7939688436797157483">"කැමරාව සඳහා නිරූපකය වෙතින් ස්වයිප් කරන්න"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"සම්පූර්ණ නිහඬතාව. මෙය තිර කියවන්නන්ද නිහඬ කරනු ඇත."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"සම්පූර්ණ නිහඬතාව"</string> + <string name="phone_hint" msgid="3101468054914424646">"දුරකථන සඳහා දකුණට ස්වයිප් කරන්න"</string> + <string name="camera_hint" msgid="5241441720959174226">"කැමරාව සඳහා දකුණට ස්වයිප් කරන්න"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"බාධා කිරීම් නැත"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ප්රමුඛතාව පමණයි"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"ඇඟවීම් පමණි"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"සම්පූර්ණ\nනිහඬතාව"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"සියලු"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"බාධා\nනොකරන්න"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ප්රමුඛතා\nපමණි"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"ඇඟවීම්\nපමණි"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ආරෝපණය වෙමින් (සම්පුර්ණ වන තෙක් <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"පරිශීලක මාරුව"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"පරිශීලකයා මාරු කරන්න,දැන් සිටින පරිශීලකයා <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"වත්මන් පරිශීලක <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"පැතිකඩ පෙන්වන්න"</string> <string name="user_add_user" msgid="5110251524486079492">"පරිශීලකයෙක් එක් කරන්න"</string> <string name="user_new_user_name" msgid="426540612051178753">"නව පරිශීලකයා"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"යළි මුල සිට අරඹන්න"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ඔව්, දිගටම කරගෙන යන්න"</string> <string name="guest_notification_title" msgid="1585278533840603063">"ආගන්තුක පරිශිලකයා"</string> - <string name="guest_notification_text" msgid="335747957734796689">"යෙදුම් සහ දත්ත මැකීමට, ආගන්තුක පරිශීලකයා ඉවත් කරන්න"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"යෙදුම් සහ දත්ත ඉවත් කිරීමට ආගන්තුකයා ඉවත් කරන්න"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ආගන්තුකයා ඉවත් කරන්නද?"</string> <string name="user_add_user_title" msgid="4553596395824132638">"අලුත් පරිශීලකයෙක් එකතු කරන්නද?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"ඔබ අලුත් පරිශීලකයෙක් එකතු කරන විට, එම පුද්ගලයා ඔහුගේ වැඩ කරන ඉඩ සකසා ගත යුතුය.\n\nසියළුම අනෙක් පරිශීලකයින් සඳහා ඕනෑම පරිශීලකයෙකුට යාවත්කාලීන කළ හැක."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN අබල කරන්න."</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN විසන්ධි කරන්න"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"ඔබේ උපාංගය කළමනාකරණය කරනු ලබන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි.\n\nඔබේ පරිපාලකට ඔබේ උපාංගය හා සම්බන්ධිත සැකසීම්, ආයතනික ප්රවේශය, යෙදුම්, දත්ත සහ ඔබේ උපාංගය තිබෙන ස්ථානයේ තොරතුරු නිරීක්ෂණය කිරීමට සහ කළමනාකරණය කිරීමට හැකිය. වැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"ඔබ VPN සම්බන්ධතාවක් පිහිටුවීමට යෙදුමකට අවසරයක් දී ඇත.\n\nමෙම යෙදුමට ඔබේ ඊ-තැපැල්, යෙදුම්, සහ වෙබ් අඩවි ඇතුළු, ඔබගේ උපාංග සහ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකිය."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"ඔබේ වැඩ පැතිකඩ කළමනාකරණය කරනු ලබන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි.\n\nඔබේ පරිපාලකට ඔබේ ඊ-තැපැල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකියාව ඇත.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"ඔබේ උපාංගය කළමනාකරණය කරනු ලබන්නේ:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nඔබේ වැඩ පැතිකඩ කළමනාකරණය කරනු ලබන්නේ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nඔබේ පරිපාලකට ඔබේ උපාංගය සහ ඊ-තැපැල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකිය.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"ඔබ VPN සම්බන්ධතාවක් පිහිටුවීමට යෙදුම් අවසරයක් දී ඇත.\n\nමෙම යෙදුමට ඔබේ ඊ-තැපැල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකිය."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"ඔබේ උපාංගය කළමනාකරණය කරනු ලබන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි.\n\nඔබේ පරිපාලකට ඔබේ උපාංගය හා සම්බන්ධිත සැකසීම්, ආයතනික ප්රවේශය, යෙදුම්, දත්ත සහ ඔබේ උපාංගය තිබෙන ස්ථානයේ තොරතුරු නිරීක්ෂණය කිරීමට සහ කළමනාකරණය කිරීමට හැකිය.\n\nඊ-තැපැල්, යෙදුම්, සහ වෙබ් අඩවි ඇතුළු ඔබේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකි VPN සම්බන්ධතාවයකටද, ඔබ සම්බන්ධව ඇත.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"ඔබේ කාර්ය පැතිකඩ කළමනාකරණය කරන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි.\n\nඔබේ පරිපාලකට ඔබේ ඊ-තැපැල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකියාව ඇත.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න.\n\nඔබේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකි VPN සම්බන්ධතාවයකටද, ඔබ සම්බන්ධව ඇත."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"ඊ-තැපැල්, යෙදුම් සහ වෙබ් අඩවි ඇතුළු ඔබේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කළ හැකි, <xliff:g id="APPLICATION">%1$s</xliff:g> වෙත ඔබ සම්බන්ධ වී ඇත."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"ඊ-තැපැල්, යෙදුම් සහ වෙබ් අඩවි ඇතුළු ඔබේ පෞද්ගලික ජාල ක්රියාකාරකම් නිරීක්ෂණය කළ හැකි, <xliff:g id="APPLICATION">%1$s</xliff:g> වෙත ඔබ සම්බන්ධ වී ඇත."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"ඔබේ කාර්යාල පැතිකඩ කළමනාකරණය කරන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි. එය ඊ-තැපැල්, යෙදුම් සහ වෙබ් අඩවි ඇතුළු ඔබේ කාර්යාල ජාල ක්රියාකාරකම් නිරීක්ෂණය කළ හැකි, <xliff:g id="APPLICATION">%2$s</xliff:g> වෙත ඔබ සම්බන්ධ වී ඇත.\n\nවැඩිදුර විස්තර සඳහා, ඔබේ පරිපාලක අමතන්න."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"ඔබේ කාර්යාල පැතිකඩ කළමනාකරණය කරන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි. එය ඊ-තැපැල්, යෙදුම් සහ වෙබ් අඩවි ඇතුළු ඔබේ කාර්යාල ජාල ක්රියාකාරකම් නිරීක්ෂණය කළ හැකි, <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, වෙත ඔබ සම්බන්ධ වී ඇත.\n\nඔබ ඔබේ පෞද්ගලික ජාල ක්රියාකාරකම් නිරීක්ෂණය කළ හැකි, <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> වෙතද සම්බන්ධ වී ඇත."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"ඔබේ උපාංගය කළමනාකරණය කරන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි.\n\nඔබේ පරිපාලකට ඔබේ උපාංගය හා සම්බන්ධිත සැකසීම්, ආයතනික ප්රවේශය, යෙදුම්, දත්ත සහ ඔබේ උපාංගය තිබෙන ස්ථානයේ තොරතුරු නිරීක්ෂණය කිරීමට සහ කළමනාකරණය කිරීමට හැකිය.\n\nඔබ ඊ-තැපැල්, යෙදුම්, සහ වෙබ් අඩවි ඇතුළු ඔබේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකි <xliff:g id="APPLICATION">%2$s</xliff:g>, වෙතද සම්බන්ධව ඇත.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"ඔබේ වැඩ පැතිකඩ කළමනාකරණය කරනු ලබන්නේ <xliff:g id="ORGANIZATION">%1$s</xliff:g> විසිනි.\n\nඔබේ පරිපාලකට ඔබේ ඊ-තැපැල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකියාව ඇත.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න.\n\nඔබේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකි VPN සම්බන්ධතාවයකටද, ඔබ සම්බන්ධව ඇත."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"ඔබේ උපාංගය කළමනාකරණය කරනු ලබන්නේ <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> විසිනි.\nඔබේ වැඩ පැතිකඩ කළමනාකරණය කරනු ලබන්නේ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nඔබේ පරිපාලකට ඔබේ ඊ-තැපැල්, යෙදුම්, සහ ආරක්ෂාකාරී වෙබ් අඩවි ඇතුළු, ඔබගේ ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකියාව ඇත.\n\nවැඩිදුර තොරතුරු සඳහා, ඔබගේ පරිපාලක අමතන්න.\n\nඔබේ පුද්ගලික ජාල ක්රියාකාරකම් නිරීක්ෂණය කිරීමට හැකි VPN සම්බන්ධතාවයකටද, ඔබ සම්බන්ධව ඇත."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"ඔබ අතින් අගුළු අරින තුරු උපකරණය අගුළු වැටි තිබේ"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"දැනුම්දීම් ඉක්මනින් ලබාගන්න"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ඔබ අඟුළු හැරීමට කලින් ඒවා බලන්න"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"සියල්ල බලන්න"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"සියල්ල සඟවන්න"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"දැන් අවසන් කරන්න"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"දිග හරින්න"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"හකුළන්න"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"තීරය අමුණන ලදි"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ඔබ ගලවන තෙක් එය දර්ශනය තුළ මෙය තබයි. ගැලවීමට ආපසු සහ දළ විශ්ලේෂණය එකම වේලාවක ස්පර්ෂ කර අල්ලා සිටින්න."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"ඔබ ගලවන තෙක් එය දර්ශනය තුළ මෙය තබයි. ගැලවීමට දළ විශ්ලේෂණය ස්පර්ෂ කර අල්ලා සිටින්න."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ප්රතික්ෂේප කරන්න"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ධාරිතා සංවාදයයි"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"මුල් තත්ත්වය නැවත ප්රතිසාධනය කිරීමට ස්පර්ශ කරන්න."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ඔබ ඔබේ කාර්යාල පැතිකඩ භාවිත කරමින් සිටී"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"පද්ධති UI සුසරකය"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"කාවද්දන ලද බැටරි ප්රතිශතය පෙන්වන්න"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ආරෝපණය නොවන විට තත්ත්ව තීරු නිරූපකය ඇතුළත බැටරි මට්ටම් ප්රතිශතය පෙන්වන්න"</string> - <string name="quick_settings" msgid="10042998191725428">"ඉක්මන් සැකසීම්"</string> - <string name="status_bar" msgid="4877645476959324760">"තත්ත්ව තීරුව"</string> - <string name="demo_mode" msgid="2389163018533514619">"ආදර්ශන ප්රකාරය"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"ආදර්ශන ප්රකාරය සබල කරන්න"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ආදර්ශන ප්රකාරය පෙන්වන්න"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"එලාමය"</string> - <string name="status_bar_work" msgid="6022553324802866373">"කාර්යාල පැතිකඩ"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"ගුවන්යානා ප්රකාරය"</string> - <string name="add_tile" msgid="2995389510240786221">"ටයිල් එක් කරන්න"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"විකාශන ටයිල්"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"ඔබට ඔබේ ඊළඟ එලාමය <xliff:g id="WHEN">%1$s</xliff:g> ඔබ එයට පෙර මෙය ක්රියාවිරහිත නොකළේ නම් නොඇසෙනු ඇත."</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"ඔබට ඔබේ ඊළඟ එලාමය <xliff:g id="WHEN">%1$s</xliff:g> නොඇසෙනු ඇත"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> ට"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> දී"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"ඉක්මන් සැකසුම්, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"හොට්ස්පොට්"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"කාර්යාල පැතිකඩ"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"සමහරක් දේවල් වලට විනෝදයි, නමුත් සියල්ලටම නොවේ"</string> - <string name="tuner_warning" msgid="8730648121973575701">"පද්ධති UI සුසරකය ඔබට Android පරිශීලක අතුරු මුහුණත වෙනස් කිරීමට හෝ අභිරුචිකරණය කිරීමට අමතර ක්රම ලබා දේ. මෙම පර්යේෂණාත්මක අංග ඉදිරි නිකුත් වීම් වල වෙනස් වීමට, වැඩ නොකිරීමට, හෝ නැතිවීමට හැක. ප්රවේශමෙන් ඉදිරියට යන්න."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"මෙම පර්යේෂණාත්මක අංග ඉදිරි නිකුත් වීම් වල වෙනස් වීමට, වැඩ නොකිරීමට, හෝ නැතිවීමට හැක. ප්රවේශමෙන් ඉදිරියට යන්න."</string> - <string name="got_it" msgid="2239653834387972602">"තේරුණා"</string> - <string name="tuner_toast" msgid="603429811084428439">"සුබ පැතුම්! පද්ධති UI සුසරකය සැකසීම් වෙත එක් කර ඇත"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"සැකසීම් වෙතින් ඉවත් කරන්න"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"සැකසීම් වෙතින් පද්ධති UI සුසරකය ඉවත් කර සහ එහි සියලු අංග භාවිතය නවත් වන්නද?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"ඔබ කාර්යාල පැතිකඩේ සිටියි"</string> </resources> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 37d58c9cea19..b1a9b58f701d 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -22,19 +22,21 @@ <string name="app_label" msgid="7164937344850004466">"UI systému"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Vymazať"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Odstrániť zo zoznamu"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"O aplikácii"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Informácie o aplikácii"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Vaše nedávne obrazovky sa zobrazia tu."</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Zatvoriť nedávne aplikácie"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Počet obrazoviek v Prehľade: 1"</item> - <item quantity="other" msgid="5523506463832158203">"Počet obrazoviek v Prehľade: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="few">%d obrazovky v Prehľade</item> + <item quantity="many">%d obrazovky v Prehľade</item> + <item quantity="other">%d obrazoviek v Prehľade</item> + <item quantity="one">1 obrazovka v Prehľade</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Žiadne upozornenia"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Prebiehajúce"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Upozornenia"</string> <string name="battery_low_title" msgid="6456385927409742437">"Batéria je takmer vybitá"</string> <string name="battery_low_percent_format" msgid="2900940511201380775">"Zostáva <xliff:g id="PERCENTAGE">%s</xliff:g>"</string> - <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"Zostáva <xliff:g id="PERCENTAGE">%s</xliff:g>. Šetrič batérie je zapnutý."</string> + <string name="battery_low_percent_format_saver_started" msgid="6859235584035338833">"Zostáva <xliff:g id="PERCENTAGE">%s</xliff:g>. Úspora batérie je zapnutá."</string> <string name="invalid_charger" msgid="4549105996740522523">"Nabíjanie pomocou rozhrania USB nie je podporované.\nPoužívajte iba nabíjačku, ktorá bola dodaná spolu so zariadením."</string> <string name="invalid_charger_title" msgid="3515740382572798460">"Nabíjanie prostredníctvom USB nie je podporované."</string> <string name="invalid_charger_text" msgid="5474997287953892710">"Používajte iba originálnu nabíjačku."</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Povoliť ladenie USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Digitálny odtlačok RSA počítača je:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Vždy povoliť z tohto počítača"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Ladenie cez USB nie je povolené"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Používateľ, ktorý je práve prihlásený na tomto zariadení, nemôže zapnúť ladenie cez USB. Ak chcete použiť túto funkciu, prepnite na hlavného používateľa <xliff:g id="NAME">%s</xliff:g>."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Priblížiť na celú obrazovku"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Na celú obrazovku"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Prebieha ukladanie snímky obrazovky..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Hľadať"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparát"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefón"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Hlasový asistent"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Odomknúť"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Tlačidlo Odomknúť, čaká sa na odtlačok"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Odomknúť bez použitia odtlačku"</string> <string name="unlock_label" msgid="8779712358041029439">"odomknúť"</string> <string name="phone_label" msgid="2320074140205331708">"otvoriť telefón"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"otvoriť hlasového asistenta"</string> <string name="camera_label" msgid="7261107956054836961">"spustiť fotoaparát"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Vyberte nové rozloženie úlohy"</string> <string name="cancel" msgid="6442560571259935130">"Zrušiť"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Dve čiarky signálu dátovej siete."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tri čiarky signálu dátovej siete."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Plný signál dátovej siete."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Sieť Wi-Fi je vypnutá."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Sieť Wi-Fi je odpojená."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Jedna čiarka signálu siete Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Dve čiarky signálu siete Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Tri čiarky signálu siete Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Plný signál siete Wi-Fi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Pripojené k zariadeniu <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Pripojené k zariadeniu <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Žiadna sieť WiMAX."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Dva stĺpce signálu siete WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Tri stĺpce signálu siete WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Plný signál siete WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Sieť ethernet je odpojená"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Sieť ethernet je pripojená"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Žiadny signál."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Nepripojené."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Žiadna čiarka."</string> @@ -145,10 +145,9 @@ <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"Roaming"</string> <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> - <string name="accessibility_no_sim" msgid="8274017118472455155">"Žiadna SIM karta."</string> + <string name="accessibility_no_sim" msgid="8274017118472455155">"Žiadna karta SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Pripojenie cez Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Režim v lietadle."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Žiadna SIM karta."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Zmena siete operátora"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +166,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Aplikácia <xliff:g id="APP">%s</xliff:g> bola zrušená."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Všetky nedávne aplikácie boli odmietnuté."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Spúšťa sa aplikácia <xliff:g id="APP">%s</xliff:g>"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Upozornenie bolo zrušené."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Panel upozornení."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Rýchle nastavenia."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Uzamknutá obrazovka"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavenia"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Prehľad"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Zavrieť"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Potvrdiť"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Používateľ: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Pripojenie Wi-Fi je vypnuté."</string> @@ -186,7 +184,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Režim v lietadle je vypnutý."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Režim v lietadle je zapnutý."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Stav Nerušiť je zapnutý, iba prioritné."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Stav Nerušiť je zapnutý, úplné ticho."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Stav Nerušiť je zapnutý, žiadne prerušenia."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Stav Nerušiť je zapnutý, iba budíky."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Stav Nerušiť je vypnutý."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Stav Nerušiť je vypnutý."</string> @@ -241,7 +239,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Nerušiť"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Iba prioritné"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Iba budíky"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Úplné ticho"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Žiadne prerušenia"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Rozhranie Bluetooth (počet zariadení: <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Rozhranie Bluetooth je vypnuté"</string> @@ -266,8 +264,8 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Nepripojené"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Žiadna sieť"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Sieť Wi-Fi je vypnutá"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"K dispozícii nie sú žiadne siete Wi-Fi"</string> - <string name="quick_settings_cast_title" msgid="7709016546426454729">"Prenos"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Nie sú k dispozícii žiadne uložené siete"</string> + <string name="quick_settings_cast_title" msgid="7709016546426454729">"Prenášanie"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Prenáša sa"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nepomenované zariadenie"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Pripravené na prenášanie"</string> @@ -285,7 +283,7 @@ <string name="quick_settings_notifications_label" msgid="4818156442169154523">"Upozornenia"</string> <string name="quick_settings_flashlight_label" msgid="2133093497691661546">"Baterka"</string> <string name="quick_settings_cellular_detail_title" msgid="8575062783675171695">"Mobilné dáta"</string> - <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Spotreba dát"</string> + <string name="quick_settings_cellular_detail_data_usage" msgid="1964260360259312002">"Využitie dát"</string> <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"Zostávajúce údaje"</string> <string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"Limit bol prekročený"</string> <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Využité: <xliff:g id="DATA_USED">%s</xliff:g>"</string> @@ -308,28 +306,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Vyhľadávanie"</string> <string name="description_direction_up" msgid="7169032478259485180">"Prejdite prstom nahor: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Prejdite prstom doľava: <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Nebudú vás rušiť zvuky ani vibrácie s výnimkou budíkov, pripomenutí, udalostí a volajúcich, ktoré špecifikujete."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Žiadne vyrušenia, ani budíky"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Nebudú vás rušiť zvuky ani vibrácie s výnimkou budíkov, upozornení, udalostí a volajúcich, ktoré zadáte."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Prispôsobiť"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Zablokujú sa tým VŠETKY zvuky a vibrácie vrátane zvukov budíkov, hudby, videí a hier. Stále však budete môcť telefonovať."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Zablokujú sa tým VŠETKY zvuky a vibrácie vrátane zvukov budíkov, hudby, videí a hier."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Žiadne vyrušenia"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Iba prioritné vyrušenia"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Iba budíky"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Ďalší budík: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ďalší budík: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Váš budík o <xliff:g id="ALARM_TIME">%s</xliff:g> sa nespustí"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Menej naliehavé upozornenia sa nachádzajú nižšie"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Otvorte opätovným klepnutím"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Odomknete prejdením prstom nahor"</string> - <string name="phone_hint" msgid="4872890986869209950">"Telefón otvoríte prejdením prstom od ikony"</string> - <string name="voice_hint" msgid="8939888732119726665">"Hlasového asistenta otvoríte prejdením prstom od ikony"</string> - <string name="camera_hint" msgid="7939688436797157483">"Fotoaparát otvoríte prejdením prstom od ikony"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Úplné ticho. Toto nastavenie stlmí aj čítačky obrazovky."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Úplné ticho"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Zariadenie odomknete prejdením prstom nahor"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telefón otvoríte prejdením prstom doľava"</string> + <string name="camera_hint" msgid="5241441720959174226">"Fotoaparát otvoríte prejdením prstom doľava"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Žiadne prerušenia"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Iba prioritné"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Iba budíky"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Úplné\nticho"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Všetky"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Žiadne\nprerušenia"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Iba\nprioritné"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Iba\nbudíky"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nabíja sa (úplné nabitie o <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Prepnutie používateľa"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Prepnúť používateľa (súčasný používateľ: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>)"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Aktuálny používateľ <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Zobraziť profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Pridať používateľa"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nový používateľ"</string> @@ -344,7 +345,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Začať odznova"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Áno, pokračovať"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Hosť"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Ak chcete odstrániť aplikácie a údaje, odstráňte hosťa."</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Ak chcete vymazať aplikácie a údaje, odstráňte hosťa."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ODSTRÁNIŤ HOSŤA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Pridať nového používateľa?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Keď pridáte nového používateľa, musí si nastaviť vlastný priestor.\n\nAkýkoľvek používateľ môže aktualizovať aplikácie všetkých ostatných používateľov."</string> @@ -366,15 +367,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Deaktivovať VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Odpojiť sieť VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Vaše zariadenie spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSprávca môže sledovať a spravovať nastavenia, firemný prístup, aplikácie a údaje priradené k vášmu zariadeniu a informácie o polohe zariadenia. Ďalšie informácie získate od svojho správcu."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Určitej aplikácii ste udelili povolenie nastaviť pripojenie VPN.\n\nTáto aplikácia môže sledovať vaše zariadenie a aktivitu v sieti vrátane e-mailových správ, aplikácií a webových stránok."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Váš pracovný profil spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácií a zabezpečených webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Vaše zariadenie spravuje organizácia:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVáš pracovný profil spravuje organizácia:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nSprávca môže sledovať vaše zariadenie a aktivitu v sieti vrátane e-mailových správ, aplikácií a zabezpečených webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Určitej aplikácii ste povolili nastaviť pripojenie VPN.\n\nTáto aplikácia môže sledovať vaše zariadenie a aktivitu v sieti vrátane e-mailových správ, aplikácií a zabezpečených webových stránok."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Vaše zariadenie spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSprávca môže sledovať a spravovať nastavenia, firemný prístup, aplikácie a údaje priradené k vášmu zariadeniu a informácie o polohe zariadenia.\n\nSte tiež pripojený/-á k sieti VPN, ktorá môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácii a webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Váš pracovný profil spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácií a webových stránok.\n\nĎalšie informácie získate od svojho správcu.\n\nSte tiež pripojený/-á k sieti VPN, ktorá môže sledovať vašu aktivitu v sieti."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Ste pripojený/-á k aplikácii <xliff:g id="APPLICATION">%1$s</xliff:g>, ktorá môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácií a webových stránok."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Ste pripojený/-á k aplikácii <xliff:g id="APPLICATION">%1$s</xliff:g>, ktorá môže sledovať vašu osobnú aktivitu v sieti vrátane e-mailových správ, aplikácií a webových stránok."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Váš pracovný profil spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Je pripojený k aplikácii <xliff:g id="APPLICATION">%2$s</xliff:g>, ktorá môže sledovať vašu pracovnú aktivitu v sieti vrátane e-mailových správ, aplikácií a webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Váš pracovný profil spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Je pripojený k aplikácii <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, ktorá môže sledovať vašu pracovnú aktivitu v sieti vrátane e-mailových správ, aplikácií a webových stránok.\n\nSte tiež pripojený/-á k aplikácii <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, ktorá môže sledovať vašu osobnú aktivitu v sieti."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Vaše zariadenie spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSprávca môže sledovať a spravovať nastavenia, podnikový prístup, aplikácie a údaje priradené k vášmu účtu, ako aj informácie o polohe zariadenia.\n\nSte pripojený/-á k aplikácii <xliff:g id="APPLICATION">%2$s</xliff:g>, ktorá môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácii a webových stránok.\n\nĎalšie informácie získate od svojho správcu."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Váš pracovný profil spravuje organizácia <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácií a zabezpečených webových stránok.\n\nĎalšie informácie získate od svojho správcu.\n\nSte tiež pripojený/-á k sieti VPN, ktorá môže sledovať vašu osobnú aktivitu v sieti."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Vaše zariadenie spravuje organizácia <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nVáš pracovný profil spravuje organizácia:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nSprávca môže sledovať vašu aktivitu v sieti vrátane e-mailových správ, aplikácií a zabezpečených webových stránok.\n\nĎalšie informácie získate od svojho správcu.\n\nSte tiež pripojený/-á k sieti VPN, ktorá môže sledovať vašu osobnú aktivitu v sieti."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Zariadenie zostane uzamknuté, dokým ho ručne neodomknete."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Získavať upozornenia rýchlejšie"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Zobraziť pred odomknutím"</string> @@ -383,9 +381,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Zobraziť všetko"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skryť všetko"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Skončiť"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Rozbaliť"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Zbaliť"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Obrazovka je pripnutá"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Obsah bude pripnutý v zobrazení, dokým ho neuvoľníte. Ak ho chcete uvoľniť, stlačte a podržte súčasne tlačidlá Späť a Prehľad."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Obsah bude pripnutý v zobrazení, dokým ho neuvoľníte. Uvoľníte ho stlačením a podržaním tlačidla Prehľad."</string> @@ -399,33 +394,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Odmietnuť"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je dialóg hlasitosti"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Klepnutím obnovíte originál."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Používate svoj pracovný profil."</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Tuner používateľského rozhrania systému"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Zobraziť percentá vloženej batérie"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Percentuálne zobrazenie nabitia batérie vnútri ikony v stavovom riadku, keď neprebieha nabíjanie"</string> - <string name="quick_settings" msgid="10042998191725428">"Rýchle nastavenia"</string> - <string name="status_bar" msgid="4877645476959324760">"Stavový riadok"</string> - <string name="demo_mode" msgid="2389163018533514619">"Režim ukážky"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Povoliť režim ukážky"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Zobraziť režim ukážky"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Budík"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Pracovný profil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Režim v lietadle"</string> - <string name="add_tile" msgid="2995389510240786221">"Pridať dlaždicu"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Dlaždica Vysielanie"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Pokiaľ toto nastavenie nevypnete, váš budík o <xliff:g id="WHEN">%1$s</xliff:g> sa nespustí"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Váš budík o <xliff:g id="WHEN">%1$s</xliff:g> sa nespustí"</string> - <string name="alarm_template" msgid="3980063409350522735">"o <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Rýchle nastavenia, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Pracovný profil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Pri používaní tuneru postupujte opatrne"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Tuner používateľského rozhrania systému poskytujte ďalšie spôsoby ladenia a prispôsobenia používateľského rozhrania Android. Tieto experimentálne funkcie sa môžu v budúcich verziách zmeniť, ich poskytovanie môže byť prerušené alebo môžu byť odstránené. Pokračujte opatrne."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Tieto experimentálne funkcie sa môžu v budúcich verziách zmeniť, ich poskytovanie môže byť prerušené alebo môžu byť odstránené. Pokračujte opatrne."</string> - <string name="got_it" msgid="2239653834387972602">"Dobre"</string> - <string name="tuner_toast" msgid="603429811084428439">"Výborne, tuner používateľského rozhrania systému bol pridaný do Nastavení"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Odstrániť z Nastavení"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Chcete odstrániť tuner používateľského rozhrania systému z Nastavení a prestať používať všetky jeho funkcie?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Nachádzate sa v pracovnom profile"</string> </resources> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index a5ab99f9cc30..dbc0cb2355fb 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Podatki o aplikaciji"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Vaši nedavni zasloni so prikazani tu"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Zapre nedavne aplikacije"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"En zaslon v Pregledu"</item> - <item quantity="other" msgid="5523506463832158203">"Št. zaslonov v Pregledu: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d zaslon v pregledu</item> + <item quantity="two">%d zaslona v pregledu</item> + <item quantity="few">%d zasloni v pregledu</item> + <item quantity="other">%d zaslonov v pregledu</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Ni obvestil"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Trenutno"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Obvestila"</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Ali dovolite odpravljanje težav prek USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Računalnikov prstni odtis ključa RSA je:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Vedno dovoli iz tega računalnika"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Odpravljanje napak s povezavo USB ni dovoljeno"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Uporabnik, trenutno prijavljen v napravo, ne more vklopiti odpravljanja napak s povezavo USB. Če želite uporabljati to funkcijo, preklopite na primarnega uporabnika »<xliff:g id="NAME">%s</xliff:g>«."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Povečava čez cel zaslon"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Raztegnitev čez zaslon"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Shranjev. posnetka zaslona ..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Iskanje"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Fotoaparat"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Glasovni pomočnik"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Odkleni"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Gumb za odklepanje, čakanje na prstni odtis"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Odklepanje brez prstnega odtisa"</string> <string name="unlock_label" msgid="8779712358041029439">"odkleni"</string> <string name="phone_label" msgid="2320074140205331708">"odpri telefon"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"odpri glasovnega pomočnika"</string> <string name="camera_label" msgid="7261107956054836961">"odpri fotoaparat"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Izberite novo postavitev opravil"</string> <string name="cancel" msgid="6442560571259935130">"Prekliči"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Podatki z dvema črticama."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Podatki s tremi črticami."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Podatkovni signal poln."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi je izklopljen."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Povezava Wi-Fi je prekinjena."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi z eno črtico."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi z dvema črticama."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi s tremi črticami."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Poln signal Wi-Fi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Povezava vzpostavljena z: <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Povezava vzpostavljena z: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ni signala WiMAX."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Signal WiMAX: dve črtici."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Signal WiMAX: tri črtice."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Poln signal WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernetna povezava je prekinjena."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernetna povezava je vzpostavljena."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ni signala."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Ni povezan."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Nič črtic."</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Ni kartice SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Internet prek Bluetootha."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Način za letalo."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Ni kartice SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Spreminjanje omrežja operaterja."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterija <xliff:g id="NUMBER">%d</xliff:g> odstotkov."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Sistemske nastavitve."</string> @@ -165,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Aplikacija <xliff:g id="APP">%s</xliff:g> je bila odstranjena."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Vse nedavne aplikacije so bile opuščene."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Zaganjanje aplikacije <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Obvestilo je bilo odstranjeno."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Zaslon z obvestili."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hitre nastavitve."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Zaklenjen zaslon"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Nastavitve"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Pregled."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Zapri"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Potrdi"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Uporabnik: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi je izklopljen."</string> @@ -184,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Način za letalo je izklopljen."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Način za letalo je vklopljen."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Način »ne moti« je vklopljen, samo prednostno."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Način »ne moti« je vklopljen, popolna tišina."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Način »ne moti« je vklopljen, ni prekinitev."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Način »ne moti« je vklopljen, samo alarmi."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Način »ne moti« je izklopljen."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Način »ne moti« je izklopljen."</string> @@ -239,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ne moti"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Samo prednostno"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Samo alarmi"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Popolna tišina"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Brez prekinitev"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (št. naprav: <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth izklopljen"</string> @@ -264,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Povezava ni vzpostavljena"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ni omrežja"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi izklopljen"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Na voljo ni nobeno omrežje Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Na voljo ni nobeno shranjeno omrežje"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Predvajanje"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Predvajanje"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Neimenovana naprava"</string> @@ -306,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Iskanje"</string> <string name="description_direction_up" msgid="7169032478259485180">"Povlecite navzgor za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Povlecite v levo za <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Ne bodo vas motili zvoki in vibriranje, razen od alarmov, opomnikov, dogodkov in klicateljev, ki jih določite."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Brez motenj. Celo brez alarmov."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Ne bodo vas motili zvoki ali tresenje, razen od alarmov, opomnikov, dogodkov in klicateljev, ki jih določite."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Prilagodi"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"S tem so blokirani VSI zvoki in vibriranje – tudi od alarmov, glasbe, videoposnetkov in iger. Še vedno boste lahko opravljali telefonske klice."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"S tem so blokirani VSI zvoki in vibriranje – tudi od alarmov, glasbe, videoposnetkov in iger."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Brez prekinitev"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Samo prednostne prekinitve"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Samo alarmi"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Vaš naslednji alarm je ob <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Vaš naslednji alarm: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Alarma ob <xliff:g id="ALARM_TIME">%s</xliff:g> ne boste slišali"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Manj nujna obvestila spodaj"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Dotaknite se znova, če želite odpreti"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Povlecite, da odklenete"</string> - <string name="phone_hint" msgid="4872890986869209950">"Povlecite z ikone za telefon"</string> - <string name="voice_hint" msgid="8939888732119726665">"Povlecite z ikone za glasovnega pomočnika"</string> - <string name="camera_hint" msgid="7939688436797157483">"Povlecite z ikone za fotoaparat"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Popolna tišina. Utišani bodo tudi bralniki zaslona."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Popolna tišina"</string> + <string name="phone_hint" msgid="3101468054914424646">"Povlecite v desno za telefon"</string> + <string name="camera_hint" msgid="5241441720959174226">"Povlecite v levo za fotoaparat"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Brez prekinitev"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Samo prednostno"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Samo alarmi"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Popolna\ntišina"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Vse"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Brez\nprekinitev"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Samo\nprednostno"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Samo\nalarmi"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Polnjenje (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> do napolnjenosti)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Preklop med uporabniki"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Preklop med uporabniki, trenutni uporabnik <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Trenutni uporabnik: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Prikaz profila"</string> <string name="user_add_user" msgid="5110251524486079492">"Dodajanje uporabnika"</string> <string name="user_new_user_name" msgid="426540612051178753">"Nov uporabnik"</string> @@ -342,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Začni znova"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Da, nadaljuj"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gost"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Če želite izbrisati aplikacije in podatke, odstranite gosta"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Odstranite gosta, če želite izbrisati aplikacije in podatke"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ODSTRANI GOSTA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Dodajanje novega uporabnika?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Ko dodate novega uporabnika, mora ta nastaviti svoj prostor.\n\nVsak uporabnik lahko posodobi aplikacije za vse druge uporabnike."</string> @@ -364,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Onemogoči VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Prekini povezavo z VPN-jem"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Napravo upravlja: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSkrbnik lahko nadzira in upravlja nastavitve, dostop za podjetje, aplikacije, podatke, povezane z napravo, in podatke o lokaciji naprave. Če želite več informacij, se obrnite na skrbnika."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Aplikaciji ste dovolili vzpostavitev povezave VPN.\n\nTa aplikacija lahko nadzira napravo in omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Delovni profil upravlja: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSkrbnik lahko nadzira omrežno dejavnost, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Napravo upravlja:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nDelovni profil upravlja:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nSkrbnik lahko nadzira napravo in omrežno dejavnost, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Aplikaciji ste dovolili vzpostavitev povezave z omrežjem VPN.\n\nTa aplikacija lahko nadzira napravo in omrežno dejavnost, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Napravo upravlja: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSkrbnik lahko nadzira in upravlja nastavitve, dostop za podjetje, aplikacije, podatke, povezane z napravo, in podatke o lokaciji naprave.\n\nPovezani ste z omrežjem VPN, ki lahko nadzira vašo omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Delovni profil upravlja organizacija <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSkrbnik lahko nadzira omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika.\n\nPovezani ste tudi z omrežjem VPN, ki lahko nadzira omrežno dejavnost."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Povezani ste z aplikacijo <xliff:g id="APPLICATION">%1$s</xliff:g>, ki lahko nadzira omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Povezani ste z aplikacijo <xliff:g id="APPLICATION">%1$s</xliff:g>, ki lahko nadzira vašo osebno omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Delovni profil upravlja organizacija <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Povezan je z aplikacijo <xliff:g id="APPLICATION">%2$s</xliff:g>, ki lahko nadzira vašo delovno omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Delovni profil upravlja organizacija <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Povezan je z aplikacijo <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, ki lahko nadzira vašo delovno omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti.\n\nPovezani ste tudi z aplikacijo <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, ki lahko nadzira vašo osebno omrežno dejavnost."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Napravo upravlja organizcija <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSkrbnik lahko nadzira in upravlja nastavitve, dostop za podjetje, aplikacije, podatke, povezane z napravo, in podatke o lokaciji naprave.\n\nPovezani ste z aplikacijo <xliff:g id="APPLICATION">%2$s</xliff:g>, ki lahko nadzira omrežno dejavnost, vključno z e-pošto, aplikacijami in spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Delovni profil upravlja: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nSkrbnik lahko nadzira omrežno dejavnost, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika.\n\nPovezani ste tudi z omrežjem VPN, ki lahko nadzira vašo omrežno dejavnost."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Napravo upravlja: <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nDelovni profil upravlja:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nSkrbnik lahko nadzira omrežno dejavnost, vključno z e-pošto, aplikacijami in varnimi spletnimi mesti.\n\nČe želite več informacij, se obrnite na skrbnika.\n\nPovezani ste tudi z omrežjem VPN, ki lahko nadzira vašo osebno omrežno dejavnost."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Naprava bo ostala zaklenjena, dokler je ročno ne odklenete."</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Hitrejše prejemanje obvestil"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Oglejte si jih pred odklepanjem"</string> @@ -381,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Pokaži vse"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Skrij vse"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Končaj zdaj"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Razširi"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Strni"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Zaslon je pripet"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"S tem ostane zaslon v pogledu, dokler ga ne odpnete. Hkrati pridržite tipko za nazaj in tipko za pregled, če ga želite odpeti."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"S tem ostane zaslon v pogledu, dokler ga ne odpnete. Pridržite tipko za pregled, če ga želite odpeti."</string> @@ -397,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Zavrni"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> je pogovorno okno glede prostornine"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Dotaknite se, če želite obnoviti izvirnik."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Uporabljate delovni profil"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Uglaševalnik uporabniškega vmesnika sistema"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Prikaži odstotek napolnjenosti vgraj. akumulatorja"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Prikaz odstotka napolnjenosti akumulatorja znotraj ikone v vrstici stanja, ko se ne polni"</string> - <string name="quick_settings" msgid="10042998191725428">"Hitre nastavitve"</string> - <string name="status_bar" msgid="4877645476959324760">"Vrstica stanja"</string> - <string name="demo_mode" msgid="2389163018533514619">"Predstavitveni način"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Omogočanje predstavitvenega načina"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Prikaz predstavitvenega načina"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Opozorilo"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profil za Android Work"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Način za letalo"</string> - <string name="add_tile" msgid="2995389510240786221">"Dodajanje ploščice"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Ploščica za oddajanje"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Naslednjega alarma ob <xliff:g id="WHEN">%1$s</xliff:g> ne boste slišali, razen če prej te nastavitve ne izklopite"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Naslednjega alarma ob <xliff:g id="WHEN">%1$s</xliff:g> ne boste slišali"</string> - <string name="alarm_template" msgid="3980063409350522735">"ob <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"ob tem času: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Hitre nastavitve, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Dostopna točka"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Delovni profil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Zabavno za nekatere, a ne za vse"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Uglaševalnik uporabniškega vmesnika sistema vam omogoča dodatne načine za spreminjanje in prilagajanje uporabniškega vmesnika Android. Te poskusne funkcije lahko v prihodnjih izdajah kadar koli izginejo, se spremenijo ali pokvarijo. Bodite previdni."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Te poskusne funkcije lahko v prihodnjih izdajah kadar koli izginejo, se spremenijo ali pokvarijo. Bodite previdni."</string> - <string name="got_it" msgid="2239653834387972602">"Razumem"</string> - <string name="tuner_toast" msgid="603429811084428439">"Čestitke! Uglaševalnik uporabniškega vmesnika sistema je bil dodan v nastavitve."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Odstrani iz nastavitev"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Ali želite odstraniti Uglaševalnik uporabniškega vmesnika sistema iz nastavitev in prenehati uporabljati vse njegove funkcije?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Ste v profilu za Android Work"</string> </resources> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 88cb7480be16..308feb5fdd6e 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -25,10 +25,11 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Информације о апликацији"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Недавни екрани се појављују овде"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Одбаци недавне апликације"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 екран у Прегледу"</item> - <item quantity="other" msgid="5523506463832158203">"%d екрана у Прегледу"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d екран у Прегледу</item> + <item quantity="few">%d екрана у Прегледу</item> + <item quantity="other">%d екрана у Прегледу</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Нема обавештења"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Текуће"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Обавештења"</string> @@ -63,8 +64,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Желите ли да дозволите отклањање USB грешака?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Дигитални отисак RSA кључа овог рачунара је:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Увек дозволи са овог рачунара"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Отклањање грешака на USB-у није дозвољено"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Корисник који је тренутно пријављен на овај уређај не може да укључи отклањање грешака на USB-у. Да бисте користили ову функцију, пребаците на примарног корисника „<xliff:g id="NAME">%s</xliff:g>“."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Зумирај на целом екрану"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Развуци на цео екран"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Чување снимка екрана..."</string> @@ -85,13 +84,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Претражите"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Телефон"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Гласовна помоћ"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Откључајте"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Дугме за откључавање, чека се на отисак прста"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Откључај без коришћења отиска прста"</string> <string name="unlock_label" msgid="8779712358041029439">"откључај"</string> <string name="phone_label" msgid="2320074140205331708">"отвори телефон"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"отвори гласовну помоћ"</string> <string name="camera_label" msgid="7261107956054836961">"отвори камеру"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Изабери нови распоред задатака"</string> <string name="cancel" msgid="6442560571259935130">"Откажи"</string> @@ -114,6 +109,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Сигнал за податке од две црте."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Сигнал за податке од три црте."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Сигнал за податке је најјачи."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi је искључен."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi веза је прекинута."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi сигнал од једне црте."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi сигнал од две црте."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi сигнал од три црте."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi сигнал је најјачи."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Повезани сте са <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Повезани сте са <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Нема WiMAX сигнала."</string> @@ -121,8 +122,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX сигнал има две црте."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX сигнал има три црте."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX сигнал је најјачи."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Веза са етернетом је прекинута."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Етернет је повезан."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Нема сигнала."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Није повезано."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Ниједна црта."</string> @@ -148,7 +147,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Нема SIM картице."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth привезивање."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Режим рада у авиону."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Нема SIM картице."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Промена мреже мобилног оператера."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Батерија је на <xliff:g id="NUMBER">%d</xliff:g> посто."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Системска подешавања."</string> @@ -165,14 +163,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Апликација <xliff:g id="APP">%s</xliff:g> је одбачена."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Све недавно коришћене апликације су одбачене."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Покрећемо <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Обавештење је одбачено."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Прозор са обавештењима."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Брза подешавања."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Закључани екран."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Подешавања"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Преглед."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Затвори"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Потврди"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Корисник: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi је искључен."</string> @@ -184,7 +181,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Режим рада у авиону је искључен."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Режим рада у авиону је укључен."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Подешавање Не узнемиравај је укључено, само приоритетни прекиди."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Подешавање Не узнемиравај је укључено, потпуна тишина."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Подешавање Не узнемиравај је укључено, без прекида."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Подешавање Не узнемиравај је укључено, само аларми."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Подешавање Не узнемиравај је искључено."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Подешавање Не узнемиравај је искључено."</string> @@ -239,7 +236,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не узнемиравај"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Само приоритетни прекиди"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Само аларми"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Потпуна тишина"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без прекида"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> уређаја)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth искључен"</string> @@ -264,7 +261,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Веза није успостављена"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Нема мреже"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi је искључен"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Није доступна ниједна Wi-Fi мрежа"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Није доступна ниједна сачувана мрежа"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Пребацивање"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Пребацивање"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Неименовани уређај"</string> @@ -306,28 +303,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Претрага"</string> <string name="description_direction_up" msgid="7169032478259485180">"Превуците нагоре за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Превуците улево за <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Неће вас узнемиравати звукови и вибрације, осим за аларме, подсетнике, догађаје и позиваоце које изаберете."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Нема прекида. Чак ни аларма."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Неће вас узнемиравати звукови и вибрације осим за аларме, подсетнике, догађаје и позиваоце које изаберете."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Прилагоди"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Ово блокира СВЕ звукове и вибрације укључујући аларме, музику, видео снимке и игре. И даље ћете моћи да упућујете позиве."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Ово блокира СВЕ звукове и вибрације укључујући аларме, музику, видео снимке и игре."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Без прекида"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Само приоритетни прекиди"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Само аларми"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Следећи аларм је у <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Следећи аларм: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Нећете чути аларм у <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Мање хитна обавештења су у наставку"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Додирните поново да бисте отворили"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Превуците нагоре да бисте откључали"</string> - <string name="phone_hint" msgid="4872890986869209950">"Превуците од иконе за телефон"</string> - <string name="voice_hint" msgid="8939888732119726665">"Превуците од иконе за гласовну помоћ"</string> - <string name="camera_hint" msgid="7939688436797157483">"Превуците од иконе за камеру"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Потпуна тишина. И читачи екрана ће бити искључени."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Потпуна тишина"</string> + <string name="phone_hint" msgid="3101468054914424646">"Превуците удесно за телефон"</string> + <string name="camera_hint" msgid="5241441720959174226">"Превуците улево за камеру"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Без прекида"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Само приоритетни прекиди"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Само аларми"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Потпуна\nтишина"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Све"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nпрекида"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Само\nприорит. прекиди"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Само\nаларми"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Пуњење (пун је за <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Замени корисника"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Промените корисника, актуелни корисник је <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Актуелни корисник <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Прикажи профил"</string> <string name="user_add_user" msgid="5110251524486079492">"Додај корисника"</string> <string name="user_new_user_name" msgid="426540612051178753">"Нови корисник"</string> @@ -342,7 +342,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Почни из почетка"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Да, настави"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Гост"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Да бисте избрисали апликације и податке, уклоните госта"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Уклоните госта да бисте избрисали апликације и податке"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"УКЛОНИ ГОСТА"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Додајете новог корисника?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Када додате новог корисника, та особа треба да подеси сопствени простор.\n\nСваки корисник може да ажурира апликације за све остале кориснике."</string> @@ -364,15 +364,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Онемогући VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Прекини везу са VPN-ом"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Уређајем управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор може да надгледа подешавања, корпоративни приступ, апликације, податке повезане са уређајем и информације о локацији уређаја, као и да управља њима. Више информација потражите од администратора."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Дали сте дозволу апликацији да подешава VPN везу.\n\nТа апликација може да надгледа активности на уређају и мрежи, укључујући имејлове, апликације и веб-сајтове."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Профилом за Work profile управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор може да надгледа активности на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nВише информација потражите од администратора."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Уређајем управља:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nПрофилом за Work управља:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистратор може да надгледа активности на уређају и мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nВише информација потражите од администратора."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Дали сте дозволу апликацији да подешава VPN везу.\n\nТа апликација може да надгледа активности на уређају и мрежи, укључујући имејлове, апликације и безбедне веб-сајтове."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Уређајем управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор може да надгледа подешавања, корпоративни приступ, апликације, податке повезане са уређајем и информације о локацији уређаја, као и да управља њима.\n\nПовезани сте на VPN, који може да надгледа активности на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nВише информација потражите од администратора."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Профилом за Work управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор може да надгледа активности на мрежи, укључујући имејлове, апликације и веб-сајтове.\n\nВише информација потражите од администратора.\n\nПовезани сте и на VPN, који може да надгледа активности на личној мрежи."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Повезани сте са апликацијом <xliff:g id="APPLICATION">%1$s</xliff:g>, која може да надгледа активности на мрежи, укључујући имејлове, апликације и веб-сајтове."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Повезани сте са апликацијом <xliff:g id="APPLICATION">%1$s</xliff:g>, која може да надгледа активности на личној мрежи, укључујући имејлове, апликације и веб-сајтове."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Профилом за Work управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Повезан је са апликацијом <xliff:g id="APPLICATION">%2$s</xliff:g>, која може да надгледа активности на пословној мрежи, укључујући имејлове, апликације и веб-сајтове.\n\nВише информација потражите од администратора."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Профилом за Work управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Повезан је са апликацијом <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, која може да надгледа активности на пословној мрежи, укључујући имејлове, апликације и веб-сајтове.\n\nПовезани сте и са апликацијом <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, која може да надгледа активности на личној мрежи."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Уређајем управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор може да надгледа подешавања, корпоративни приступ, апликације, податке повезане са уређајем и информације о локацији уређаја, као и да управља њима.\n\nПовезани сте са апликацијом <xliff:g id="APPLICATION">%2$s</xliff:g>, која може да надгледа активности на мрежи, укључујући имејлове, апликације и веб-сајтове.\n\nВише информација потражите од администратора."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Профилом за Work управља <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдминистратор може да надгледа активности на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nВише информација потражите од администратора.\n\nПовезани сте и на VPN, који може да надгледа активности на личној мрежи."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Уређајем управља <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nПрофилом за Work управља:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдминистратор може да надгледа активности на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nВише информација потражите од администратора.\n\nПовезани сте и на VPN, који може да надгледа активности на личној мрежи"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Уређај ће остати закључан док га не откључате ручно"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Брже добијајте обавештења"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Прегледајте их пре откључавања"</string> @@ -381,9 +378,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Прикажи све"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Сакриј све"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Прекини одмах"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Прошири"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Скупи"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екран је закачен"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"На овај начин ово остаје приказано док га не откачите. Истовремено додирните и задржите Назад и Преглед да бисте га откачили."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"На овај начин ово остаје приказано док га не откачите. Додирните и задржите Преглед да бисте га откачили."</string> @@ -397,33 +391,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Одбиј"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> је дијалог за јачину звука"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Додирните да бисте вратили оригинал."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Користите профил за Work"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Тјунер за кориснички интерфејс система"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Приказуј уграђени проценат батерије"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Приказивање нивоа напуњености батерије у процентима унутар иконе на статусној траци када се батерија не пуни"</string> - <string name="quick_settings" msgid="10042998191725428">"Брза подешавања"</string> - <string name="status_bar" msgid="4877645476959324760">"Статусна трака"</string> - <string name="demo_mode" msgid="2389163018533514619">"Режим демонстрације"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Омогући режим демонстрације"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Прикажи режим демонстрације"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Етернет"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Аларм"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Профил за Work"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Режим рада у авиону"</string> - <string name="add_tile" msgid="2995389510240786221">"Додај плочицу"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Плочица за емитовање"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Нећете чути следећи аларм у <xliff:g id="WHEN">%1$s</xliff:g> ако не искључите ово пре тога"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Нећете чути следећи аларм у <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"у <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"у <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Брза подешавања, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Хотспот"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Профил за Work"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Забава за неке, али не за све"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Тјунер за кориснички интерфејс система вам пружа додатне начине за подешавање и прилагођавање Android корисничког интерфејса. Ове експерименталне функције могу да се промене, откажу или нестану у будућим издањима. Будите опрезни."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ове експерименталне функције могу да се промене, откажу или нестану у будућим издањима. Будите опрезни."</string> - <string name="got_it" msgid="2239653834387972602">"Важи"</string> - <string name="tuner_toast" msgid="603429811084428439">"Честитамо! Тјунер за кориснички интерфејс система је додат у Подешавања"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Уклони из Подешавања"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Желите ли да уклоните Тјунер за кориснички интерфејс система из Подешавања и да престанете да користите све његове функције?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Налазите се на профилу за Work"</string> </resources> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 2b43da52c7af..d62e8dfcbfe6 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Info om appen"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Dina senaste skärmar visas här"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Avvisa nya appar"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"En skärm i Översikten"</item> - <item quantity="other" msgid="5523506463832158203">"%d skärmar i Översikten"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d skärmar i översikten</item> + <item quantity="one">En skärm i översikten</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Inga aviseringar"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Pågående"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Meddelanden"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Ska USB-felsökning tillåtas?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Fingeravtrycket för datorns RSA-nyckel är:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Tillåt alltid på den här datorn"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB-felsökning är inte tillåtet"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Användaren som är inloggad på enheten för närvarande kan inte aktivera USB-felsökning. Byt till den primära användaren <xliff:g id="NAME">%s</xliff:g> om du vill använda den här funktionen."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Zooma för att fylla skärm"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Dra för att fylla skärmen"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Skärmdumpen sparas ..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Sök"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Mobil"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Röstassistent"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Lås upp"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Upplåsningsknapp – väntar på fingeravtryck"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Lås upp utan att använda fingeravtryck"</string> <string name="unlock_label" msgid="8779712358041029439">"lås upp"</string> <string name="phone_label" msgid="2320074140205331708">"öppna mobilen"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"öppna röstassistenten"</string> <string name="camera_label" msgid="7261107956054836961">"öppna kameran"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Välj en ny layout för uppgiften"</string> <string name="cancel" msgid="6442560571259935130">"Avbryt"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data: två staplar."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data: tre staplar."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Datasignalen är full."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi är inaktiverat."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Ingen Wi-Fi-anslutning."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi: en stapel."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi: två staplar."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi: tre staplar."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Full signalstyrka för Wi-Fi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Ansluten till <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Ansluten till <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ingen WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX: två staplar."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX: tre staplar."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX-signalen är full."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet har kopplats från."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet har anslutits."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ingen signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Inte ansluten."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Inga staplar."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Inget SIM-kort."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Internetdelning via Bluetooth"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Flygplansläge"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Inget SIM-kort."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Byter leverantörsnätverk."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Batteri <xliff:g id="NUMBER">%d</xliff:g> procent."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Systeminställningar."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> togs bort permanent."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Alla appar har tagits bort från listan Senaste."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Startar <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Meddelandet ignorerades."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Meddelandepanel."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Snabbinställningar."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Låsskärm."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Inställningar"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Översikt."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Stäng"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Bekräfta"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Användare <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi har inaktiverats."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Flygplansläget har inaktiverats."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Flygplansläget har aktiverats."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Stör ej har aktiverats. Endast prioriterade."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Stör ej är aktiverat. Helt tyst."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Stör ej har aktiverats. Inga avbrott."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Stör ej är aktiverat, endast alarm."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Stör ej av."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Stör ej har inaktiverats."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Stör ej"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Endast prioriterade"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Endast alarm"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Helt tyst"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Inga avbrott"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> enheter)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth av"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ej ansluten"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Inget nätverk"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi av"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Det finns inga tillgängliga Wi-Fi-nätverk"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Inga sparade nätverk tillgängliga"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Casta"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Castar"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Namnlös enhet"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Sök"</string> <string name="description_direction_up" msgid="7169032478259485180">"Dra uppåt för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> <string name="description_direction_left" msgid="7207478719805562165">"Dra åt vänster för <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Du blir inte störd av ljud och vibrationer, förutom från alarm, påminnelser, event och specifika samtal."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Inga avbrott. Inte ens alarm."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Du blir inte störd av ljud och vibrationer, förutom från alarm, påminnelser, event och specifika samtal."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Anpassa"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Detta blockerar ALLA ljud och vibrationer, inklusive alarm, musik, videor och spel. Du kan fortfarande ringa."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Detta blockerar ALLA ljud och vibrationer, inklusive alarm, musik, videor och spel."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Inga avbrott"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Bara prioriterade samtal och aviseringar"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Endast alarm"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Nästa alarm är kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Nästa alarm är <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Alarmet kommer inte att höras kl. <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Mindre brådskande aviseringar nedan"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Tryck igen för att öppna"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Dra uppåt om du vill låsa upp"</string> - <string name="phone_hint" msgid="4872890986869209950">"Dra från ikonen och öppna telefonen"</string> - <string name="voice_hint" msgid="8939888732119726665">"Dra från ikonen och öppna röstassistenten"</string> - <string name="camera_hint" msgid="7939688436797157483">"Dra från ikonen och öppna kameran"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Total tystnad. Även skärmläsningsprogram tystas."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Helt tyst"</string> + <string name="phone_hint" msgid="3101468054914424646">"Dra åt höger om du vill visa telefonen"</string> + <string name="camera_hint" msgid="5241441720959174226">"Dra åt vänster om du vill visa kameran"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Inga avbrott"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Bara prioriterade"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Endast alarm"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Helt\ntyst"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Alla"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Stör\nej"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Endast\nprioriterade"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Endast\nalarm"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Laddar (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> tills batteriet är fulladdat)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Byt användare"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Byt användare. Aktuell användare: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Aktuell användare <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Visa profil"</string> <string name="user_add_user" msgid="5110251524486079492">"Lägg till användare"</string> <string name="user_new_user_name" msgid="426540612051178753">"Ny användare"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Börja om"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ja, fortsätt"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Gästanvändare"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Ta bort gästanvändaren om du vill radera appar och data"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Ta bort gästen om du vill radera appar och data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"TA BORT GÄSTEN"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Lägga till ny användare?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"När du lägger till en ny användare måste den personen konfigurera sitt utrymme.\n\nAlla användare kan uppdatera appar för samtliga användares räkning."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Inaktivera VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Koppla från VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Enheten hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratören kan övervaka och hantera inställningar, företagsåtkomst, appar, data som är kopplad till enheten och enhetens platsinformation. Kontakta administratören om du vill veta mer."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Du har gett en app behörighet att upprätta en VPN-anslutning.\n\nAppen kan bevaka aktivitet på enheten och nätverket, inklusive e-post, appar och webbplatser."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Jobbprofilen hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratören kan övervaka dina nätverksaktiviteter, inklusive e-post, appar och säkra webbplatser.\n\nKontakta administratören om du vill veta mer."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Enheten hanteras av:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nJobbprofilen hanteras av:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratören kan övervaka dina enhets- och nätverksaktiviteter, inklusive e-post, appar och säkra webbplatser.\n\nKontakta administratören om du vill veta mer."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Du har gett en app behörighet att konfigurera en VPN-anslutning.\n\nAppen kan övervaka dina enhets- och nätverksaktiviteter, inklusive e-post, appar och säkra webbplatser."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Enheten hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratören kan övervaka och hantera inställningar, företagsåtkomst, appar, data som är kopplad till enheten och enhetens platsinformation.\n\nDu är ansluten till ett VPN-nätverk som kan övervaka dina nätverksaktiviteter, inklusive e-post, appar och webbplatser.\n\nKontakta administratören om du vill veta mer."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Jobbprofilen hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratören kan bevaka aktiviteten på nätverket, inklusive e-post, appar och webbplatser.\n\nKontakta administratören för mer information.\n\nDu är även ansluten till ett VPN-nätverk som kan bevaka aktiviteten på nätverket."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Du är ansluten till <xliff:g id="APPLICATION">%1$s</xliff:g>, som kan bevaka aktivitet på nätverket, inklusive e-post, appar och webbplatser."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Du är ansluten till <xliff:g id="APPLICATION">%1$s</xliff:g>, som kan bevaka din privata aktivitet på nätverket, inklusive e-post, appar och webbplatser."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Jobbprofilen hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Den är ansluten till <xliff:g id="APPLICATION">%2$s</xliff:g>, som kan hantera aktivitet på arbetsplatsens nätverk, inklusive e-post, appar och webbplatser.\n\nKontakta administratören för mer information."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Jobbprofilen hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Den är ansluten till <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, som kan hantera aktivitet på arbetsplatsens nätverk, inklusive e-post, appar och webbplatser.\n\nDu är även ansluten till <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, som kan hantera privat aktivitet på nätverket."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Enheten hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratören kan bevaka och hantera inställningar, företagsåtkomst, appar, data som är kopplad till enheten och enhetens platsuppgifter.\n\nDu är ansluten till <xliff:g id="APPLICATION">%2$s</xliff:g>, som kan övervaka aktivitet på nätverket, inklusive e-post. appar och webbplatser .\n\nKontakta administratören för mer information."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Jobbprofilen hanteras av <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nAdministratören kan övervaka dina nätverksaktiviteter, inklusive e-post, appar och säkra webbplatser.\n\nKontakta administratören om du vill veta mer.\n\nDu är även ansluten till ett VPN-nätverk som kan övervaka dina nätverksaktiviteter."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Enheten hanteras av <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nJobbprofilen hanteras av:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nAdministratören kan övervaka dina nätverksaktiviteter, inklusive e-post, appar och säkra webbplatser.\n\nKontakta administratören om du vill veta mer.\n\nDu är också ansluten till ett VPN-nätverk som kan övervaka dina privata nätverksaktiviteter"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Enheten förblir låst tills du låser upp den manuellt"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Få aviseringar snabbare"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Visa dem innan du låser upp"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Visa alla"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Dölj alla"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Sluta nu"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Utöka"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Komprimera"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skärmen har fästs"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Detta visar skärmen tills du lossar den. Tryck länge på bakåtknappen och Översikt samtidigt om du vill lossa skärmen."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Detta visar skärmen tills du lossar den. Tryck länge på Översikt om du vill lossa skärmen."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Neka"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> används som volymkontroll"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Tryck här om du vill återställa den ursprungliga appen."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Du använder din jobbprofil"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Inställningar för systemgränssnitt"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Visa inbäddad batteriprocent"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Visa batterinivå i procent i statusfältsikonen när enheten inte laddas"</string> - <string name="quick_settings" msgid="10042998191725428">"Snabbinställningar"</string> - <string name="status_bar" msgid="4877645476959324760">"Statusfält"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demoläge"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Aktivera demoläge"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Visa demoläge"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Jobbprofil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Flygplansläge"</string> - <string name="add_tile" msgid="2995389510240786221">"Lägg till en ruta"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Skicka ruta"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Nästa alarm, kl. <xliff:g id="WHEN">%1$s</xliff:g>, kommer inte att höras om du inte inaktiverar detta innan dess"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Nästa alarm, kl. <xliff:g id="WHEN">%1$s</xliff:g>, kommer inte att höras"</string> - <string name="alarm_template" msgid="3980063409350522735">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"kl. <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Snabbinställningar, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Trådlös surfzon"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Jobbprofil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Kul för vissa, inte för alla"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Du kan använda inställningarna för systemgränssnitt för att justera användargränssnittet i Android. Dessa experimentfunktioner kan när som helst ändras, sluta fungera eller försvinna. Använd med försiktighet."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Dessa experimentfunktioner kan när som helst ändras, sluta fungera eller försvinna. Använd med försiktighet."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Grattis! Inställningar för systemgränssnitt har lagts till i inställningarna."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Ta bort från inställningarna"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Vill du ta bort inställningar för systemgränssnitt från inställningarna och sluta använda alla tillhörande funktioner?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Du använder Work-profilen"</string> </resources> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 17fc002f0ec4..fbb882faaecd 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Taarifa za programu-matumizi"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Skrini zako za hivi majuzi huonekana hapa"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Ondosha programu za hivi karibuni"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Skrini 1 katika Muhtasari"</item> - <item quantity="other" msgid="5523506463832158203">"Skrini %d katika Muhtasari"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">Skrini %d katika Muhtasari</item> + <item quantity="one">Skrini 1 katika Muhtasari</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Hakuna arifa"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Inaendelea"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Arifa"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Ruhusu utatuaji wa USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Alama ya kidole ya kitufe cha RSA ya kompyuta ni:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Ruhusu kutoka kwenye kompyuta hii kila wakati"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Utatuzi wa USB hauruhusiwi"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Mtumiaji aliyeingia katika akaunti kwenye kifaa hiki kwa sasa hawezi kuwasha utatuzi wa USB. Ili utumie kipengele hiki, badili kwenda mtumiaji msingi \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Kuza ili kujaza skrini"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Tanua ili kujaza skrini"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Inahifadhi picha ya skrini..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Tafuta"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Simu"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Mapendekezo ya Sauti"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Fungua"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Kitufe cha kufungua, kinasubiri kitambulisho"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Fungua bila kutumia kitambulisho chako"</string> <string name="unlock_label" msgid="8779712358041029439">"fungua"</string> <string name="phone_label" msgid="2320074140205331708">"fungua simu"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"fungua mapendekezo ya sauti"</string> <string name="camera_label" msgid="7261107956054836961">"fungua kamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Chagua muundo mpya wa kazi"</string> <string name="cancel" msgid="6442560571259935130">"Ghairi"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Miamba miwili ya data."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Fito tatu za habari."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Ishara ya data imejaa."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi imezimwa."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi haijaunganishwa."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Kipima mtandao kimoja cha Wifi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Vipima mtandao viwili vya Wifi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Vipima mtandao vitatu vya Wifi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Nguvu kamili ya mtandao wa Wifi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Imeunganishwa kwenye <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Imeunganishwa kwenye <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Hakuna WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Pau mbili za WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Pau tatu za WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Ishara ya WiMAX imejaa."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethaneti imeondolewa."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethaneti imeunganishwa."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Hakuna mtandao"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Haijaunganishwa."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Vipima mtandao sufuri."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Hakuna SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Shiriki intaneti kwa Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Hali ya ndege."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Hakuna SIM kadi."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Mabadiliko ya mtandao wa mtoa huduma."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Asilimia <xliff:g id="NUMBER">%d</xliff:g> ya betri"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Mipangilio ya mfumo."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> imeondolewa."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Programu za hivi majuzi zimeondolewa."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Inaanzisha <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Arifa imetupwa."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Kivuli cha arifa."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Mipangilio ya haraka."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Skrini iliyofungwa."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Mipangilio"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Muhtasari."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Funga"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Thibitisha"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Mtumiaji <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi imezimwa."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Hali ya ndegeni imezimwa."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Hali ya ndegeni imewashwa."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Kipengee cha usinisumbue kimewashwa, kipaumbele pekee."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Usinisumbue, kimya kabisa."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Kipengee cha usinisumbue kimewashwa, hakuna kukatizwa."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Kipengee cha usinisumbue kimewashwa, kengele pekee."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Kipengee cha usinisumbue kimezimwa."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Kipengee cha usinisumbue kimezimwa."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Usinisumbue"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Kipaumbele tu"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Kengele pekee"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Kimya kabisa"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Hakuna kukatizwa"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (Vifaa <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Imezimwa"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Haijaunganishwa"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Hakuna Mtandao"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi Imezimwa"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Hakuna mitandao ya Wi-Fi inayopatikana"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Hakuna mitandao iliyohifadhiwa inayopatikana"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Tuma"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Inatuma"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Kifaa hakina jina"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Tafuta"</string> <string name="description_direction_up" msgid="7169032478259485180">"Sogeza juu kwa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> <string name="description_direction_left" msgid="7207478719805562165">"Sogeza kushoto kwa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> ."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Hutasumbuliwa na sauti na mitetemo, isipokuwa kengele, vikumbusho, matukio na wapigaji simu utakaobainisha."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Hakuna kukatizwa. Hata kama ni kengele."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Hutasumbuliwa na sauti na mitetemo, isipokuwa kengele, vikumbusho, matukio na wapigaji simu utakaobainisha."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Badilisha kukufaa"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Hatua hii huzuia sauti na mitetemo YOTE, ikiwa na pamoja na ile inayotokana na kengele, muziki, video na michezo. Bado utaweza kupiga simu."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Hatua hii huzuia sauti na mitetemo YOTE, ikiwa ni pamoja na ile inayotokana na kengele, muziki, video na michezo."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Hakuna kukatizwa"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Mambo yenye kipaumbele pekee yakatize"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Kengele pekee"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Kengele yako inayofuata itakuwa saa <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Kengele yako inayofuata itakuwa <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Hutasikia kengele yako ifikapo <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>+"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Arifa zisizo za dharura sana ziko hapo chini"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Gusa tena ili ufungue"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Telezesha kidole ili ufungue"</string> - <string name="phone_hint" msgid="4872890986869209950">"Telezesha kidole kutoka kwa aikoni ili ufikie simu"</string> - <string name="voice_hint" msgid="8939888732119726665">"Telezesha kidole kutoka aikoni ili upate mapendekezo ya sauti"</string> - <string name="camera_hint" msgid="7939688436797157483">"Telezesha kidole kutoka aikoni ili ufikie kamera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Kimya kabisa. Hatua hii pia itanyamazisha wasomaji wa skrini."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Kimya kabisa"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telezesha kidole kulia ili ufikie simu"</string> + <string name="camera_hint" msgid="5241441720959174226">"Telezesha kidole kushoto ili ufikie kamera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Hakuna kukatizwa"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Kipaumbele tu"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Kengele pekee"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Kimya\nkabisa"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Zote"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Hakuna\nukatizaji"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Kipaumbele\npekee"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Kengele\npekee"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Inachaji (Imebakisha <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ijae)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Badili mtumiaji"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Badili mtumiaji, mtumiaji wa sasa <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Mtumiaji wa sasa <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Onyesha wasifu"</string> <string name="user_add_user" msgid="5110251524486079492">"Ongeza mtumiaji"</string> <string name="user_new_user_name" msgid="426540612051178753">"Mtumiaji mpya"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Anza tena"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ndiyo, endelea"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Mtumiaji mgeni"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Ili uweze kufuta programu na data, mwondoe mtumiaji aliyealikwa"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Ondoa mgeni ili ufute programu na data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ONDOA MGENI"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Ungependa kuongeza mtumiaji?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Unapomwongeza mtumiaji mpya, mtu huyo anahitaji kusanidi nafasi yake.\n\nMtumiaji yoyote anaweza kusasisha programu kwa ajili ya watumiaji wengine wote."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Zima VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Ondoa VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Kifaa chako kinasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMsimamizi wako anaweza kufuatilia na kudhibiti mipangilio, ufikiaji wa kampuni, programu, data inayohusiana na kifaa chako, na maelezo ya mahali kilipo kifaa chako. Kwa maelezo zaidi, wasiliana na msimamizi wako."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Uliruhusu programu iweke muunganisho wa VPN.\n\nProgramu hii inaweza kufuatilia shughuli za kifaa na mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Wasifu wako wa kazini unasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMsimamizi wako anaweza kufuatilia shughuli za mtandao wako, ikiwa ni pamoja na barua pepe, programu, na tovuti salama.\n\nKwa maelezo zaidi, wasiliana na msimamizi wako."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Kifaa chako kinasimamiwa na:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nWasifu wako wa kazini unasimamiwa na:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nMsimamizi wako anaweza kufuatilia shughuli za kifaa na mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti salama. \n\nKwa maelezo zaidi, wasiliana na msimamizi wako."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Uliruhusu programu isanidi muunganisho wa VPN.\n\nProgramu hii inaweza kufuatilia shughuli za kifaa na mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti salama."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Kifaa chako kinasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMsimamizi wako anaweza kufuatilia na kudhibiti mipangilio, ufikiaji wa kampuni, programu, data inayohusiana na kifaa chako, na maelezo ya mahali kilipo kifaa chako.\n\nUmeuganishwa kwenye VPN, ambayo inaweza kufuatilia shughuli ya mtandao wako, ikiwa ni pamoja na barua pepe, programu, na tovuti.\n\n Kwa maelezo zaidi, wasiliana na msimamizi wako."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Wasifu wako wa kazini unasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>. \n\nMsimamizi wako ana uwezo wa kufuatilia shughuli ya mtandao wako ikiwa ni pamoja na barua pepe, programu, na tovuti. \n\nKwa maelezo zaidi, wasiliana na msimamizi wako.\n\nUmeunganishwa pia kwenye VPN, ambayo inaweza kufuatilia shughuli za mtandao wako."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Umeunganishwa kwenye <xliff:g id="APPLICATION">%1$s</xliff:g>, ambayo inaweza kufuatilia shughuli za mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Umeunganishwa kwenye <xliff:g id="APPLICATION">%1$s</xliff:g>, ambayo inaweza kufuatilia shughuli za mtandao wako, ikiwa ni pamoja na barua pepe, programu na tovuti."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Wasifu wako wa kazini unasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Wasifu huu umeunganishwa kwenye <xliff:g id="APPLICATION">%2$s</xliff:g>, ambayo inaweza kufuatilia shughuli za mtandao wako, ikiwa ni pamoja na barua pepe, programu, na tovuti. \n\nKwa maelezo zaidi, wasiliana na msimamizi wako."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Wasifu wako wa kazini unasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Wasifu huu umeunganishwa kwenye <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, ambayo inaweza kufuatilia mtandao wako wa kazini, ikiwa ni pamoja na barua pepe, programu na tovuti. \n\n Wewe pia umeunganishwa kwenye <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, ambayo inaweza kufuatilia shughuli za mtandao wako kibinafsi."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Kifaa chako kinasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>. \n\nMsimamizi wako anaweza kufuatilia na kudhibiti mipangilio, ufikiaji wa kampuni, programu, data inayohusiana na kifaa chako, na maelezo ya mahali kilipo kifaa chako. \n\n Umeuganishwa kwenye <xliff:g id="APPLICATION">%2$s</xliff:g>, ambayo inaweza kufuatilia shughuli ya mtandao wako, ikiwa ni pamoja na barua pepe, programu, na tovuti. \n\n Kwa maelezo zaidi, wasiliana na msimamizi wako."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Wasifu wako wa kazini unasimamiwa na <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMsimamizi wako ana uwezo wa kufuatilia shughuli ya mtandao wako ikiwa ni pamoja na barua pepe, programu, na tovuti salama. \n\nKwa maelezo zaidi, wasiliana na msimamizi wako.\n\n Umeunganishwa pia kwenye VPN, ambayo inaweza kufuatilia shughuli ya mtandao wako."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Kifaa chako kinasimamiwa na <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nWasifu wako wa kazini unasimamiwa na:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nMsimamizi wako ana uwezo wa kufuatilia shughuli ya mtandao wako ikiwa ni pamoja na barua pepe, programu, na tovuti salama.\n\nKwa maelezo zaidi, wasiliana na msimamizi wako.\n\nUmeunganishwa pia kwenye VPN, ambayo inaweza kufuatilia shughuli ya mtandao wako."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Kifaa kitaendelea kuwa katika hali ya kufungwa hadi utakapokifungua mwenyewe"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Pata arifa kwa haraka"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Zitazame kabla hujafungua"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Angalia zote"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ficha zote"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Komesha sasa"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Panua"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Kunja"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Skrini imebandikwa"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Hii itaendelea kuonyesha hadi ubandue. Gusa na ushikilie Nyuma na Muhtasari kwa wakati mmoja ili ubandue."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Hii itaendelea kuonyesha hadi uibandue. Gusa na ushikilie Muhtasari ili ubandue."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Kataa"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ni mazungumzo ya sauti"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Gusa ili urejeshe ya awali."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Unatumia wasifu wako wa kazini"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Kipokea Ishara cha SystemUI"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Onyesha asilimia ya betri iliyopachikwa"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Onyesha asilimia ya kiwango cha betri ndani ya aikoni ya sehemu ya arifa inapokuwa haichaji"</string> - <string name="quick_settings" msgid="10042998191725428">"Mipangilio ya Haraka"</string> - <string name="status_bar" msgid="4877645476959324760">"Sehemu ya kuonyesha hali"</string> - <string name="demo_mode" msgid="2389163018533514619">"Hali ya onyesho"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Washa hali ya onyesho"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Onyesha hali ya onyesho"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethaneti"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Kengele"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Wasifu wa kazini"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Hali ya ndegeni"</string> - <string name="add_tile" msgid="2995389510240786221">"Ongeza kigae"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Kigae cha Tangazo"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Hutasikia kengele yako inayofuata ya saa <xliff:g id="WHEN">%1$s</xliff:g> usipozima hii kabla ya wakati huo"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Hutasikia kengele yako inayofuata ya saa <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"saa <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"siku ya <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Mipangilio ya Haraka, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Mtandao-hewa"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Wasifu wa kazini"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Kinafurahisha kwa baadhi ya watu lakini si wote"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Kipokea Ishara cha System UI kinakupa njia zaidi za kugeuza na kubadilisha kiolesura cha Android ili kikufae. Vipengele hivi vya majaribio vinaweza kubadilika, kuharibika, au kupotea katika matoleo ya siku zijazo. Endelea kwa uangalifu."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Vipengele hivi vya majaribio vinaweza kubadilika, kuharibika, au kupotea katika matoleo ya siku zijazo. Endelea kwa uangalifu."</string> - <string name="got_it" msgid="2239653834387972602">"Nimeelewa"</string> - <string name="tuner_toast" msgid="603429811084428439">"Hongera! Kipokea Ishara cha System UI kimeongezwa kwenye Mipangilio"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Ondoa kwenye Mipangilio"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Je, ungependa kuondoa Kipokea ishara cha SystemUI kwenye Mipangilio na uache kutumia vipengele vyake vyote?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Uko katika wasifu wa Kazi"</string> </resources> diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml index f5608a858e3d..918505a783de 100644 --- a/packages/SystemUI/res/values-ta-rIN/strings.xml +++ b/packages/SystemUI/res/values-ta-rIN/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"பயன்பாட்டுத் தகவல்"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"சமீபத்திய திரைகள் இங்கு தோன்றும்"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"சமீபத்திய பயன்பாடுகளை நிராகரி"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"மேலோட்டப் பார்வையில் 1 திரை"</item> - <item quantity="other" msgid="5523506463832158203">"மேலோட்டப் பார்வையில் %d திரைகள்"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">மேலோட்டப் பார்வையில் %d திரைகள்</item> + <item quantity="one">மேலோட்டப் பார்வையில் 1 திரை</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"அறிவிப்புகள் இல்லை"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"செயலில் இருக்கும்"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"அறிவிப்புகள்"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB பிழைத்திருத்தத்தை அனுமதிக்கவா?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"பின்வருவது கணினியின் RSA விசை கைரேகையாகும்:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"இந்தக் கணினியிலிருந்து எப்போதும் அனுமதி"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB பிழைத்திருத்தம் அனுமதிக்கப்படவில்லை"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"தற்போது இந்தச் சாதனத்தில் உள்நுழைந்துள்ள பயனரால் USB பிழைத்திருத்தத்தை இயக்க முடியாது. இந்த அம்சத்தை இயக்க, “<xliff:g id="NAME">%s</xliff:g>” எனும் முதன்மை பயனருக்கு மாறவும்."</string> <string name="compat_mode_on" msgid="6623839244840638213">"திரையை நிரப்ப அளவை மாற்று"</string> <string name="compat_mode_off" msgid="4434467572461327898">"திரையை நிரப்ப இழு"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"ஸ்க்ரீன் ஷாட்டைச் சேமிக்கிறது…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"தேடு"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"கேமரா"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ஃபோன்"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"குரல் உதவி"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"திற"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"திறப்பதற்கான பொத்தான், கைரேகைக்காகக் காத்திருக்கிறது"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"உங்கள் கைரேகையைப் பயன்படுத்தாமல் திறக்கவும்"</string> <string name="unlock_label" msgid="8779712358041029439">"திற"</string> <string name="phone_label" msgid="2320074140205331708">"ஃபோனைத் திற"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"குரல் உதவியைத் திற"</string> <string name="camera_label" msgid="7261107956054836961">"கேமராவைத் திற"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"புதிய பணி தளவமைப்பைத் தேர்ந்தெடுக்கவும்"</string> <string name="cancel" msgid="6442560571259935130">"ரத்துசெய்"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"தரவின் சிக்னல் இரண்டு கோடு வரை உள்ளது."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"தரவு சிக்னல் மூன்று கோட்டில் உள்ளது."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"தரவு சிக்னல் முழுமையாக உள்ளது."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi முடக்கப்பட்டது."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi துண்டிக்கப்பட்டது."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi ஒரு கோடு."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi இரண்டு கோடுகள்."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi மூன்று கோடுகள்."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi சிக்னல் முழுமையாக உள்ளது."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>க்கு இணைக்கப்பட்டது."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>க்கு இணைக்கப்பட்டது."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX இல்லை."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX இரண்டு கோடுகள்."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX மூன்று கோடுகள்."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX சிக்னல் முழுமையாக உள்ளது."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ஈத்தர்நெட் துண்டிக்கப்பட்டது."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ஈத்தர்நெட் இணைக்கப்பட்டது."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"சிக்னல் இல்லை."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"இணைக்கப்படவில்லை."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"கோடுகள் இல்லை."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"சிம் இல்லை."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"புளூடூத் டெதெரிங்."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"விமானப் பயன்முறை."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"சிம் கார்டு இல்லை."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"மொபைல் நிறுவன மாற்றம்."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"பேட்டரி சக்தி <xliff:g id="NUMBER">%d</xliff:g> சதவிகிதம் உள்ளது."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"கணினி அமைப்பு."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> விலக்கப்பட்டது."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"எல்லா சமீபத்திய பயன்பாடுகளும் விலக்கப்பட்டன."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> ஐத் தொடங்குகிறது."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"அறிவிப்பு நிராகரிக்கப்பட்டது."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"அறிவிப்பு விவரம்."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"உடனடி அமைப்பு."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"பூட்டுத் திரை."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"அமைப்பு"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"மேலோட்டப் பார்வை."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"மூடு"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"உறுதிசெய்க"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"பயனர் <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"வைஃபை முடக்கப்பட்டது."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"விமானப் பயன்முறை முடக்கப்பட்டது."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"விமானப் பயன்முறை இயக்கப்பட்டது."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, முதன்மை மட்டும்."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, அறிவிப்புகள் வேண்டாம்."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, குறுக்கீடுகள் இல்லை."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"தொந்தரவு செய்ய வேண்டாம் என்பது இயக்கப்பட்டது, அலாரங்கள் மட்டும்."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"தொந்தரவு செய்ய வேண்டாம் என்பது முடக்கப்பட்டது."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"தொந்தரவு செய்ய வேண்டாம் என்பது முடக்கப்பட்டது."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"தொந்தரவு செய்ய வேண்டாம்"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"முதன்மை மட்டும்"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"அலாரங்கள் மட்டும்"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"அறிவிப்புகள் வேண்டாம்"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"குறுக்கீடுகள் வேண்டாம்"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"புளூடூத்"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"புளூடூத் (<xliff:g id="NUMBER">%d</xliff:g> சாதனங்கள்)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"புளூடூத் ஐ முடக்கு"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"இணைக்கப்படவில்லை"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"நெட்வொர்க் இல்லை"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"வைஃபையை முடக்கு"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"வைஃபை நெட்வொர்க்குகள் இல்லை"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"சேமித்த நெட்வொர்க்குகள் இல்லை"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"அனுப்பு"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"அனுப்புகிறது"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"பெயரிடப்படாத சாதனம்"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"தேடு"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> க்கு மேலாக இழுக்கவும்."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> க்கு இடதுபக்கமாக இழுக்கவும்."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"அலாரங்கள், நினைவூட்டல்கள், நிகழ்வுகள், குறிப்பிட்ட அழைப்புகள் தவிர, ஒலிகளினாலும் அதிர்வினாலும் தொந்தரவு இருக்காது."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"அறிவிப்பும் இல்லை. அலாரங்களும் இல்லை."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"அலாரங்கள், நினைவூட்டல்கள், நிகழ்வுகள், குறிப்பிட்ட அழைப்புகள் தவிர, ஒலிகளினாலும் அதிர்வினாலும் தொந்தரவு இருக்காது."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"தனிப்பயனாக்கு"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"இது அலாரங்கள், இசை, வீடியோக்கள் மற்றும் கேம்கள் உட்பட எல்லா ஒலிகளையும் அதிர்வுகளையும் தடுக்கும். இருப்பினும் நீங்கள் அழைப்புகளைச் செய்யலாம்."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"இது அலாரங்கள், இசை, வீடியோக்கள் மற்றும் கேம்கள் உட்பட எல்லா ஒலிகளையும் அதிர்வுகளையும் தடுக்கும்."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"தெரிவிக்காதே"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"முக்கிய அறிவிப்புகள் மட்டும்"</string> + <string name="zen_alarms" msgid="5055668280767657759">"அலாரங்கள் மட்டும்"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"அடுத்த அலாரம் - <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"அடுத்த அலாரம் - <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> க்கு அலாரத்தைக் கேட்க மாட்டீர்கள்"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"அவசர நிலைக் குறைவான அறிவிப்புகள் கீழே உள்ளன"</string> <string name="notification_tap_again" msgid="8524949573675922138">"திறக்க, மீண்டும் தட்டவும்"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"திறக்க, மேலே ஸ்வைப் செய்யவும்"</string> - <string name="phone_hint" msgid="4872890986869209950">"ஃபோனிற்கு ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string> - <string name="voice_hint" msgid="8939888732119726665">"குரல் உதவிக்கு ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string> - <string name="camera_hint" msgid="7939688436797157483">"கேமராவிற்கு ஐகானிலிருந்து ஸ்வைப் செய்யவும்"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"முழுமையான நிசப்தம். இது திரைப் படிப்பான்களையும் நிசப்தத்தில் வைக்கும்."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"அறிவிப்புகள் வேண்டாம்"</string> + <string name="phone_hint" msgid="3101468054914424646">"ஃபோனுக்கு, வலப்புறம் ஸ்வைப் செய்க"</string> + <string name="camera_hint" msgid="5241441720959174226">"கேமராவிற்கு இடப்புறம் ஸ்வைப் செய்க"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"குறுக்கீடுகள் வேண்டாம்"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"முன்னுரிமை மட்டும்"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"அலாரங்கள் மட்டும்"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"அறிவிப்புகள்\nவேண்டாம்"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"எல்லாம்"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"குறுக்கீடுகள்\nவேண்டாம்"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"முன்னுரிமைகள்\nமட்டும்"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"அலாரங்கள்\nமட்டும்"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"சார்ஜாகிறது (முழு சார்ஜிற்கு <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ஆகும்)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"பயனரை மாற்று"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"பயனரை மாற்று, தற்போதைய பயனர் <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"தற்போதைய பயனர்: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"சுயவிவரத்தைக் காட்டு"</string> <string name="user_add_user" msgid="5110251524486079492">"பயனரைச் சேர்"</string> <string name="user_new_user_name" msgid="426540612051178753">"புதியவர்"</string> @@ -337,12 +336,12 @@ <string name="guest_exit_guest_dialog_title" msgid="8480693520521766688">"அழைக்கப்பட்டவரை அகற்றவா?"</string> <string name="guest_exit_guest_dialog_message" msgid="4155503224769676625">"இந்த அமர்வின் எல்லா பயன்பாடுகளும், தரவும் நீக்கப்படும்."</string> <string name="guest_exit_guest_dialog_remove" msgid="7402231963862520531">"அகற்று"</string> - <string name="guest_wipe_session_title" msgid="6419439912885956132">"நல்வரவு!"</string> + <string name="guest_wipe_session_title" msgid="6419439912885956132">"வரவேற்கிறோம்!"</string> <string name="guest_wipe_session_message" msgid="8476238178270112811">"உங்கள் அமர்வைத் தொடர விருப்பமா?"</string> <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"மீண்டும் தொடங்கு"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"தொடரவும்"</string> <string name="guest_notification_title" msgid="1585278533840603063">"அழைக்கப்பட்டவர்"</string> - <string name="guest_notification_text" msgid="335747957734796689">"பயன்பாடுகளையும் தரவையும் நீக்க, விருந்தினர் பயனரை அகற்றவும்"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"பயன்பாடுகளையும் தரவையும் நீக்க, அழைக்கப்பட்டவரை அகற்றவும்."</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"அழைக்கப்பட்டவரை அகற்றவா?"</string> <string name="user_add_user_title" msgid="4553596395824132638">"புதியவரைச் சேர்க்கவா?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"புதிய பயனரைச் சேர்க்கும்போது, அவர் தனக்கான இடத்தை அமைக்க வேண்டும்.\n\nஎந்தவொரு பயனரும், மற்ற எல்லா பயனர்களுக்காகவும் பயன்பாடுகளைப் புதுப்பிக்கலாம்."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPNஐ முடக்கு"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPNஐத் துண்டி"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"சாதனத்தை நிர்வகிப்பவர்: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nஉங்கள் நிர்வாகியால் அமைப்புகள், நிறுவன அணுகல், பயன்பாடுகள், சாதனத்துடன் தொடர்புடைய தரவு மற்றும் சாதனத்தின் இருப்பிடத் தகவல் ஆகியவற்றைக் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும். கூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"VPN இணைப்பை அமைக்க, பயன்பாட்டிற்கு அனுமதி வழங்கியுள்ளீர்கள்.\n\nஇந்தப் பயன்பாட்டால் மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட, உங்கள் சாதனத்தையும் நெட்வொர்க் செயல்பாட்டையும் கண்காணிக்க முடியும்."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"உங்கள் பணி சுயவிவரத்தை நிர்வகிப்பவர்: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டை நிர்வாகியால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"சாதனத்தை நிர்வகிப்பவர்:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nஉங்கள் பணி சுயவிவரத்தை நிர்வகிப்பவர்:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட உங்கள் சாதனத்தையும், நெட்வொர்க் செயல்பாட்டையும் நிர்வாகியால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"VPN இணைப்பை அமைக்க, பயன்பாட்டிற்கு அனுமதி வழங்கியுள்ளீர்கள்.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட, உங்கள் சாதனத்தையும் நெட்வொர்க் செயல்பாட்டையும் இந்தப் பயன்பாட்டினால் கண்காணிக்க முடியும்."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"சாதனத்தை நிர்வகிப்பவர்: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nஉங்கள் நிர்வாகியால் அமைப்புகள், நிறுவன அணுகல், பயன்பாடுகள், சாதனத்துடன் தொடர்புடைய தரவு மற்றும் சாதனத்தின் இருப்பிடத் தகவல் ஆகியவற்றைக் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும்.\n\nVPN இல் இணைக்கப்பட்டுள்ளதால், மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டை கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"உங்கள் பணி சுயவிவரத்தை நிர்வகிப்பது: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டை நிர்வாகியால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்.\n\nஉங்கள் நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்கக்கூடிய VPN இலும் இணைக்கப்பட்டுள்ளீர்கள்."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"<xliff:g id="APPLICATION">%1$s</xliff:g> உடன் இணைக்கப்பட்டுள்ளீர்கள். இந்தப் பயன்பாட்டால், மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்க முடியும்."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"<xliff:g id="APPLICATION">%1$s</xliff:g> உடன் இணைக்கப்பட்டுள்ளீர்கள். இந்தப் பயன்பாட்டால், மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட உங்கள் தனிப்பட்ட நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்க முடியும்."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"உங்கள் பணி சுயவிவரத்தை <xliff:g id="ORGANIZATION">%1$s</xliff:g> நிர்வகிக்கிறது. <xliff:g id="APPLICATION">%2$s</xliff:g> உடன் இணைக்கப்பட்டதால், மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட உங்கள் பணியிட நெட்வொர்க் செயல்பாட்டை அதனால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"உங்கள் பணி சுயவிவரத்தை <xliff:g id="ORGANIZATION">%1$s</xliff:g> நிர்வகிக்கிறது. <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> உடன் இணைக்கப்பட்டுள்ளதால், மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட உங்கள் பணியிட நெட்வொர்க் செயல்பாட்டை அதனால் கண்காணிக்க முடியும்.\n\nமேலும் <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> உடன் இணைக்கப்பட்டுள்ளதால், உங்கள் தனிப்பட்ட நெட்வொர்க் செயல்பாட்டையும் அதனால் கண்காணிக்க முடியும்."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"சாதனத்தை நிர்வகிப்பது: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nஉங்கள் நிர்வாகியால் அமைப்புகள், நிறுவன அணுகல், பயன்பாடுகள், சாதனத்துடன் தொடர்புடைய தரவு மற்றும் சாதனத்தின் இருப்பிடத் தகவல் ஆகியவற்றைக் கண்காணிக்கவும் நிர்வகிக்கவும் முடியும்.\n\n<xliff:g id="APPLICATION">%2$s</xliff:g> உடன் இணைக்கப்பட்டதால், மின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டை அதனால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"உங்கள் பணி சுயவிவரத்தை நிர்வகிப்பவர்: <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டை நிர்வாகியால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்.\n\nஉங்கள் நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்கக்கூடிய VPN இலும் இணைக்கப்பட்டுள்ளீர்கள்."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"சாதனத்தை நிர்வகிப்பவர்: <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nஉங்கள் பணி சுயவிவரத்தை நிர்வகிப்பவர்: \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nமின்னஞ்சல்கள், பயன்பாடுகள் மற்றும் பாதுகாப்பான இணையதளங்கள் உட்பட உங்கள் நெட்வொர்க் செயல்பாட்டை நிர்வாகியால் கண்காணிக்க முடியும்.\n\nகூடுதல் தகவலுக்கு, நிர்வாகியைத் தொடர்புகொள்ளவும்.\n\nஉங்கள் தனிப்பட்ட நெட்வொர்க் செயல்பாட்டைக் கண்காணிக்கக்கூடிய VPN இலும் இணைக்கப்பட்டுள்ளீர்கள்"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"நீங்கள் கைமுறையாகத் திறக்கும் வரை, சாதனம் பூட்டப்பட்டிருக்கும்"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"விரைவாக அறிவிப்புகளைப் பெறுதல்"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"திறக்கும் முன் அவற்றைப் பார்க்கவும்"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"எல்லாம் காட்டு"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"எல்லாம் மறை"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"இப்போது முடி"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"விரிவாக்கு"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"சுருக்கு"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"திரை பொருத்தப்பட்டது"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"பொருத்தியதை விலக்கும்வரை இதைக் காட்சியில் வைக்கும். விலக்க, பின் மற்றும் மேலோட்டப் பார்வையை ஒரே நேரத்தில் தொட்டுப் பிடிக்கவும்."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"பொருத்தியதை விலக்கும்வரை இதைக் காட்சியில் வைக்கும். விலக்க, மேலோட்டப் பார்வையைத் தொட்டுப் பிடிக்கவும்."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"நிராகரி"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"ஒலியளவு செய்தி: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"அசலை மீட்டமைக்கத் தொடவும்."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"பணி சுயவிவரத்தைப் பயன்படுத்துகிறீர்கள்"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"உள்ளிணைந்த பேட்டரி சதவீதத்தைக் காட்டு"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"சார்ஜ் செய்யாத போது, நிலைப் பட்டி ஐகானின் உள்ளே பேட்டரி அளவு சதவீதத்தைக் காட்டும்"</string> - <string name="quick_settings" msgid="10042998191725428">"உடனடி அமைப்புகள்"</string> - <string name="status_bar" msgid="4877645476959324760">"நிலைப் பட்டி"</string> - <string name="demo_mode" msgid="2389163018533514619">"டெமோ முறை"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"டெமோ முறையை இயக்கு"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"டெமோ முறையைக் காட்டு"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ஈதர்நெட்"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"அலாரம்"</string> - <string name="status_bar_work" msgid="6022553324802866373">"பணி சுயவிவரம்"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"விமானப் பயன்முறை"</string> - <string name="add_tile" msgid="2995389510240786221">"டைலைச் சேர்க்கும்"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"வலைபரப்பு டைல்"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"இதை முன்னதாக முடக்காதவரை, அடுத்த அலாரத்தை <xliff:g id="WHEN">%1$s</xliff:g> மணிக்கு கேட்க மாட்டீர்கள்"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"அடுத்த அலாரத்தை <xliff:g id="WHEN">%1$s</xliff:g> மணிக்கு கேட்க மாட்டீர்கள்"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> மணிக்கு"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> மணிக்கு"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"விரைவு அமைப்புகள், <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ஹாட்ஸ்பாட்"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"பணி சுயவிவரம்"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"சில வேடிக்கையாக இருந்தாலும் கவனம் தேவை"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner, Android பயனர் இடைமுகத்தை மாற்றவும் தனிப்பயனாக்கவும் கூடுதல் வழிகளை வழங்குகிறது. இந்தப் பரிசோதனைக்குரிய அம்சங்கள் எதிர்கால வெளியீடுகளில் மாற்றப்படலாம், இடைநிறுத்தப்படலாம் அல்லது தோன்றாமல் போகலாம். கவனத்துடன் தொடரவும்."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"இந்தப் பரிசோதனைக்குரிய அம்சங்கள் எதிர்கால வெளியீடுகளில் மாற்றப்படலாம், இடைநிறுத்தப்படலாம் அல்லது தோன்றாமல் போகலாம். கவனத்துடன் தொடரவும்."</string> - <string name="got_it" msgid="2239653834387972602">"சரி"</string> - <string name="tuner_toast" msgid="603429811084428439">"வாழ்த்துகள்! அமைப்புகளில் System UI Tuner சேர்க்கப்பட்டது"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"அமைப்புகளிலிருந்து அகற்று"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"அமைப்புகளிலிருந்து System UI Tunerஐ அகற்றிவிட்டு, அதன் எல்லா அம்சங்களையும் பயன்படுத்துவதை நிறுத்தவா?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"பணி சுயவிவரத்தில் இருக்கிறீர்கள்"</string> </resources> diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml index 056dcb6c727e..d472c8ee8af5 100644 --- a/packages/SystemUI/res/values-te-rIN/strings.xml +++ b/packages/SystemUI/res/values-te-rIN/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"అనువర్తన సమాచారం"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"మీ ఇటీవలి స్క్రీన్లు ఇక్కడ కనిపిస్తాయి"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ఇటీవలి అనువర్తనాలను తీసివేయండి"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"అవలోకనంలో 1 స్క్రీన్ ఉంది"</item> - <item quantity="other" msgid="5523506463832158203">"అవలోకనంలో %d స్క్రీన్లు ఉన్నాయి"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">స్థూలదృష్టిలో %d స్క్రీన్లు ఉన్నాయి</item> + <item quantity="one">స్థూలదృష్టిలో 1 స్క్రీన్ ఉంది</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"నోటిఫికేషన్లు లేవు"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"కొనసాగుతున్నవి"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"నోటిఫికేషన్లు"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB డీబగ్గింగ్ను అనుమతించాలా?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ఇది కంప్యూటర్ యొక్క RSA కీ వేలిముద్ర:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"ఈ కంప్యూటర్ నుండి ఎల్లప్పుడూ అనుమతించు"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB డీబగ్గింగ్కి అనుమతి లేదు"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ఈ పరికరానికి ప్రస్తుతం సైన్ ఇన్ చేసిన వినియోగదారు USB డీబగ్గింగ్ ఆన్ చేయలేరు. ఈ లక్షణం ఉపయోగించడానికి, ప్రాథమిక వినియోగదారు “<xliff:g id="NAME">%s</xliff:g>”కి మారాలి."</string> <string name="compat_mode_on" msgid="6623839244840638213">"స్క్రీన్కు నింపేలా జూమ్ చేయండి"</string> <string name="compat_mode_off" msgid="4434467572461327898">"స్క్రీన్కు నింపేలా విస్తరించండి"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"స్క్రీన్షాట్ను సేవ్ చేస్తోంది…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"శోధించు"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"కెమెరా"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"ఫోన్"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"వాయిస్ సహాయకం"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"అన్లాక్ చేయి"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"అన్లాక్ బటన్, వేలిముద్ర కోసం వేచి ఉంది"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"మీ వేలిముద్రను ఉపయోగించకుండా అన్లాక్ చేయండి"</string> <string name="unlock_label" msgid="8779712358041029439">"అన్లాక్ చేయి"</string> <string name="phone_label" msgid="2320074140205331708">"ఫోన్ను తెరువు"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"వాయిస్ సహాయకం తెరువు"</string> <string name="camera_label" msgid="7261107956054836961">"కెమెరాను తెరువు"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"కొత్త విధి లేఅవుట్ను ఎంచుకోండి"</string> <string name="cancel" msgid="6442560571259935130">"రద్దు చేయండి"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"డేటా రెండు బార్లు."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"డేటా మూడు బార్లు."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"డేటా సిగ్నల్ సంపూర్ణంగా ఉంది."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"వైఫై ఆఫ్లో ఉంది."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"వైఫై డిస్కనెక్ట్ చేయబడింది."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"వైఫై ఒక బార్ కలిగి ఉంది."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"వైఫై రెండు బార్లు కలిగి ఉంది."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"వైఫై మూడు బార్లు కలిగి ఉంది."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"వైఫై సిగ్నల్ పూర్తిగా ఉంది."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g>కి కనెక్ట్ చేయబడింది."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g>కి కనెక్ట్ చేయబడింది."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX లేదు."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX రెండు బార్లు కలిగి ఉంది."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX మూడు బార్లు కలిగి ఉంది."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX సిగ్నల్ పూర్తిగా ఉంది."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ఈథర్నెట్ డిస్కనెక్ట్ చేయబడింది."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ఈథర్నెట్ కనెక్ట్ చేయబడింది."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"సిగ్నల్ లేదు."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"కనెక్ట్ చేయబడలేదు."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"సున్నా బార్లు."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"సిమ్ లేదు."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"బ్లూటూత్ టెథెరింగ్."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"ఎయిర్ప్లేన్ మోడ్."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM కార్డ్ లేదు."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"క్యారియర్ నెట్వర్క్ మారుస్తుంది."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"బ్యాటరీ <xliff:g id="NUMBER">%d</xliff:g> శాతం."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"సిస్టమ్ సెట్టింగ్లు."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> తీసివేయబడింది."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"అన్ని ఇటీవలి అనువర్తనాలు తీసివేయబడ్డాయి."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g>ని ప్రారంభిస్తోంది."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"నోటిఫికేషన్ తీసివేయబడింది."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"నోటిఫికేషన్ షేడ్."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"శీఘ్ర సెట్టింగ్లు."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"లాక్ స్క్రీన్."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"సెట్టింగ్లు"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"అవలోకనం."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"మూసివేస్తుంది"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"నిర్ధారిస్తుంది"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"వినియోగదారు <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"వైఫై ఆఫ్ చేయబడింది."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"ఎయిర్ప్లైన్ మోడ్ ఆఫ్ చేయబడింది."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ఎయిర్ప్లైన్ మోడ్ ఆన్ చేయబడింది."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, ప్రాధాన్యత మాత్రమే."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, మొత్తం నిశ్శబ్దం."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, అంతరాయాలు ఉండవు."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"అంతరాయం కలిగించవద్దు ఆన్లో ఉంది, అలారాలు మాత్రమే."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"అంతరాయం కలిగించవద్దు ఆఫ్లో ఉంది."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"అంతరాయం కలిగించవద్దు ఆఫ్ చేయబడింది."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"అంతరాయం కలిగించవద్దు"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"ప్రాధాన్యత మాత్రమే"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"అలారాలు మాత్రమే"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"మొత్తం నిశ్శబ్దం"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"అంతరాయాలు ఉండవు"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"బ్లూటూత్"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"బ్లూటూత్ (<xliff:g id="NUMBER">%d</xliff:g> పరికరాలు)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"బ్లూటూత్ ఆఫ్లో ఉంది"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"కనెక్ట్ చేయబడలేదు"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"నెట్వర్క్ లేదు"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi ఆఫ్లో ఉంది"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Wi-Fi నెట్వర్క్లు ఏవీ అందుబాటులో లేవు"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"సేవ్ చేసిన నెట్వర్క్లు ఏవీ అందుబాటులో లేవు"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"ప్రసారం చేయండి"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"ప్రసారం చేస్తోంది"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"పేరులేని పరికరం"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"శోధించండి"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం పైకి స్లైడ్ చేయండి."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> కోసం ఎడమవైపుకు స్లైడ్ చేయండి."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"మీరు అలారాలు, రిమైండర్లు, ఈవెంట్లు మరియు పేర్కొనే కాలర్ల నుండి మినహా మరే ఇతర ధ్వనులు మరియు వైబ్రేషన్లతో మీకు అంతరాయం కలగదు."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"అంతరాయాలు లేవు. అలారాలు కూడా లేవు."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"మీరు పేర్కొనే అలారాలు, రిమైండర్లు, ఈవెంట్లు మరియు కాలర్ల నుండి మినహా మరే ఇతర ధ్వనులు మరియు వైబ్రేషన్లతో మీకు అంతరాయం కలగదు."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"అనుకూలీకరించు"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"ఇది అలారాలు, సంగీతం, వీడియోలు మరియు గేమ్లతో సహా అన్ని ధ్వనులు మరియు వైబ్రేషన్లను బ్లాక్ చేస్తుంది. మీరు ఇప్పటికీ ఫోన్ కాల్లు చేయగలుగుతారు."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"ఇది అలారాలు, సంగీతం, వీడియోలు మరియు గేమ్లతో సహా అన్ని ధ్వనులు మరియు వైబ్రేషన్లను బ్లాక్ చేస్తుంది."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"అంతరాయాలు లేకుండా"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"ప్రాధాన్య అంతరాయాలు మాత్రమే"</string> + <string name="zen_alarms" msgid="5055668280767657759">"అలారాలు మాత్రమే"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"మీ తదుపరి అలారం <xliff:g id="ALARM_TIME">%s</xliff:g>కి ఉంది"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"మీ తదుపరి అలారం <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"మీరు <xliff:g id="ALARM_TIME">%s</xliff:g>కి సెట్ చేసిన అలారం మీకు వినిపించదు"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"తక్కువ అత్యవసర నోటిఫికేషన్లు దిగువన"</string> <string name="notification_tap_again" msgid="8524949573675922138">"తెరవడానికి మళ్లీ తాకండి"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"అన్లాక్ చేయడానికి ఎగువకు స్వైప్ చేయండి"</string> - <string name="phone_hint" msgid="4872890986869209950">"ఫోన్ కోసం చిహ్నాన్ని స్వైప్ చేయండి"</string> - <string name="voice_hint" msgid="8939888732119726665">"వాయిస్ సహాయకం చిహ్నం నుండి స్వైప్"</string> - <string name="camera_hint" msgid="7939688436797157483">"కెమెరా కోసం చిహ్నాన్ని స్వైప్ చేయండి"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"మొత్తం నిశ్శబ్దం. దీని వలన స్క్రీన్ రీడర్లు కూడా నిశ్శబ్దమవుతాయి."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"మొత్తం నిశ్శబ్దం"</string> + <string name="phone_hint" msgid="3101468054914424646">"ఫోన్ కోసం కుడివైపుకి స్వైప్ చేయండి"</string> + <string name="camera_hint" msgid="5241441720959174226">"కెమెరా కోసం ఎడమవైపుకి స్వైప్ చేయండి"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"అంతరాయాలు ఉండవు"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"ప్రాధాన్యత మాత్రమే"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"అలారాలు మాత్రమే"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"మొత్తం\nనిశ్శబ్దం"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"అన్నిటికీ"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"అంతరాయాలు\nఉండకూడదు"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"ప్రాధాన్యమైనవి\nమాత్రమే"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"అలారాలు\nమాత్రమే"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"ఛార్జ్ అవుతోంది (పూర్తిగా నిండటానికి <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"వినియోగదారుని మార్చు"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"వినియోగదారుని మార్చు, ప్రస్తుత వినియోగదారు <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"ప్రస్తుత వినియోగదారు <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"ప్రొఫైల్ని చూపు"</string> <string name="user_add_user" msgid="5110251524486079492">"వినియోగదారుని జోడించండి"</string> <string name="user_new_user_name" msgid="426540612051178753">"కొత్త వినియోగదారు"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"మొదటి నుండి ప్రారంభించు"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"అవును, కొనసాగించు"</string> <string name="guest_notification_title" msgid="1585278533840603063">"అతిథి వినియోగదారు"</string> - <string name="guest_notification_text" msgid="335747957734796689">"అనువర్తనాలు, డేటా తొలగించేందుకు అతిథి వినియోగదారు తీసివేయండి"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"అనువర్తనాలు మరియు డేటాను తొలగించడానికి అతిథిని తీసివేయండి"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"అతిథిని తీసివేయి"</string> <string name="user_add_user_title" msgid="4553596395824132638">"కొత్త వినియోగదారుని జోడించాలా?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"మీరు కొత్త వినియోగదారుని జోడించినప్పుడు, ఆ వ్యక్తి తన స్థలాన్ని సెటప్ చేసుకోవాలి.\n\nఏ వినియోగదారు అయినా మిగతా అందరు వినియోగదారుల కోసం అనువర్తనాలను నవీకరించగలరు."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPNని నిలిపివేయి"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPNను డిస్కనెక్ట్ చేయి"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"మీ పరికరం <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహణలో ఉంది.\n\nమీ నిర్వాహకుడు సెట్టింగ్లు, కార్పొరేట్ ప్రాప్యత, అనువర్తనాలు, మీ పరికరంతో అనుబంధించబడిన డేటా మరియు మీ పరికరం స్థాన సమాచారాన్ని పర్యవేక్షించగలరు మరియు నిర్వహించగలరు. మరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"మీరు VPN కనెక్షన్ సెటప్ చేయడానికి ఒక అనువర్తనానికి అనుమతి ఇచ్చారు.\n\nఈ అనువర్తనం ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ పరికరం మరియు నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"మీ కార్యాలయ ప్రొఫైల్ <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహణలో ఉంది.\n\nమీ నిర్వాహకుడు ఇమెయిల్లు, అనువర్తనాలు మరియు సురక్షిత వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలరు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"మీ పరికరం ఈ సంస్థ నిర్వహణలో ఉంది:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nమీ కార్యాలయ ప్రొఫైల్ ఈ సంస్థ నిర్వహణలో ఉంది:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nమీ నిర్వాహకుడు ఇమెయిల్లు, అనువర్తనాలు మరియు సురక్షిత వెబ్సైట్లతో సహా మీ పరికర మరియు నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలరు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"మీరు VPN కనెక్షన్ను సెటప్ చేయడానికి అనువర్తనానికి అనుమతి ఇచ్చారు.\n\nఈ అనువర్తనం ఇమెయిల్లు, అనువర్తనాలు మరియు సురక్షిత వెబ్సైట్లతో సహా మీ పరికరం మరియు నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"మీ పరికరం <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహణలో ఉంది.\n\nమీ నిర్వాహకుడు సెట్టింగ్లు, కార్పొరేట్ ప్రాప్యత, అనువర్తనాలు, మీ పరికరంతో అనుబంధించబడిన డేటా మరియు పరికరం స్థాన సమాచారాన్ని పర్యవేక్షించగలరు మరియు నిర్వహించగలరు.\n\nమీరు VPNకి కనెక్ట్ చేయబడ్డారు, ఇది ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"మీ కార్యాలయ ప్రొఫైల్ను <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహిస్తోంది.\n\nమీ నిర్వాహకుడు ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలరు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి.\n\nమీరు VPNకి కూడా కనెక్ట్ చేయబడ్డారు, ఇది మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"మీరు <xliff:g id="APPLICATION">%1$s</xliff:g>కి కనెక్ట్ చేయబడ్డారు, ఇది ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"మీరు <xliff:g id="APPLICATION">%1$s</xliff:g>కి కనెక్ట్ చేయబడ్డారు, ఇది ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ వ్యక్తిగత నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"మీ కార్యాలయ ప్రొఫైల్ను <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహిస్తోంది. అలాగే, మీ కార్యాలయ ప్రొఫైల్ <xliff:g id="APPLICATION">%2$s</xliff:g>కి కనెక్ట్ చేయబడింది, ఇది ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ కార్యాలయ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"మీ కార్యాలయ ప్రొఫైల్ను <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహిస్తోంది. అలాగే, మీ కార్యాలయ ప్రొఫైల్ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>కి కనెక్ట్ చేయబడింది, ఇది ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ కార్యాలయ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు.\n\nమీరు <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>కి కూడా కనెక్ట్ చేయబడ్డారు, ఇది మీ వ్యక్తిగత నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"మీ పరికరాన్ని <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహిస్తోంది.\n\nమీ నిర్వాహకుడు సెట్టింగ్లను, కార్పొరేట్ ప్రాప్యతను, అనువర్తనాలను, మీ పరికరంతో అనుబంధించిన డేటాను మరియు మీ పరికర స్థాన సమాచారాన్ని పర్యవేక్షించగలరు మరియు నిర్వహించగలరు.\n\nమీరు <xliff:g id="APPLICATION">%2$s</xliff:g>కి కనెక్ట్ చేయబడ్డారు, ఇది ఇమెయిల్లు, అనువర్తనాలు మరియు వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"మీ కార్యాలయ ప్రొఫైల్ <xliff:g id="ORGANIZATION">%1$s</xliff:g> నిర్వహణలో ఉంది.\n\nమీ నిర్వాహకుడు ఇమెయిల్లు, అనువర్తనాలు మరియు సురక్షిత వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలరు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి.\n\nమీరు VPNకి కూడా కనెక్ట్ చేయబడ్డారు, ఇది మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"మీ పరికరం <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> నిర్వహణలో ఉంది.\nమీ కార్యాలయ ప్రొఫైల్ ఈ సంస్థ నిర్వహణలో ఉంది:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nమీ నిర్వాహకుడు ఇమెయిల్లు, అనువర్తనాలు మరియు సురక్షిత వెబ్సైట్లతో సహా మీ నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలరు.\n\nమరింత సమాచారం కోసం, మీ నిర్వాహకుడిని సంప్రదించండి.\n\nమీరు VPNకి కూడా కనెక్ట్ చేయబడ్డారు, ఇది మీ వ్యక్తిగత నెట్వర్క్ కార్యాచరణను పర్యవేక్షించగలదు"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"మీరు మాన్యువల్గా అన్లాక్ చేస్తే మినహా పరికరం లాక్ చేయబడి ఉంటుంది"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"నోటిఫికేషన్లను వేగంగా పొందండి"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"వీటిని మీరు అన్లాక్ చేయకముందే చూడండి"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"అన్నీ చూడండి"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"అన్నీ దాచిపెట్టు"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ఇప్పుడే ముగించు"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"విస్తరింపజేయండి"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"కుదించండి"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"స్క్రీన్ పిన్ చేయబడింది"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"ఇది మీరు అన్పిన్ చేసే వరకు దీన్ని వీక్షణలో ఉంచుతుంది. అన్పిన్ చేయడానికి వెనుకకు మరియు స్థూలదృష్టిని ఒకేసారి తాకి, ఉంచండి."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"ఇది మీరు అన్పిన్ చేసే వరకు దీన్ని వీక్షణలో ఉంచుతుంది. అన్పిన్ చేయడానికి స్థూలదృష్టిని తాకి, ఉంచండి."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"తిరస్కరించు"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> అనేది వాల్యూమ్ డైలాగ్"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"అసలుదాన్ని పునరుద్ధరించడానికి తాకండి."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"మీరు మీ కార్యాలయ ప్రొఫైల్ను ఉపయోగిస్తున్నారు"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"సిస్టమ్ UI ట్యూనర్"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"పొందుపరిచిన బ్యాటరీ శాతం చూపు"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"ఛార్జింగ్లో లేనప్పుడు స్థితి పట్టీ చిహ్నం లోపల బ్యాటరీ స్థాయి శాతం చూపుతుంది"</string> - <string name="quick_settings" msgid="10042998191725428">"శీఘ్ర సెట్టింగ్లు"</string> - <string name="status_bar" msgid="4877645476959324760">"స్థితి పట్టీ"</string> - <string name="demo_mode" msgid="2389163018533514619">"డెమో మోడ్"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"డెమో మోడ్ ప్రారంభించండి"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"డెమో మోడ్ చూపు"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ఈథర్నెట్"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"అలారం"</string> - <string name="status_bar_work" msgid="6022553324802866373">"కార్యాలయ ప్రొఫైల్"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"ఎయిర్ప్లైన్ మోడ్"</string> - <string name="add_tile" msgid="2995389510240786221">"టైల్ను జోడించండి"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ప్రసార టైల్"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"మీరు <xliff:g id="WHEN">%1$s</xliff:g> సెట్ చేసిన మీ తదుపరి అలారం మీరు ఆ లోపల దీన్ని ఆఫ్ చేయకుంటే వినిపించదు"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"మీరు <xliff:g id="WHEN">%1$s</xliff:g> సెట్ చేసిన మీ తదుపరి అలారం మీకు వినిపించదు"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>కి"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>కి"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"శీఘ్ర సెట్టింగ్లు, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"హాట్స్పాట్"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"కార్యాలయ ప్రొఫైల్"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"కొందరికి సరదాగా ఉంటుంది కానీ అందరికీ అలాగే ఉండదు"</string> - <string name="tuner_warning" msgid="8730648121973575701">"సిస్టమ్ UI ట్యూనర్ Android వినియోగదారు ఇంటర్ఫేస్ను మెరుగుపరచడానికి మరియు అనుకూలీకరించడానికి మీకు మరిన్ని మార్గాలను అందిస్తుంది. ఈ ప్రయోగాత్మక లక్షణాలు భవిష్యత్తు విడుదలల్లో మార్పుకు లోనవ్వచ్చు, తాత్కాలికంగా లేదా పూర్తిగా నిలిపివేయవచ్చు. జాగ్రత్తగా కొనసాగండి."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"ఈ ప్రయోగాత్మక లక్షణాలు భవిష్యత్తు విడుదలల్లో మార్పుకు లోనవ్వచ్చు, తాత్కాలికంగా లేదా పూర్తిగా నిలిపివేయవచ్చు. జాగ్రత్తగా కొనసాగండి."</string> - <string name="got_it" msgid="2239653834387972602">"అర్థమైంది"</string> - <string name="tuner_toast" msgid="603429811084428439">"అభినందనలు! సెట్టింగ్లకు సిస్టమ్ UI ట్యూనర్ జోడించబడింది"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"సెట్టింగ్ల నుండి తీసివేయి"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"సిస్టమ్ UI ట్యూనర్ను సెట్టింగ్ల నుండి తీసివేసి, దాని అన్ని లక్షణాలను ఉపయోగించడం ఆపివేయాలా?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"మీరు కార్యాలయ ప్రొఫైల్లో ఉన్నారు"</string> </resources> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 9d81c64cf948..7321e681c59b 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ข้อมูลแอปพลิเคชัน"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"หน้าจอล่าสุดของคุณแสดงที่นี่"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"ปิดแอปพลิเคชันล่าสุด"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 หน้าจอในภาพรวม"</item> - <item quantity="other" msgid="5523506463832158203">"%d หน้าจอในภาพรวม"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d หน้าจอในภาพรวม</item> + <item quantity="one">1 หน้าจอในภาพรวม</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"ไม่มีการแจ้งเตือน"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"ดำเนินอยู่"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"การแจ้งเตือน"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"อนุญาตให้แก้ไขข้อบกพร่อง USB หรือไม่"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"ลายนิ้วมือหลัก RSA ของคอมพิวเตอร์คือ:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"อนุญาตจากคอมพิวเตอร์เครื่องนี้เสมอ"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"ไม่อนุญาตให้แก้ไขข้อบกพร่องผ่าน USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"ผู้ใช้ที่ลงชื่อเข้าใช้อุปกรณ์อยู่ในขณะนี้ไม่สามารถเปิดการแก้ไขข้อบกพร่องผ่าน USB ได้ หากต้องการใช้คุณลักษณะนี้ ให้เปลี่ยนไปเป็นผู้ใช้หลัก “<xliff:g id="NAME">%s</xliff:g>”"</string> <string name="compat_mode_on" msgid="6623839244840638213">"ขยายจนเต็มหน้าจอ"</string> <string name="compat_mode_off" msgid="4434467572461327898">"ยืดจนเต็มหน้าจอ"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"กำลังบันทึกภาพหน้าจอ..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"ค้นหา"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"กล้องถ่ายรูป"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"โทรศัพท์"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"ตัวช่วยเสียง"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"ปลดล็อก"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"ปุ่มปลดล็อก กำลังรอลายนิ้วมือ"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"ปลดล็อกโดยไม่ต้องใช้ลายนิ้วมือ"</string> <string name="unlock_label" msgid="8779712358041029439">"ปลดล็อก"</string> <string name="phone_label" msgid="2320074140205331708">"เปิดโทรศัพท์"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"เปิดตัวช่วยเสียง"</string> <string name="camera_label" msgid="7261107956054836961">"เปิดกล้อง"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"เลือกรูปแบบงานใหม่"</string> <string name="cancel" msgid="6442560571259935130">"ยกเลิก"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"สัญญาณข้อมูลสองขีด"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"สัญญาณข้อมูลสามขีด"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"สัญญาณข้อมูลเต็ม"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"WiFi ปิดอยู่"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"ไม่ได้เชื่อมต่อ WiFi"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"สัญญาณ WiFi หนึ่งขีด"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"สัญญาณ WiFi สองขีด"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"สัญญาณ WiFi สามขีด"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"สัญญาณ WiFi เต็ม"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"เชื่อมต่อ <xliff:g id="WIFI">%s</xliff:g> แล้ว"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"เชื่อมต่อกับ <xliff:g id="BLUETOOTH">%s</xliff:g> แล้ว"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"ไม่มีสัญญาณ WiMAX"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"สัญญาณ WiMAX สองขีด"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"สัญญาณ WiMAX สามขีด"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"สัญญาณ WiMAX เต็ม"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ยกเลิกการเชื่อมต่ออีเทอร์เน็ตแล้ว"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"เชื่อมต่ออีเทอร์เน็ตแล้ว"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"ไม่มีสัญญาณ"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"ไม่ได้เชื่อมต่อ"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"ศูนย์ขีด"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"ไม่มีซิมการ์ด"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"การปล่อยสัญญาณบลูทูธ"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"โหมดใช้งานบนเครื่องบิน"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"ไม่มีซิมการ์ด"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"การเปลี่ยนเครือข่ายผู้ให้บริการ"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"แบตเตอรี่ <xliff:g id="NUMBER">%d</xliff:g> เปอร์เซ็นต์"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"การตั้งค่าระบบ"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ถูกลบไปแล้ว"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"ปิดแอปพลิเคชันล่าสุดทั้งหมดแล้ว"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"กำลังเริ่มต้น <xliff:g id="APP">%s</xliff:g>"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"ปิดการแจ้งเตือนแล้ว"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"หน้าต่างแจ้งเตือน"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"การตั้งค่าด่วน"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"ล็อกหน้าจอ"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"การตั้งค่า"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"ภาพรวม"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"ปิด"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"ยืนยัน"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"ผู้ใช้ <xliff:g id="USER">%s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"ปิด Wi-Fi แล้ว"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"ปิดโหมดบนเครื่องบินแล้ว"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"เปิดโหมดบนเครื่องบินแล้ว"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"การห้ามรบกวนเปิดอยู่ เฉพาะเรื่องสำคัญเท่านั้น"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"เปิดการห้ามรบกวนอยู่ ปิดเสียงทั้งหมด"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"การห้ามรบกวนเปิดอยู่ ห้ามรบกวน"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"เปิดการห้ามรบกวนอยู่ ปลุกได้เท่านั้น"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"การห้ามรบกวนปิดอยู่"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ปิดการห้ามรบกวนแล้ว"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ห้ามรบกวน"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"เฉพาะเรื่องสำคัญ"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"เฉพาะปลุกเท่านั้น"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"ปิดเสียงทั้งหมด"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"ไม่มีการรบกวน"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"บลูทูธ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"บลูทูธ (<xliff:g id="NUMBER">%d</xliff:g> อุปกรณ์)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"ปิดบลูทูธ"</string> @@ -264,8 +260,8 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"ไม่ได้เชื่อมต่อ"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"ไม่มีเครือข่าย"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"ปิด WiFi"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"ไม่มีเครือข่าย Wi-Fi พร้อมใช้งาน"</string> - <string name="quick_settings_cast_title" msgid="7709016546426454729">"แคสต์"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"เครือข่ายที่บันทึกไว้ทั้งหมดไม่พร้อมใช้งาน"</string> + <string name="quick_settings_cast_title" msgid="7709016546426454729">"ส่ง"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"กำลังส่ง"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"อุปกรณ์ที่ไม่มีชื่อ"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"พร้อมที่จะส่ง"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"ค้นหา"</string> <string name="description_direction_up" msgid="7169032478259485180">"เลื่อนขึ้นเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> <string name="description_direction_left" msgid="7207478719805562165">"เลื่อนไปทางซ้ายเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"คุณจะไม่ถูกรบกวนจากเสียงและการสั่น ยกเว้นการปลุก การเตือนความจำ กิจกรรม และผู้โทรที่คุณระบุ"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"ไม่มีการรบกวน แม้แต่นาฬิกาปลุก"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"คุณจะไม่ถูกรบกวนจากเสียงและการสั่น ยกเว้นจากการปลุก ช่วยเตือน กิจกรรมและผู้โทรที่คุณระบุ"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"กำหนดค่า"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"การใช้โหมดนี้จะบล็อกเสียงและการสั่นทั้งหมด ซึ่งรวมถึงเสียงปลุก เพลง วิดีโอ และเกม คุณจะยังโทรออกได้อยู่"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"การใช้โหมดนี้จะบล็อกเสียงและการสั่นทั้งหมด ซึ่งรวมถึงเสียงปลุก เพลง วิดีโอ และเกม"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"ไม่มีการรบกวน"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"เฉพาะเรื่องสำคัญเท่านั้น"</string> + <string name="zen_alarms" msgid="5055668280767657759">"เฉพาะปลุกเท่านั้น"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"การปลุกครั้งถัดไปของคุณคือเวลา <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"การปลุกครั้งถัดไปของคุณคือ <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"คุณจะไม่ได้ยินเสียงปลุกในเวลา <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"การแจ้งเตือนที่เร่งด่วนน้อยด้านล่าง"</string> <string name="notification_tap_again" msgid="8524949573675922138">"แตะอีกครั้งเพื่อเปิด"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"เลื่อนเพื่อปลดล็อก"</string> - <string name="phone_hint" msgid="4872890986869209950">"เลื่อนไอคอนโทรศัพท์"</string> - <string name="voice_hint" msgid="8939888732119726665">"เลื่อนไอคอนตัวช่วยเสียง"</string> - <string name="camera_hint" msgid="7939688436797157483">"เลื่อนไอคอนกล้อง"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"ปิดเสียงทั้งหมด การดำเนินการนี้จะปิดเสียงโปรแกรมอ่านหน้าจอด้วย"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"ปิดเสียงทั้งหมด"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"กวาดขึ้นเพื่อปลดล็อก"</string> + <string name="phone_hint" msgid="3101468054914424646">"กวาดไปทางขวาเพื่อใช้โทรศัพท์"</string> + <string name="camera_hint" msgid="5241441720959174226">"กวาดไปทางซ้ายเพื่อใช้กล้องถ่ายรูป"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"ไม่มีการรบกวน"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"เฉพาะเรื่องสำคัญ"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"เฉพาะปลุกเท่านั้น"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"ปิดเสียง\nทั้งหมด"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"ทั้งหมด"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"ไม่มี\nการรบกวน"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"เฉพาะเรื่อง\nสำคัญ"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"เฉพาะปลุก\nเท่านั้น"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"กำลังชาร์จ (อีก <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> เต็ม)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"สลับผู้ใช้"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"เปลี่ยนผู้ใช้จากผู้ใช้ปัจจุบัน <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"ผู้ใช้ปัจจุบัน <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"แสดงโปรไฟล์"</string> <string name="user_add_user" msgid="5110251524486079492">"เพิ่มผู้ใช้"</string> <string name="user_new_user_name" msgid="426540612051178753">"ผู้ใช้ใหม่"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"เริ่มต้นใหม่"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ใช่ ดำเนินการต่อ"</string> <string name="guest_notification_title" msgid="1585278533840603063">"ผู้ใช้ที่เป็นผู้เข้าร่วม"</string> - <string name="guest_notification_text" msgid="335747957734796689">"หากต้องการลบแอปและข้อมูล ให้นำผู้ใช้ที่เป็นผู้เข้าร่วมออก"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"นำผู้เข้าร่วมออกเพื่อลบแอปและข้อมูล"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"นำผู้เข้าร่วมออก"</string> <string name="user_add_user_title" msgid="4553596395824132638">"ต้องการเพิ่มผู้ใช้ใหม่ใช่ไหม"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"เมื่อคุณเพิ่มผู้ใช้ใหม่ ผู้ใช้ดังกล่าวจะต้องตั้งค่าพื้นที่ของตนเอง\n\nผู้ใช้ทุกคนสามารถอัปเดตแอปสำหรับผู้ใช้รายอื่นทุกคนได้"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"ปิดใช้ VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"ยกเลิกการเชื่อมต่อ VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"อุปกรณ์ของคุณได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบและจัดการการตั้งค่า การเข้าถึงของบริษัท แอป ข้อมูลที่เชื่อมโยงกับอุปกรณ์ของคุณ และข้อมูลตำแหน่งของอุปกรณ์ สำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"คุณได้ให้สิทธิ์แอปในการตั้งค่าการเชื่อมต่อ VPN\n\nแอปนี้จะสามารถตรวจสอบอุปกรณ์และกิจกรรมในเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ได้"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"โปรไฟล์งานของคุณได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบกิจกรรมเครือข่ายของคุณ รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"อุปกรณ์ของคุณได้รับการจัดการโดย:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nโปรไฟล์งานของคุณได้รับการจัดการโดย:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบอุปกรณ์และกิจกรรมเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"คุณให้สิทธิ์แอปในการตั้งค่าการเชื่อมต่อ VPN\n\nแอปนี้สามารถตรวจสอบอุปกรณ์และกิจกรรมเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"อุปกรณ์ของคุณได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบและจัดการการตั้งค่า การเข้าถึงของบริษัท แอป ข้อมูลที่เชื่อมโยงกับอุปกรณ์ของคุณ และข้อมูลตำแหน่งของอุปกรณ์\n\nคุณยังได้เชื่อมต่อกับ VPN ซึ่งสามารถตรวจสอบกิจกรรมเครือข่ายของคุณ รวมถึง อีเมล แอป และเว็บไซต์\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"โปรไฟล์งานได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบของคุณสามารถตรวจสอบกิจกรรมในเครือข่ายรวมถึงอีเมล แอป และเว็บไซต์ได้\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ\n\nนอกจากนี้คุณยังมีการเชื่อมต่อ VPN ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่ายของคุณ"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"คุณเชื่อมต่อกับ <xliff:g id="APPLICATION">%1$s</xliff:g> ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่ายของคุณ รวมถึงอีเมล แอป และเว็บไซต์ได้"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"คุณเชื่อมต่อกับ <xliff:g id="APPLICATION">%1$s</xliff:g> ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่ายส่วนตัวของคุณ รวมถึงอีเมล แอป และเว็บไซต์ได้"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"โปรไฟล์งานได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g> โดยมีการเชื่อมต่อกับ <xliff:g id="APPLICATION">%2$s</xliff:g> ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ได้\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"โปรไฟล์งานได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g> โดยมีการเชื่อมต่อกับ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่าย รวมถึงอีเมล แอป และเว็บไซต์ได้\n\nนอกจากนี้ คุณยังเชื่อมต่อกับ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่ายส่วนตัวได้"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"อุปกรณ์ได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูและรบบของคุณสามารถตรวจสอบและจัดการการตั้งค่า การเข้าถึงของบริษัท แอป ข้อมูลที่เชื่อมโยงกับอุปกรณ์ และข้อมูลตำแหน่งของอุปกรณ์ได้\n\nคุณมีการเชื่อมต่อกับ <xliff:g id="APPLICATION">%2$s</xliff:g> ซึ่งสามารถตรวจสอบกิจกรรมในเครือข่ายรวมถึงอีเมล แอป และเว็บไซต์ได้\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"โปรไฟล์งานของคุณได้รับการจัดการโดย <xliff:g id="ORGANIZATION">%1$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบกิจกรรมเครือข่ายของคุณ รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ\n\nคุณยังได้เชื่อมต่อกับ VPN ซึ่งสามารถตรวจสอบกิจกรรมเครือข่ายของคุณได้"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"อุปกรณ์ของคุณได้รับการจัดการโดย <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nโปรไฟล์งานของคุณได้รับการจัดการโดย:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nผู้ดูแลระบบสามารถตรวจสอบกิจกรรมเครือข่ายของคุณ รวมถึงอีเมล แอป และเว็บไซต์ที่ปลอดภัย\n\nสำหรับข้อมูลเพิ่มเติม โปรดติดต่อผู้ดูแลระบบ\n\nคุณยังได้เชื่อมต่อกับ VPN ซึ่งสามารถตรวจสอบกิจกรรมเครือข่ายส่วนตัวของคุณได้"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"อุปกรณ์จะล็อกจนกว่าคุณจะปลดล็อกด้วยตนเอง"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"รับการแจ้งเตือนเร็วขึ้น"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"ดูก่อนปลดล็อก"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"ดูทั้งหมด"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"ซ่อนทั้งหมด"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g> <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ไม่ใช้แล้ว"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"ขยาย"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"ยุบ"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"ตรึงหน้าจอแล้ว"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"การดำเนินการนี้จะเปิดหน้าจอนี้ไว้เสมอจนกว่าคุณจะเลิกตรึง แตะ \"กลับ\" และ \"ภาพรวม\" พร้อมกันค้างไว้เพื่อเลิกตรึง"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"การดำเนินการนี้จะเปิดหน้าจอนี้ไว้เสมอจนกว่าคุณจะเลิกตรึง แตะ \"ภาพรวม\" ค้างไว้เพื่อเลิกตรึง"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"ปฏิเสธ"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> เป็นช่องโต้ตอบระดับเสียง"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"แตะเพื่อคืนค่าดั้งเดิม"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"คุณกำลังใช้โปรไฟล์งานของคุณ"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"ตัวรับสัญญาณ UI ระบบ"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"แสดงเปอร์เซ็นต์ของแบตเตอรี่ในตัว"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"แสดงเปอร์เซ็นต์ของระดับแบตเตอรี่ภายในไอคอนแถบสถานะเมื่อไม่มีการชาร์จ"</string> - <string name="quick_settings" msgid="10042998191725428">"การตั้งค่าด่วน"</string> - <string name="status_bar" msgid="4877645476959324760">"แถบสถานะ"</string> - <string name="demo_mode" msgid="2389163018533514619">"โหมดสาธิต"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"เปิดใช้โหมดสาธิต"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"แสดงโหมดสาธิต"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"อีเทอร์เน็ต"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"การปลุก"</string> - <string name="status_bar_work" msgid="6022553324802866373">"โปรไฟล์งาน"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"โหมดบนเครื่องบิน"</string> - <string name="add_tile" msgid="2995389510240786221">"เพิ่มไทล์"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ไทล์การออกอากาศ"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"คุณจะไม่ได้ยินเสียงปลุกครั้งถัดไปในเวลา <xliff:g id="WHEN">%1$s</xliff:g> เว้นแต่คุณจะปิดการปลุกนี้ไปก่อนแล้ว"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"คุณจะไม่ได้ยินเสียงปลุกครั้งถัดไปในเวลา <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"เวลา <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"ในวันที่ <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"การตั้งค่าด่วน <xliff:g id="TITLE">%s</xliff:g>"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ฮอตสปอต"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"โปรไฟล์งาน"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"เพลิดเพลินกับบางส่วนแต่ไม่ใช่ทั้งหมด"</string> - <string name="tuner_warning" msgid="8730648121973575701">"ตัวรับสัญญาณ UI ระบบช่วยให้คุณมีวิธีพิเศษในการปรับแต่งและกำหนดค่าส่วนติดต่อผู้ใช้ Android คุณลักษณะรุ่นทดลองเหล่านี้อาจมีการเปลี่ยนแปลง ขัดข้อง หรือหายไปในเวอร์ชันอนาคต โปรดดำเนินการด้วยความระมัดระวัง"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"คุณลักษณะรุ่นทดลองเหล่านี้อาจมีการเปลี่ยนแปลง ขัดข้อง หรือหายไปในเวอร์ชันอนาคต โปรดดำเนินการด้วยความระมัดระวัง"</string> - <string name="got_it" msgid="2239653834387972602">"รับทราบ"</string> - <string name="tuner_toast" msgid="603429811084428439">"ยินดีด้วย! เพิ่มตัวรับสัญญาณ UI ระบบไปยังการตั้งค่าแล้ว"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"นำออกจากการตั้งค่า"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"นำตัวรับสัญญาณ UI ระบบออกจากการตั้งค่าและหยุดใช้คุณลักษณะทั้งหมดของตัวรับสัญญาณใช่ไหม"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"คุณกำลังอยู่ในโปรไฟล์งาน"</string> </resources> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index eb37f32a250e..d101708b33bc 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Impormasyon ng app"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Lumalabas dito ang iyong kamakailang screen"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Huwag pansinin ang kamakailang apps"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 screen sa Overview"</item> - <item quantity="other" msgid="5523506463832158203">"%d (na) screen sa Overview"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d screen sa Pangkalahatang-ideya</item> + <item quantity="other">%d na screen sa Pangkalahatang-ideya</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Walang mga notification"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Nagpapatuloy"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Mga Notification"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Payagan ang pag-debug ng USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Ang RSA key fingerprint ng computer ay:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Palaging payagan mula sa computer na ito"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Hindi pinapayagan ang pagde-debug sa pamamagitan ng USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Hindi ma-on ng user na kasalukuyang naka-sign in sa device na ito ang pagde-debug sa pamamagitan ng USB. Upang magamit ang feature na ito, lumipat sa pangunahing user na “<xliff:g id="NAME">%s</xliff:g>.”"</string> <string name="compat_mode_on" msgid="6623839244840638213">"I-zoom upang punan screen"</string> <string name="compat_mode_off" msgid="4434467572461327898">"I-stretch upang mapuno screen"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Sine-save ang screenshot…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Hanapin"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Camera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telepono"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Voice Assist"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"I-unlock"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"I-unlock ang button, naghihintay para sa fingerprint"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"I-unlock nang hindi ginagamit ang iyong fingerprint"</string> <string name="unlock_label" msgid="8779712358041029439">"i-unlock"</string> <string name="phone_label" msgid="2320074140205331708">"buksan ang telepono"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"buksan ang voice assist"</string> <string name="camera_label" msgid="7261107956054836961">"buksan ang camera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Pumili ng bagong layout ng gawain"</string> <string name="cancel" msgid="6442560571259935130">"Kanselahin"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Data na dalawang bar."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Data na tatlong bar."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Puno ang signal ng data."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Naka-off ang Wifi."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Nakadiskonekta ang Wifi."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"May isang bar ang WiFi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"May dalawang bar ang Wifi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"May tatlong bar ang Wifi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Puno ang signal ng WiFi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Nakakonekta sa <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Nakakonekta sa <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Walang WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX na dalawang bar."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX na tatlong bar."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Puno ang signal ng WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Nadiskonekta ang Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Nakakonekta ang Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Walang signal."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Hindi nakakonekta."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Walang mga bar."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Walang SIM."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Pag-tether ng Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Mode na eroplano."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Walang SIM card."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Nagpapalit ng carrier network."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Baterya <xliff:g id="NUMBER">%d</xliff:g> (na) porsyento."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Mga setting ng system."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Hindi pinansin ang <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Na-dismiss ang lahat ng kamakailang application."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Sinisimulan ang <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Na-dismiss ang notification."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Notification shade."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Mga mabilisang setting."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Lock screen."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Mga Setting"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Overview"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Isara"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Kumpirmahin"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"User na si <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Na-off ang wifi."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Na-off ang Airplane mode."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Na-on ang Airplane mode."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Naka-on ang huwag istorbohin, priyoridad lang."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Naka-on ang huwag gambalain, ganap na katahimikan."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Naka-on ang huwag istorbohin, walang mga paggambala."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Naka-on ang huwag istorbohin, mga alarm lang."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Naka-off ang huwag istorbohin."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Na-off na ang huwag istorbohin"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Huwag istorbohin"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Priyoridad lang"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Mga alarm lang"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Ganap na katahimikan"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Walang mga paggambala"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> (na) Device)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Naka-off ang Bluetooth"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Hindi Nakakonekta"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Walang Network"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Naka-off ang Wi-Fi"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Walang available na mga Wi-Fi network"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Walang available na naka-save na mga network"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"I-cast"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Nagka-cast"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Walang pangalang device"</string> @@ -273,7 +269,7 @@ <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Brightness"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"AUTO"</string> <string name="quick_settings_inversion_label" msgid="8790919884718619648">"I-invert ang mga kulay"</string> - <string name="quick_settings_color_space_label" msgid="853443689745584770">"Correction mode ng kulay"</string> + <string name="quick_settings_color_space_label" msgid="853443689745584770">"Mode ng pagtatama ng kulay"</string> <string name="quick_settings_more_settings" msgid="326112621462813682">"Marami pang setting"</string> <string name="quick_settings_done" msgid="3402999958839153376">"Tapos na"</string> <string name="quick_settings_connected" msgid="1722253542984847487">"Nakakonekta"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Maghanap"</string> <string name="description_direction_up" msgid="7169032478259485180">"Mag-slide pataas para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Mag-slide pakaliwa para sa <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Hindi ka magagambala ng mga tunog at pag-vibrate, maliban mula sa mga alarm, paalala, kaganapan at mga tinukoy mong tumatawag."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Walang mga pagkaantala. Kahit mga alarma."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Hindi ka maaabala ng mga tunog at vibration, maliban sa mga alarm, paalala, kaganapan at tumatawag na iyong tinukoy."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"I-customize"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Bina-block nito ang LAHAT ng tunog at pag-vibrate, kabilang ang mula sa mga alarm, musika, video at laro. Magagawa mo pa ring tumawag."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Bina-block nito ang LAHAT ng tunog at pag-vibrate, kabilang ang mula sa mga alarm, musika, video at laro."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Walang mga paggambala"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Mga may priyoridad na paggambala lang"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Mga alarm lang"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Ang susunod mong alarma ay sa <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Ang susunod mong alarma ay <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Hindi mo maririnig ang alarma mo ng <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Nasa ibaba ang mga notification na hindi masyadong mahalaga"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Pinduting muli upang buksan"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"I-swipe pataas upang i-unlock"</string> - <string name="phone_hint" msgid="4872890986869209950">"Mag-swipe mula sa icon para sa telepono"</string> - <string name="voice_hint" msgid="8939888732119726665">"Mag-swipe mula sa icon para sa voice assist"</string> - <string name="camera_hint" msgid="7939688436797157483">"Mag-swipe mula sa icon para sa camera"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Ganap na katahimikan. Papatahimikin din nito ang mga screen reader."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Ganap na katahimikan"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Mag-swipe pataas upang i-unlock"</string> + <string name="phone_hint" msgid="3101468054914424646">"Mag-swipe pakanan para sa telepono"</string> + <string name="camera_hint" msgid="5241441720959174226">"Mag-swipe pakaliwa para sa camera"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Walang pagkaantala"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Priyoridad lang"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Mga alarm lang"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Ganap na\nkatahimikan"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Lahat"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Walang\npagkaantala"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Priyoridad\nlang"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Mga alarm\nlang"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Nagtsa-charge (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> hanggang mapuno)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Magpalit ng user"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Magpalit ng user, kasalukuyang user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Kasalukuyang user <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Ipakita ang profile"</string> <string name="user_add_user" msgid="5110251524486079492">"Magdagdag ng user"</string> <string name="user_new_user_name" msgid="426540612051178753">"Bagong user"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Magsimulang muli"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Oo, magpatuloy"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Bisitang user"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Upang mag-delete ng mga app at data, alisin ang bisitang user"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Alisin ang bisita upang mag-delete ng mga app at data"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ALISIN ANG BISITA"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Magdagdag ng bagong user?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Kapag nagdagdag ka ng bagong user, kailangang i-set up ng taong iyon ang kanyang espasyo.\n\nAng sinumang user ay maaaring mag-update ng mga app para sa lahat ng iba pang user."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"I-disable ang VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Idiskonekta ang VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Pinapamahalaan ang iyong device ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMagagawa ng iyong administrator na subaybayan at pamahalaan ang iyong mga setting, corporate na access, mga app, data na nauugnay sa iyong device at ang impormasyon ng lokasyon ng iyong device. Para sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Nagbigay ka ng pahintulot sa app upang mag-set up ng VPN na koneksyon.\n\nMaaaring subaybayan ng app na ito ang iyong aktibidad sa device at network, kabilang ang mga email, app at website."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Pinapamahalaan ang iyong profile ng:<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMay kakayahan ang iyong administrator na subaybayan ang iyong aktibidad sa network kasama ang mga email, app at secure na website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Pinapamahalaan ang iyong device ng:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nPinapamahalaan ang iyong profile sa trabaho ng:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nMagagawa ng iyong administrator na subaybayan ang iyong aktibidad sa device at network, kasama ang mga email, app at secure na website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Ibinigyan mo ng pahintulot ang isang app na mag-set up ng VPN na koneksyon.\n\nMagagawa ng app na ito na subaybayan ang iyong aktibidad sa device at network, kasama ang mga email, app at secure na website."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Pinapamahalaan ang iyong device ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMagagawa ng iyong administrator na subaybayan at pamahalaan ang iyong mga setting, corporate na access, mga app, data na nauugnay sa iyong device at ang impormasyon ng lokasyon ng iyong device.\n\nNakakonekta ka sa isang VPN, na maaaring subaybayan ang iyong aktibidad sa network, kasama ang mga email, app at website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Pinapamahalaan ang iyong profile ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMay kakayahan ang iyong administrator sa pagsubaybay ng iyong aktibidad sa network kabilang ang mga email, app at website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator.\n\nNakakonekta ka rin sa isang VPN, na maaaring sumubaybay sa iyong aktibidad sa network."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Nakakonekta ka sa <xliff:g id="APPLICATION">%1$s</xliff:g>, na maaaring sumubaybay sa iyong aktibidad sa network kabilang ang mga email, app at website."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Nakakonekta ka sa <xliff:g id="APPLICATION">%1$s</xliff:g>, na maaaring sumubaybay sa iyong personal na aktibidad sa network, kabilang ang mga email, app at website."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Ang iyong profile sa trabaho ay pinapamahalaan ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Nakakonekta ito sa <xliff:g id="APPLICATION">%2$s</xliff:g>, na maaaring sumubaybay sa iyong aktibidad sa network, kabilang ang mga email, app at website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Ang iyong profile sa trabaho ay pinapamahalaan ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Nakakonekta ito sa <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, na maaaring sumubaybay sa iyong aktibidad sa network, kabilang ang mga email, app at website.\n\nNakakonekta ka rin sa <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, na maaaring sumubaybay sa iyong personal na aktibidad sa network."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Pinapamahalaan ang iyong device ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMaaaring subaybayan at pamahalaan ng iyong administrator ang mga setting, corporate na access, app, data na nauugnay sa iyong device at ang impormasyon ng lokasyon ng iyong device.\n\nNakakonekta ka sa <xliff:g id="APPLICATION">%2$s</xliff:g>, na maaaring subaybayan ang iyong aktibidad sa network, kabilang ang mga email, app at website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Pinapamahalaan ang iyong device ng <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nMagagawa ng iyong administrator na subaybayan ang iyong aktibidad sa network kasama ang mga email, app at secure na website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator.\n\nNakakonekta ka rin sa isang VPN, na maaaring subaybayan ang iyong aktibidad sa personal na network."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Pinapamahalaan ang iyong device ng <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nPinapamahalaan ang iyong profile sa trabaho ng:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nMay kakayahan ang iyong administrator na subaybayan ang iyong aktibidad sa network kasama ang mga email, app at secure na website.\n\nPara sa higit pang impormasyon, makipag-ugnayan sa iyong administrator.\n\nNakakonekta ka rin sa isang VPN, na maaaring subaybayan ang iyong aktibidad sa personal na network"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Mananatiling naka-lock ang device hanggang sa manu-mano mong i-unlock"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Kunin ang notification nang mas mabilis"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Tingnan ang mga ito bago ka mag-unlock"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Tingnan lahat"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Itago lahat"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Tapusin ngayon"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Palawakin"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"I-collapse"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Naka-pin ang screen"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Pinapanatili nitong nasa view ito hanggang sa mag-unpin ka. Pindutin nang matagal ang Bumalik at Pangkalahatang-ideya nang sabay upang mag-unpin."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Pinapanatili nitong nasa view ito hanggang sa mag-unpin ka. Pindutin nang matagal ang Pangkalahatang-ideya upang mag-unpin."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Tanggihan"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"Ang <xliff:g id="APP_NAME">%1$s</xliff:g> ang volume dialog"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Pindutin upang ibalik ang orihinal."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Ginagamit mo ang iyong profile sa trabaho"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Tuner ng System UI"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Ipakita ang naka-embed na porsyento ng baterya"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Ipakita ang porsyento ng antas ng baterya na nasa icon ng status bar kapag nagcha-charge"</string> - <string name="quick_settings" msgid="10042998191725428">"Mga Maikling Setting"</string> - <string name="status_bar" msgid="4877645476959324760">"Status bar"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo mode"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"I-enable ang demo mode"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Ipakita ang demo mode"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarma"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Profile sa trabaho"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Airplane mode"</string> - <string name="add_tile" msgid="2995389510240786221">"Magdagdag ng tile"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Broadcast na Tile"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Hindi mo maririnig ang iyong susunod na alarm ng <xliff:g id="WHEN">%1$s</xliff:g> maliban kung io-off mo ito bago pa dumating ang oras na iyon"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Hindi mo maririnig ang iyong susunod na alarm ng <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"ng <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"sa <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Mga Maikling Setting, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Profile sa trabaho"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Masaya para sa ilan ngunit hindi para sa lahat"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Nagbibigay sa iyo ang Tuner ng System UI ng mga karagdagang paraan upang baguhin at i-customize ang user interface ng Android. Ang mga pang-eksperimentong feature na ito ay maaaring magbago, masira o mawala sa mga pagpapalabas sa hinaharap. Magpatuloy nang may pag-iingat."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ang mga pang-eksperimentong feature na ito ay maaaring magbago, masira o mawala sa mga pagpapalabas sa hinaharap. Magpatuloy nang may pag-iingat."</string> - <string name="got_it" msgid="2239653834387972602">"Naintindihan ko"</string> - <string name="tuner_toast" msgid="603429811084428439">"Binabati kita! Naidagdag na ang Tuner ng System UI sa Mga Setting"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Alisin sa Mga Setting"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Alisin ang Tuner ng System UI sa Mga Setting at ihinto ang paggamit ng lahat ng feature nito?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Nandito ka sa profile sa Trabaho"</string> </resources> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index dbaf39a8c880..da54de1839d1 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Uygulama bilgileri"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Son ekranlarınız burada görünür"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Son uygulamaları kapat"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Genel Bakış\'ta 1 ekran"</item> - <item quantity="other" msgid="5523506463832158203">"Genel Bakış\'ta %d ekran"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">Genel Bakış\'ta %d ekran</item> + <item quantity="one">Genel Bakış\'ta 1 ekran</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Bildirim yok"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Sürüyor"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Bildirimler"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB hata ayıklamasına izin verilsin mi?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Bilgisayarın RSA anahtarı parmak izi:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Bu bilgisayardan her zaman izin ver"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB hata ayıklama işlevine izin verilmiyor"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Bu cihazda geçerli olarak oturum açmış olan kullanıcı, USB hata ayıklama özelliğini açamaz. Bu özelliği kullanmak için “<xliff:g id="NAME">%s</xliff:g>” adlı birincil kullanıcıya geçin."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Yakınlaştır (ekranı kaplasın)"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Genişlet (ekran kapansın)"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Ekran görüntüsü kaydediliyor..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Ara"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Sesli Yardım"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Kilidi aç"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Kilit açma düğmesi, parmak izi bekleniyor"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Kilidi, parmak iziniz olmadan açın"</string> <string name="unlock_label" msgid="8779712358041029439">"kilidi aç"</string> <string name="phone_label" msgid="2320074140205331708">"telefonu aç"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"sesli yardımı aç"</string> <string name="camera_label" msgid="7261107956054836961">"kamerayı aç"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Yeni görev düzenini seçin"</string> <string name="cancel" msgid="6442560571259935130">"İptal"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Veri sinyali iki çubuk."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Veri sinyali üç çubuk."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Veri sinyali tam."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Kablosuz kapalı."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Kablosuz bağlantı kesildi."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Kablosuz sinyali bir çubuk."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Kablosuz sinyali iki çubuk."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Kablosuz sinyali üç çubuk."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Kablosuz sinyali tam."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> ile bağlı."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> ile bağlı."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX yok."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX iki çubuk."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX üç çubuk."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX sinyali tam."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet bağlantısı kesildi."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet bağlandı."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Sinyal yok."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Bağlanmadı."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Sıfır çubuk."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM kart yok."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth tethering"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Uçak modu."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"SIM kart yok."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Operatör şebekesi değişiyor."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Pil yüzdesi: <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Sistem ayarları."</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> kaldırıldı."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Tüm son uygulamalar kapatıldı."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> başlatılıyor."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Bildirim kapatıldı."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bildirim gölgesi."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Hızlı ayarlar."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Kilit ekranı"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Ayarlar"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Genel Bakış."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Kapat"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Onayla"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Kullanıcı: <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Kablosuz kapatıldı."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Uçak modu kapatıldı."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Uçak modu açıldı."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Rahatsız etmeyin ayarı açık, yalnızca öncelikliler."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Rahatsız etmeyin ayarı açık, tamamen sessiz."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Rahatsız etmeyin ayarı açık, kesme yok."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Rahatsız etmeyin ayarı açık, yalnızca alarmlar."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"\"Rahatsız etmeyin\" ayarı kapalı."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"\"Rahatsız etmeyin\" ayarı kapalı."</string> @@ -203,10 +199,10 @@ <string name="accessibility_quick_settings_close" msgid="3115847794692516306">"Paneli kapat."</string> <string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"Daha uzun süre."</string> <string name="accessibility_quick_settings_less_time" msgid="2404728746293515623">"Daha kısa süre."</string> - <string name="accessibility_quick_settings_flashlight_off" msgid="4936432000069786988">"El feneri kapalı."</string> - <string name="accessibility_quick_settings_flashlight_on" msgid="2003479320007841077">"El feneri açık."</string> - <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"El feneri kapatıldı."</string> - <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"El feneri açıldı."</string> + <string name="accessibility_quick_settings_flashlight_off" msgid="4936432000069786988">"Flaş ışığı kapalı."</string> + <string name="accessibility_quick_settings_flashlight_on" msgid="2003479320007841077">"Flaş ışığı açık."</string> + <string name="accessibility_quick_settings_flashlight_changed_off" msgid="3303701786768224304">"Flaş ışığı kapatıldı."</string> + <string name="accessibility_quick_settings_flashlight_changed_on" msgid="6531793301533894686">"Flaş ışığı açıldı."</string> <string name="accessibility_quick_settings_color_inversion_changed_off" msgid="4406577213290173911">"Renkleri ters çevirme işlevi kapatıldı."</string> <string name="accessibility_quick_settings_color_inversion_changed_on" msgid="6897462320184911126">"Renkleri ters çevirme işlevi açıldı."</string> <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobil hotspot kapatıldı."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Rahatsız etmeyin"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Yalnızca öncelikliler"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Yalnızca alarmlar"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Tamamen sessiz"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Kesme yok"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> Cihaz)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth Kapalı"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Bağlı Değil"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ağ yok"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Kablosuz Kapalı"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Kullanılabilir kablosuz ağ yok"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Kullanılabilir kaydedilmiş ağ yok"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Yayınlama"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Yayınlanıyor"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Adsız cihaz"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Ara"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için yukarı kaydırın."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> için sola kaydırın."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Belirttiğiniz alarmlar, hatırlatıcılar, etkinlikler ve arayanlar hariç olmak üzere, sesler ve titreşimlerle rahatsız edilmeyeceksiniz."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Kesinti yok. Uyarı bile yok."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Belirttiğiniz alarmlar, hatırlatıcılar, etkinlikler ve arayanlar hariç olmak üzere, sesler ve titreşimlerle rahatsız edilmezsiniz."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Özelleştir"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Bu seçenek TÜM sesleri ve titreşimleri engeller. Buna alarmlar, müzik, videolar ve oyunlar dahildir. Telefon aramaları yapmaya devam edebileceksiniz."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Bu seçenek TÜM sesleri ve titreşimleri engeller. Buna alarmlar, müzik, videolar ve oyunlar dahildir."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Kesinti yok"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Sadece öncelikli kesintiler"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Yalnızca alarmlar"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Bir sonraki alarmın saati: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Bir sonraki alarmınız: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"<xliff:g id="ALARM_TIME">%s</xliff:g> olarak ayarlanan alarmı duymayacaksınız"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Daha az acil bildirimler aşağıdadır"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Açmak için tekrar dokunun"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Kilidi açmak için hızlıca yukarı kaydırın"</string> - <string name="phone_hint" msgid="4872890986869209950">"Telefon için, simgeden hızlıca kaydırın"</string> - <string name="voice_hint" msgid="8939888732119726665">"Sesli yardım için, simgeden hızlıca kaydırın"</string> - <string name="camera_hint" msgid="7939688436797157483">"Kamera için, simgeden hızlıca kaydırın"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Tam sessizlik. Bu seçenek, ekran okuyucularını da kapatacaktır."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Tamamen sessiz"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telefon için sağa kaydırın"</string> + <string name="camera_hint" msgid="5241441720959174226">"Kamera için sola kaydırın"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Kesinti yok"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Yalnızca öncelikli"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Yalnızca alarmlar"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Tamamen\nsessiz"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Tümü"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Kesinti\nyok"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Yalnızca\nöncelik"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Yalnızca\nalarmlar"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Şarj oluyor (tamamen dolmasına <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> kaldı)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Kullanıcı değiştirme"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Kullanıcı değiştir. Geçerli kullanıcı: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Geçerli kullanıcı: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Profili göster"</string> <string name="user_add_user" msgid="5110251524486079492">"Kullanıcı ekle"</string> <string name="user_new_user_name" msgid="426540612051178753">"Yeni kullanıcı"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Baştan başla"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Evet, devam et"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Misafir kullanıcı"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Uyg. ve verileri silmek için misafir kullanıcıyı kaldırın"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Uygulamaları ve verileri silmek için misafiri kaldır"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"MİSAFİR KALDIRILSIN MI?"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Yeni kullanıcı eklensin mi?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Yeni bir kullanıcı eklediğinizde, bu kişinin kendi alanını ayarlaması gerekir.\n\nHerhangi bir kullanıcı, diğer tüm kullanıcılar için uygulamaları güncelleyebilir."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN\'yi devre dışı bırak"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN bağlantısını kes"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Cihazınız <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor.\n\nYöneticiniz; cihazınızla ilişkilendirilen ayarları, şirket erişimini, uygulamaları, verileri izleyebilir ve yönetebilir. Daha fazla bilgi için yöneticinize başvurun."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"VPN bağlantısı kurması için bir uygulamaya izin verdiniz.\n\nBu uygulama, cihazınızın yanı sıra e-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere ağ etkinliğinizi izleyebilir."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"İş profiliniz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor.\n\nYöneticiniz; e-postalar, uygulamalar ve güvenli web siteleri de dahil olmak üzere ağ etkinliğinizi izleyebilir.\n\nDaha fazla bilgi için yöneticinize başvurun."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Cihazınızı yöneten kuruluş:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>\nİş profilinizi yöneten kuruluş:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>\n\nYöneticiniz; e-postalar, uygulamalar ve güvenli web siteleri de dahil olmak üzere cihazınızı ve ağ etkinliğinizi izleyebilir.\n\nDaha fazla bilgi için yöneticinize başvurun."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Bir uygulamaya VPN bağlantısı kurma izni verdiniz.\n\nBu uygulama; e-postalar, uygulamalar ve güvenli web siteleri dahil olmak üzere ağ etkinliğinizi izleyebilir."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Cihazınız <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor.\n\nYöneticiniz cihazınızla ilişkilendirilen ayarları, şirket erişimini, uygulamaları, verileri ve cihazınızın konum bilgilerini izleyebilir ve yönetebilir.\n\nE-postalar, uygulamalar ve web siteleri de dahil olmak üzere ağ etkinliğinizi izleyebilen bir VPN\'ye bağlısınız.\n\nDaha fazla bilgi için lütfen yöneticinize başvurun."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Cihazınız <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor.\n\nYöneticiniz; e-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere ağ etkinliğinizi izleyebilir.\n\nDaha fazla bilgi edinmek için yöneticinizle iletişim kurun.\n\nAyrıca ağ etkinliğinizi izleyebilen bir VPN\'ye bağlısınız."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"E-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere ağ etkinliğinizi izleyebilen <xliff:g id="APPLICATION">%1$s</xliff:g> uygulamasına bağlısınız."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"E-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere kişisel ağ etkinliğinizi izleyebilen <xliff:g id="APPLICATION">%1$s</xliff:g> uygulamasına bağlısınız."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"İş profiliniz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor. E-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere ağ etkinliğinizi izleyebilen <xliff:g id="APPLICATION">%2$s</xliff:g> uygulamasına bağlı.\n\nDaha fazla bilgi için yöneticinizle iletişim kurun."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"İş profiliniz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor. E-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere ağ etkinliğinizi izleyebilen <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> uygulamasına bağlı.\n\n Ayrıca kişisel ağ etkinliğinizi izleyebilen <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> uygulamasına bağlısınız."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Cihazınız <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor.\n\nYöneticiniz; ayarları, şirket erişimini, uygulamaları, cihazınızla ilişkilendirilmiş verileri ve cihazınızın konum bilgilerini izleyebilir ve yönetebilir.\n\nE-postalarınız, uygulamalarınız ve web siteleriniz dahil olmak üzere ağ etkinliğinizi izleyebilen <xliff:g id="APPLICATION">%2$s</xliff:g> uygulamasına bağlısınız.\n\nDaha fazla bilgi edinmek için yöneticinizle iletişim kurun."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"İş profiliniz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tarafından yönetiliyor.\n\nYöneticiniz; e-postalar, uygulamalar ve güvenli web siteleri de dahil olmak üzere ağ etkinliğinizi izleyebilir.\n\nDaha fazla bilgi için ağ yöneticinize başvurun.\n\nAyrıca, ağ etkinliğinizi izleyebilen bir VPN\'ye bağlısınız."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Cihazınız <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> tarafından yönetiliyor.\nİş profilinizi yöneten kuruluş:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nYöneticiniz; e-postalar, uygulamalar ve güvenli web siteleri de dahil olmak üzere ağ etkinliğinizi izleyebilir.\n\nDaha fazla bilgi için ağ yöneticinize başvurun.\n\nAyrıca, kişisel ağ etkinliğinizi izleyebilen bir VPN\'ye bağlısınız"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Cihazınızın kilidini manuel olarak açmadıkça cihaz kilitli kalacak"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Bildirimleri daha hızlı alın"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Kilidi açmadan bildirimleri görün"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Tümünü göster"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Tümünü gizle"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Şimdi sona erdir"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Genişlet"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Daralt"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekran sabitlendi"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Böylece siz sabitlemesini kaldırana kadar görüntülenmeye devam eder. Sabitlemeyi kaldırmak için Geri ve Genel Bakış öğesine aynı anda dokunun ve basılı tutun."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Böylece siz sabitlemesini kaldırana kadar görüntülenmeye devam eder. Sabitlemeyi kaldırmak için Genel Bakış\'a dokunun ve basılı tutun."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Reddet"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ses denetimi iletişim kutusu olarak ayarlandı"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Orijinali geri yüklemek için dokunun."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"İş profilinizi kullanıyorsunuz"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Sistem Arayüzü Ayarlayıcısı"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Yerleşik pil yüzdesini göster"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Şarj olmazken durum çubuğu simgesinin içinde pil düzeyi yüzdesini göster"</string> - <string name="quick_settings" msgid="10042998191725428">"Hızlı Ayarlar"</string> - <string name="status_bar" msgid="4877645476959324760">"Durum çubuğu"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo modu"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Demo modunu etkinleştir"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Demo modunu göster"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Alarm"</string> - <string name="status_bar_work" msgid="6022553324802866373">"İş profili"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Uçak modu"</string> - <string name="add_tile" msgid="2995389510240786221">"Blok ekle"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Yayın Bloku"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"<xliff:g id="WHEN">%1$s</xliff:g> olarak ayarlanmış bir sonraki alarmınızdan önce bu işlevi kapatmazsanız alarmı duymayacaksınız"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"<xliff:g id="WHEN">%1$s</xliff:g> olarak ayarlanmış bir sonraki alarmınızı duymayacaksınız"</string> - <string name="alarm_template" msgid="3980063409350522735">"saat: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"gün ve saat: <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Hızlı Ayarlar, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"İş profili"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Bazıları için eğlenceliyken diğerleri için olmayabilir"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Sistem Kullanıcı Arayüzü Ayarlayıcı, Android kullanıcı arayüzünde değişiklikler yapmanız ve arayüzü özelleştirmeniz için ekstra yollar sağlar. Bu deneysel özellikler değişebilir, bozulabilir veya gelecekteki sürümlerde yer almayabilir. Dikkatli bir şekilde devam edin."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Bu deneysel özellikler değişebilir, bozulabilir veya gelecekteki sürümlerde yer almayabilir. Dikkatli bir şekilde devam edin."</string> - <string name="got_it" msgid="2239653834387972602">"Anladım"</string> - <string name="tuner_toast" msgid="603429811084428439">"Tebrikler! Sistem Kullanıcı Arayüzü Ayarlayıcı Ayarlar\'a eklendi"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Ayarlar\'dan kaldır"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Sistem Kullanıcı Arayüzü Ayarlayıcısı Ayarlar\'dan kaldırılsın ve tüm özelliklerinin kullanılması durdurulsun mu?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"İş profilindesiniz"</string> </resources> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 3dd112399636..df219ef1414f 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -25,10 +25,12 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Про додаток"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Ваші останні екрани відображаються тут"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Відхилити останні програми"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"Показано 1 екран"</item> - <item quantity="other" msgid="5523506463832158203">"Показано екранів: %d"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">На панелі огляду %d екран</item> + <item quantity="few">На панелі огляду %d екрани</item> + <item quantity="many">На панелі огляду %d екранів</item> + <item quantity="other">На панелі огляду %d екрана</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Немає сповіщень"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Поточні"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Сповіщення"</string> @@ -63,8 +65,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Дозволити налагодження USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Цифровий відбиток ключа RSA комп’ютера:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Завжди дозволяти з цього комп’ютера"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Ви не можете вмикати налагодження USB"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Користувач поточного облікового запису не може вмикати налагодження USB. Щоб увімкнути цю функцію, увійдіть в обліковий запис основного користувача \"<xliff:g id="NAME">%s</xliff:g>\"."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Масштабув. на весь екран"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Розтягнути на весь екран"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Збереження знімка екрана..."</string> @@ -85,13 +85,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Пошук"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Камера"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Номер телефону"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Голосові підказки"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Розблокувати"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Кнопка розблокування. Очікується цифровий відбиток"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Розблокувати без цифрового відбитка"</string> <string name="unlock_label" msgid="8779712358041029439">"розблокувати"</string> <string name="phone_label" msgid="2320074140205331708">"відкрити телефон"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"запустити голосові підказки"</string> <string name="camera_label" msgid="7261107956054836961">"відкрити камеру"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Виберіть новий макет завдання"</string> <string name="cancel" msgid="6442560571259935130">"Скасувати"</string> @@ -114,6 +110,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Дві смужки сигналу даних."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Три смужки сигналу даних."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Максимальний сигнал даних."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wi-Fi вимкнено."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi від’єднано."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Одна смужка сигналу Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Дві смужки сигналу Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Три смужки сигналу Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Максимальний сигнал Wi-Fi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Підключено до <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Підключено до <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Немає сигналу WiMAX."</string> @@ -121,8 +123,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Дві смужки сигналу WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Три смужки сигналу WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Максимальний сигнал WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Ethernet відключено."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Ethernet підключено."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Немає сигналу."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Не з’єднано."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Нуль смужок сигналу."</string> @@ -148,7 +148,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Немає SIM-карти."</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Прив’язка Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Режим польоту."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Немає SIM-карти."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Змінення мережі оператора."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Заряд акумулятора: <xliff:g id="NUMBER">%d</xliff:g>."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Налаштування системи."</string> @@ -165,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"Програму <xliff:g id="APP">%s</xliff:g> закрито."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Усі останні додатки закрито."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Запуск додатка <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Сповіщення відхилено."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Панель сповіщень."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Швидке налаштування."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Заблокований екран."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Налаштування"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Огляд."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Закрити"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Підтвердити"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Користувач <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi вимкнено."</string> @@ -184,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Режим польоту вимкнено."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Режим польоту ввімкнено."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Режим \"Не турбувати\" ввімкнено, лише пріоритетні."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Увімкнено режим \"Не турбувати\", сигнали вимкнено."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Режим \"Не турбувати\" ввімкнено, без сповіщень."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Увімкнено режим \"Не турбувати\", дозволено лише сигнали."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Режим \"Не турбувати\" вимкнено."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Режим \"Не турбувати\" вимкнено."</string> @@ -238,8 +236,8 @@ <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Не турбувати"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Лише пріоритетні"</string> - <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Лише будильник"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Без сигналів"</string> + <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Лише сигнали"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Без сповіщень"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (пристроїв: <xliff:g id="NUMBER">%d</xliff:g>)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth вимкнено"</string> @@ -264,11 +262,11 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Не під’єднано."</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Немає мережі"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi вимкнено"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Немає доступних мереж Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Немає збережених мереж"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Трансляція"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Трансляція"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Пристрій без назви"</string> - <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Готово до трансляції"</string> + <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Можна транслювати"</string> <string name="quick_settings_cast_detail_empty_text" msgid="311785821261640623">"Немає пристроїв"</string> <string name="quick_settings_brightness_dialog_title" msgid="8599674057673605368">"Яскравість"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="5064982743784071218">"АВТО"</string> @@ -306,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Пошук"</string> <string name="description_direction_up" msgid="7169032478259485180">"Проведіть пальцем угору, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Проведіть пальцем ліворуч, щоб <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Ви отримуватимете звукові й вібросигнали лише для вибраних сповіщень, нагадувань, повідомлень про події та викликів абонентів."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Без сповіщень і сигналів будильника."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Ви отримуватимете звукові й вібросигнали лише для сповіщень, нагадувань, повідомлень про події та викликів абонентів, яких ви вибрали."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Налаштувати"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Блокуватимуться ВСІ звукові та вібросигнали, зокрема будильники, музика, відео й ігри. Ви зможете телефонувати."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Блокуватимуться ВСІ звукові та вібросигнали, зокрема будильники, музика, відео й ігри."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Без сповіщень"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Лише пріоритетні сповіщення"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Лише сигнали"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Наступний сигнал: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Наступний сигнал: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Сигнал не лунатиме о <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Менше термінових сповіщень нижче"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Торкніться знову, щоб відкрити"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Проведіть пальцем угору, щоб розблокувати"</string> - <string name="phone_hint" msgid="4872890986869209950">"Телефон: проведіть пальцем від значка"</string> - <string name="voice_hint" msgid="8939888732119726665">"Голосові підказки: проведіть пальцем від значка"</string> - <string name="camera_hint" msgid="7939688436797157483">"Камера: проведіть пальцем від значка"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Без звуку. Звук також буде вимкнено в програмах зчитування з екрана."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Без сигналів"</string> + <string name="phone_hint" msgid="3101468054914424646">"Проведіть пальцем праворуч, щоб скористатися телефоном"</string> + <string name="camera_hint" msgid="5241441720959174226">"Проведіть пальцем ліворуч, щоб скористатися камерою"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Без сповіщень"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Лише пріоритетні"</string> - <string name="interruption_level_alarms" msgid="5226306993448328896">"Лише будильник"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Без\nсигналів"</string> + <string name="interruption_level_alarms" msgid="5226306993448328896">"Лише сигнали"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Усі"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Без\nсповіщень"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Лише\nприорітетні"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Лише\nсигнали"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Заряджання (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> до повного зарядження)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Змінити користувача"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Змінити користувача, поточний користувач – <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Поточний користувач: <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Показати профіль"</string> <string name="user_add_user" msgid="5110251524486079492">"Додати користувача"</string> <string name="user_new_user_name" msgid="426540612051178753">"Новий користувач"</string> @@ -342,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Почати знову"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Так, продовжити"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Режим гостя"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Щоб видалити додатки й дані, вилучіть профіль гостя"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Вийдіть із режиму гостя, щоб видалити додатки й дані"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"ВИЙТИ З РЕЖИМУ ГОСТЯ"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Додати нового користувача?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Користувач має налаштувати свій профіль після створення.\n\nБудь-який користувач пристрою може оновлювати додатки для решти користувачів."</string> @@ -364,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Вимкнути VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Від’єднатися від мережі VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Вашим пристроєм керує <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдміністратор може відстежувати та контролювати налаштування, корпоративний доступ, додатки й дані, пов’язані з вашим пристроєм, а також геодані пристрою. Зв’яжіться з адміністратором, щоб дізнатися більше."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Ви дозволили додатку під’єднуватися до мережі VPN.\n\nЦей додаток може відстежувати вашу активність на пристрої та в мережі, зокрема в електронній пошті, додатках і на веб-сайтах."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Вашим робочим профілем керує <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдміністратор може відстежувати вашу активність у мережі, зокрема листування, роботу в додатках і на захищених сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Вашим пристроєм керує\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nВашим робочим профілем керує\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдміністратор може відстежувати вашу активність на пристрої та в мережі, зокрема листування, роботу в додатках і на захищених сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Ви дозволити додатку під’єднуватися до мережі VPN.\n\nЦей додаток може відстежувати вашу активність на пристрої та в мережі, зокрема листування, роботу в додатках і на захищених сайтах."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Вашим пристроєм керує <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдміністратор може відстежувати та контролювати налаштування, корпоративний доступ, додатки й дані, пов’язані з вашим пристроєм, а також геодані пристрою.\n\nПристрій під’єднано до мережі VPN, постачальник послуг якої може відстежувати вашу активність у мережі, зокрема листування, роботу в додатках і на сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Вашим пристроєм керує організація <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдміністратор може відстежувати вашу активність у мережі, зокрема в електронній пошті, додатках і на веб-сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше.\n\nПристрій під’єднано до мережі VPN, у якій ваша активність може відстежуватись."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Ваш профіль під’єднано до додатка <xliff:g id="APPLICATION">%1$s</xliff:g>, який може відстежувати вашу активність у мережі, зокрема в електронній пошті, додатках і на веб-сайтах."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Ваш профіль під’єднано до додатка <xliff:g id="APPLICATION">%1$s</xliff:g>, який може відстежувати вашу особисту активність у мережі, зокрема в електронній пошті, додатках і на веб-сайтах."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Вашим робочим профілем керує <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Профіль під’єднано до додатка <xliff:g id="APPLICATION">%2$s</xliff:g>, який може відстежувати вашу робочу активність у мережі, зокрема в електронній пошті, додатках і на веб-сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Вашим робочим профілем керує <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Профіль під’єднано до додатка <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, який може відстежувати вашу робочу активність у мережі, зокрема в електронній пошті, додатках і на веб-сайтах.\n\nВаш профіль також під’єднано до додатка <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, який може відстежувати вашу особисту активність у мережі."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Вашим пристроєм керує організація <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдміністратор може відстежувати та контролювати налаштування, корпоративний доступ, додатки, геодані й інші дані, пов’язані з вашим пристроєм.\n\nВаш профіль під’єднано до додатка <xliff:g id="APPLICATION">%2$s</xliff:g>, який може відстежувати вашу активність у мережі, зокрема в електронній пошті, додатках і на веб-сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Вашим робочим профілем керує <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nАдміністратор може відстежувати вашу активність у мережі, зокрема листування, роботу в додатках і на захищених сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше.\n\nПристрій під’єднано до мережі VPN, постачальник послуг якої може відстежувати вашу активність у мережі."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Вашим пристроєм керує <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nВашим робочим профілем керує\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nАдміністратор може відстежувати вашу активність у мережі, зокрема листування, роботу в додатках і на захищених сайтах.\n\nЗв’яжіться з адміністратором, щоб дізнатися більше.\n\nПристрій під’єднано до мережі VPN, постачальник послуг якої може відстежувати вашу активність у мережі."</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Пристрій залишатиметься заблокованим, доки ви не розблокуєте його вручну"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Швидше отримуйте сповіщення"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Переглядайте сповіщення, перш ніж розблокувати екран"</string> @@ -381,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Показати всі"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Сховати всі"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Закрити"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Розгорнути"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Згорнути"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Екран закріплено"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Закріпить екран, щоб ви могли постійно його бачити, доки не відкріпите. Щоб відкріпити, одночасно натисніть і втримуйте кнопки \"Назад\" і \"Огляд\"."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Закріпить екран, щоб ви могли постійно його бачити, доки не відкріпите. Щоб відкріпити, натисніть і втримуйте кнопку \"Огляд\"."</string> @@ -397,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Відхилити"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> призначено регулятором гучності"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Торкніться, щоб відновити оригінал."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Ви в робочому профілі"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Показувати заряд акумулятора у відсотках"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Показувати заряд акумулятора у відсотках в рядку стану, коли пристрій не заряджається"</string> - <string name="quick_settings" msgid="10042998191725428">"Швидкі налаштування"</string> - <string name="status_bar" msgid="4877645476959324760">"Рядок стану"</string> - <string name="demo_mode" msgid="2389163018533514619">"Демонстраційний режим"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Увімкнути демонстраційний режим"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Показати демонстраційний режим"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Сигнал"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Робочий профіль"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Режим польоту"</string> - <string name="add_tile" msgid="2995389510240786221">"Додавання опції"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Опція трансляції"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Наступний сигнал о <xliff:g id="WHEN">%1$s</xliff:g> не пролунає, якщо ви до того часу не вимкнете цю функцію"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Наступний сигнал о <xliff:g id="WHEN">%1$s</xliff:g> не пролунає"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Швидкі налаштування, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Точка доступу"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Робочий профіль"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Це цікаво, але будьте обачні"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner пропонує нові способи налаштувати та персоналізувати інтерфейс користувача Android. Ці експериментальні функції можуть змінюватися, не працювати чи зникати в майбутніх версіях. Будьте обачні."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ці експериментальні функції можуть змінюватися, не працювати чи зникати в майбутніх версіях. Будьте обачні."</string> - <string name="got_it" msgid="2239653834387972602">"Зрозуміло"</string> - <string name="tuner_toast" msgid="603429811084428439">"Вітаємо! System UI Tuner установлено в додатку Налаштування"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Видалити з додатка Налаштування"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Видалити інструмент System UI Tuner із додатка Налаштування та припинити користуватися всіма його функціями?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Ви в робочому профілі"</string> </resources> diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml index c08cd1487d69..d28efcb3a9a6 100644 --- a/packages/SystemUI/res/values-ur-rPK/strings.xml +++ b/packages/SystemUI/res/values-ur-rPK/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"ایپ کی معلومات"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"آپ کی حالیہ اسکرینز یہاں ظاہر ہوتی ہیں"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"حالیہ ایپس برخاست کریں"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"مجموعی جائزہ میں 1 اسکرین"</item> - <item quantity="other" msgid="5523506463832158203">"مجموعی جائزہ میں %d اسکرینز"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">عمومی جائزہ میں %d اسکرینز</item> + <item quantity="one">عمومی جائزہ میں 1 اسکرین</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"کوئی اطلاعات نہیں ہیں"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"جاری"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"اطلاعات"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB ڈیبگ کرنے کی اجازت دیں؟"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"کمپیوٹر کے RSA کا کلیدی فنگر پرنٹ ہے:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"اس کمپیوٹر سے ہمیشہ اجازت دیں"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB ڈیبگ کرنے کی اجازت نہیں ہے"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"اس آلہ پر فی الحال سائن ان کردہ صارف USB ڈیبگ کرنا آن نہیں کر سکتا۔ اس خصوصیت کو استعمال کرنے کیلئے ابتدائی صارف \"<xliff:g id="NAME">%s</xliff:g>\" پر سوئچ کریں۔"</string> <string name="compat_mode_on" msgid="6623839244840638213">"پوری سکرین پر زوم کریں"</string> <string name="compat_mode_off" msgid="4434467572461327898">"پوری سکرین پر پھیلائیں"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"اسکرین شاٹ محفوظ ہو رہا ہے…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"تلاش کریں"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"کیمرا"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"فون"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"صوتی معاون"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"غیر مقفل کریں"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"بٹن غیر مقفل کریں، فنگر پرنٹ کا منتظر"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"فنگر پرنٹ استعمال کیے بغیرغیر مقفل کریں"</string> <string name="unlock_label" msgid="8779712358041029439">"غیر مقفل کریں"</string> <string name="phone_label" msgid="2320074140205331708">"فون کھولیں"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"صوتی معاون کھولیں"</string> <string name="camera_label" msgid="7261107956054836961">"کیمرا کھولیں"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"نئے کام کا لے آؤٹ منتخب کریں"</string> <string name="cancel" msgid="6442560571259935130">"منسوخ کریں"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"ڈیٹا کے دو بارز۔"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"ڈیٹا کے تین بارز۔"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"ڈیٹا سگنل بھرا ہوا ہے۔"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi آف ہے۔"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi منقطع ہوگیا۔"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wifi ایک بار۔"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wifi دو بارز۔"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wifi تین بارز۔"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wifi سگنل پورا ہے۔"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"<xliff:g id="WIFI">%s</xliff:g> سے منسلک ہیں۔"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"<xliff:g id="BLUETOOTH">%s</xliff:g> سے منسلک ہیں۔"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"کوئی WiMAX نہیں ہے۔"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX دو بارز۔"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX تین بارز۔"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX سگنل پورا ہے۔"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"ایتھرنیٹ منقطع ہے۔"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"ایتھرنیٹ منسلک ہے۔"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"کوئی سگنل نہیں ہے۔"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"مربوط نہیں ہے۔"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"صفر بارز۔"</string> @@ -146,9 +144,8 @@ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"کوئی SIM نہیں ہے۔"</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"بلوٹوتھ مربوط کرنا۔"</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"بلوٹوتھ ربط بنانا۔"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"ہوائی جہاز وضع۔"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"کوئی SIM کارڈ نہیں ہے۔"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"کیریئر نیٹ ورک تبدیل ہو رہا ہے۔"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"بیٹری <xliff:g id="NUMBER">%d</xliff:g> فیصد۔"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"سسٹم کی ترتیبات۔"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> کو ہٹا دیا گیا۔"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"سبھی حالیہ ایپلیکیشنز کو برخاست کر دیا گیا۔"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> شروع ہو رہی ہے۔"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"اطلاع مسترد ہوگئی۔"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"اطلاعاتی شیڈ۔"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"فوری ترتیبات۔"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"مقفل اسکرین۔"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"ترتیبات"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"مجموعی جائزہ۔"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"بند کریں"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"توثیق کریں"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"صارف <xliff:g id="USER">%s</xliff:g>۔"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>۔"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wifi کو آف کر دیا گیا۔"</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"ہوائی جہاز وضع کو آف کر دیا گیا۔"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"ہوائی جہاز وضع کو آن کر دیا گیا۔"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"ڈسٹرب نہ کریں آن ہے، صرف ترجیحی۔"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"مداخلت نہ کریں آن ہے، مکمل خاموشی۔"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"ڈسٹرب نہ کریں آن ہے، کوئی مداخلتیں نہیں۔"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"ڈسٹرب نہ کریں آن ہے، صرف الارمز۔"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"ڈسٹرب نہ کریں آف ہے۔"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"ڈسٹرب نہ کریں کو آف کر دیا گیا۔"</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"ڈسٹرب نہ کریں"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"صرف ترجیحی"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"صرف الارمز"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"مکمل خاموشی"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"کوئی مداخلتیں نہیں"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"بلوٹوتھ"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"بلوٹوتھ (<xliff:g id="NUMBER">%d</xliff:g> آلات)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"بلوٹوتھ آف ہے"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"مربوط نہیں ہے"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"کوئی نیٹ ورک نہیں ہے"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi آف ہے"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"کوئی WI-FI نیٹ ورک دستیاب نہیں"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"کوئی محفوظ کردہ نیٹ ورکس دستیاب نہیں ہیں"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"کاسٹ کریں"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"کاسٹنگ"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"بغیر نام والا آلہ"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"تلاش کریں"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے اوپر سلائیڈ کریں۔"</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> کیلئے بائیں سلائیڈ کریں۔"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"الارمز، یاد دہانیوں، ایونٹس اور آپ کے متعین کردہ کالرز کے علاوہ، آپ آوازوں اور وائبریشنز سے ڈسٹرب نہیں ہوں گے۔"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"کوئی مداخلتیں نہیں ہیں۔ یہاں تک کہ الارمز بھی نہیں ہیں۔"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"الارمز، یاد دہانیوں، ایونٹس اور آپ کے متعین کردہ کالرز کے علاوہ، آپ آوازوں اور وائبریشنز سے ڈسٹرب نہیں ہونگے۔"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"حسب ضرورت بنائیں"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"یہ الارمز، موسیقی، ویڈیوز اور گیمز کی آوازوں اور وائبریشنز سمیت سبھی آوازیں اور وائبریشنز مسدود کر دیتا ہے۔ آپ ابھی بھی فون کالز کر سکیں گے۔"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"یہ الارمز، موسیقی، ویڈیوز اور گیمز کی آوازوں اور وائبریشنز سمیت سبھی آوازیں اور وائبریشنز مسدود کر دیتا ہے۔"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"کوئی مداخلتیں نہیں ہیں"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"صرف ترجیحی مداخلتیں"</string> + <string name="zen_alarms" msgid="5055668280767657759">"صرف الارمز"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"آپ کا اگلا الارم <xliff:g id="ALARM_TIME">%s</xliff:g> بجے ہے"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"آپ کا اگلا الارم <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g> ہے"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"آپ کو <xliff:g id="ALARM_TIME">%s</xliff:g> بجے اپنا الارم سنائی نہیں دیگا"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"کم اہم اطلاعات ذیل میں ہیں"</string> <string name="notification_tap_again" msgid="8524949573675922138">"کھولنے کیلئے دوبارہ ٹچ کریں"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"غیر مقفل کرنے کیلئے اوپر سوائپ کریں"</string> - <string name="phone_hint" msgid="4872890986869209950">"فون کیلئے آئیکن سے سوائپ کریں"</string> - <string name="voice_hint" msgid="8939888732119726665">"صوتی معاون کیلئے آئیکن سے سوائپ کریں"</string> - <string name="camera_hint" msgid="7939688436797157483">"کیمرہ کیلئے آئیکن سے سوائپ کریں"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"مکمل خاموشی۔ یہ سکرین قارئین کو بھی خاموش کر دے گا۔"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"مکمل خاموشی"</string> + <string name="phone_hint" msgid="3101468054914424646">"فون کیلئے دائیں سوائپ کریں"</string> + <string name="camera_hint" msgid="5241441720959174226">"کیمرہ کیلئے بائیں سوائپ کریں"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"کوئی مداخلتیں نہیں"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"صرف ترجیحی"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"صرف الارمز"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"مکمل\nخاموشی"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"سبھی"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"کوئی مداخلتیں\nنہیں"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"صرف\nترجیحی"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"صرف\nالارمز"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"چارج ہو رہا ہے (مکمل ہونے تک <xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> باقی ہیں)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"صارف سوئچ کریں"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"صارف سوئچ کریں، موجودہ صارف <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"موجودہ صارف <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"پروفائل دکھائیں"</string> <string name="user_add_user" msgid="5110251524486079492">"صارف کو شامل کریں"</string> <string name="user_new_user_name" msgid="426540612051178753">"نیا صارف"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"دوبارہ شروع کریں"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"ہاں، جاری رکھیں"</string> <string name="guest_notification_title" msgid="1585278533840603063">"مہمان صارف"</string> - <string name="guest_notification_text" msgid="335747957734796689">"ایپس اور ڈیٹا حذف کرنے کیلئے مہمان صارف کو ہٹائیں"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"ایپس اور ڈیٹا حذف کرنے کیلئے مہمان کو ہٹائیں"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"مہمان کو ہٹائیں"</string> <string name="user_add_user_title" msgid="4553596395824132638">"نیا صارف شامل کریں؟"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"جب آپ ایک نیا صارف شامل کرتے ہیں تو اس شخص کو اپنی جگہ کو ترتیب دینے کی ضرورت ہوتی ہے۔\n\nکوئی بھی صارف دیگر سبھی صارفین کیلئے ایپس کو اپ ڈیٹ کر سکتا ہے۔"</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"VPN کو غیر فعال کریں"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN کو غیر منسلک کریں"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"آپ کے آلہ کا نظم کیا جاتا ہے بذریعہ <xliff:g id="ORGANIZATION">%1$s</xliff:g>۔\n\nآپ کا منتظم ترتیبات، کارپوریٹ رسائی، ایپس، آپ کے آلہ سے وابستہ ڈیٹا اور آپ کے آلہ کے مقام کی معلومات کو مانیٹر اور ان کا نظم کر سکتا ہے۔ مزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"آپ نے ایک ایپ کو VPN کنکشن ترتیب دینے کی اجازت دی ہے۔\n\nیہ ایپ ای میلز، ایپس اور ویب سائٹس سمیت آپ کے آلہ اور نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"آپ کے دفتری پروفائل کا نظم کیا جاتا ہے بذریعہ <xliff:g id="ORGANIZATION">%1$s</xliff:g>۔\n\nآپ کا منتظم ای میلز، ایپس اور محفوظ ویب سائٹس سیمت آپ کے آلہ اور نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"آپ کے آلہ کا نظم کیا جاتا ہے بذریعہ:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>۔\nآپ کے دفتری پروفائل کا نظم کیا جاتا ہے بذریعہ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>۔\n\nآپ کا منتظم ای میلز، ایپس اور محفوظ ویب سائٹس سیمت آپ کے آلہ اور نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"آپ نے ایک ایپ کو VPN کنکشن ترتیب دینے کی اجازت دی ہے۔\n\nآپ کا منتظم ای میلز، ایپس اور محفوظ ویب سائٹس سیمت آپ کے آلہ اور نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"آپ کے آلہ کا نظم کیا جاتا ہے بذریعہ <xliff:g id="ORGANIZATION">%1$s</xliff:g>۔\n\nآپ کا منتظم ترتیبات، کارپوریٹ رسائی، ایپس، آپ کے آلہ سے وابستہ ڈیٹا اور آپ کے آلہ کے مقام کی معلومات کو مانیٹر اور ان کا نظم کر سکتا ہے۔\n\nآپ ایک VPN سے منسلک ہیں، جو ای میلز، ایپس اور محفوظ ویب سائٹس سمیت آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"آپ کا دفتری پروفائل <xliff:g id="ORGANIZATION">%1$s</xliff:g> کے زیر انتظام ہے۔\n\nآپ کا منتظم ای میلز، ایپس اور ویب سائٹس سیمت آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔\n\nآپ ایک VPN سے بھی منسلک ہیں، جو آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"آپ <xliff:g id="APPLICATION">%1$s</xliff:g> سے منسلک ہیں، جو ای میلز، ایپس اور ویب سائٹس سمیت آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"آپ <xliff:g id="APPLICATION">%1$s</xliff:g> سے منسلک ہیں، جو آپ کے نجی نیٹ ورک کی سرگرمی سمیت ای میلز، ایپس اور ویب سائٹس مانیٹر کر سکتی ہے۔"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"آپ کا دفتری پروفائل <xliff:g id="ORGANIZATION">%1$s</xliff:g> کے زیر انتظام ہے۔ یہ <xliff:g id="APPLICATION">%2$s</xliff:g> سے منسلک ہے، جو ای میلز، ایپس اور ویب سائٹس سمیت آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔\n\nمزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"آپ کا دفتری پروفائل <xliff:g id="ORGANIZATION">%1$s</xliff:g> کے زیر انتظام ہے۔ یہ <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> سے منسلک ہے، جو ای میلز، ایپس اور ویب سائٹس سمیت آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔\n\nآپ <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> سے بھی منسلک ہیں، جو آپ کے نجی نیٹ ورک کی سرگرمی کو مانیٹر کر سکتی ہے۔"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"آپ کا آلہ <xliff:g id="ORGANIZATION">%1$s</xliff:g> کے زیر انتظام ہے۔\n\nآپ کا منتظم ترتیبات، کارپوریٹ رسائی، ایپس، آپ کے آلہ سے وابستہ ڈیٹا اور آپ کے آلہ کے مقام کی معلومات کو مانیٹر اور ان کا نظم کر سکتا ہے۔\n\nآپ <xliff:g id="APPLICATION">%2$s</xliff:g> سے منسلک ہیں، جو ای میلز، ایپس اور ویب سائٹس سمیت آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتی ہے۔\n\nمزید معلومات کیلئے اپنے منتظم سے رابطہ کریں۔"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"آپ کے آلہ کا نظم کیا جاتا ہے بذریعہ <xliff:g id="ORGANIZATION">%1$s</xliff:g>۔\n\nآپ کا منتظم ای میلز، ایپس اور محفوظ ویب سائٹس سیمت آپ کے آلہ اور نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔\n\nآپ ایک VPN سے بھی منسلک ہیں، جو آپ کے نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"آپ کے آلہ کا نظم کیا جاتا ہے بذریعہ <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>۔\nآپ کے دفتری پروفائل کا نظم کیا جاتا ہے بذریعہ:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>۔\n\nآپ کا منتظم ای میلز، ایپس اور محفوظ ویب سائٹس سیمت آپ کے آلہ اور نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے۔\n\nمزید معلومات کیلئے، اپنے منتظم سے رابطہ کریں۔\n\nآپ ایک VPN سے بھی منسلک ہیں، جو آپ کے نجی نیٹ ورک کی سرگرمی مانیٹر کر سکتا ہے"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"آلہ اس وقت تک مقفل رہے گا جب تک آپ دستی طور پر اسے غیر مقفل نہ کریں"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"تیزی سے اطلاعات حاصل کریں"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"غیر مقفل کرنے سے پہلے انہیں دیکھیں"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"سبھی دیکھیں"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"سبھی چھپائیں"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>۔ <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"ابھی ختم کریں"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"پھیلائیں"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"سکیڑیں"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"اسکرین پن کردہ ہے"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"یہ اس کو اس وقت تک منظر میں رکھتا ہے جب تک آپ اس سے پن نہیں ہٹا دیتے۔ پن ہٹانے کیلئے واپس اور عمومی جائزہ کو ایک ساتھ ٹچ کریں اور پکڑ کر رکھیں۔"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"یہ اس کو اس وقت تک منظر میں رکھتا ہے جب تک آپ اس سے پن نہیں ہٹا دیتے۔ پن ہٹانے کیلئے عمومی جائزہ کو ٹچ کریں اور پکڑ کر رکھیں۔"</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"مسترد کریں"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> والیوم ڈائلاگ ہے"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"اصل کو بحال کرنے کیلئے ٹچ کریں۔"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"آپ اپنا دفتری پروفائل استعمال کر رہے ہیں۔"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"سسٹم UI ٹیونر"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"سرایت کردہ بیٹری کی فیصد دکھائیں"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"جب چارج نہ ہو رہا ہو تو بیٹری کی سطح کی فیصد اسٹیٹس بار آئیکن کے اندر دکھائیں"</string> - <string name="quick_settings" msgid="10042998191725428">"فوری ترتیبات"</string> - <string name="status_bar" msgid="4877645476959324760">"اسٹیٹس بار"</string> - <string name="demo_mode" msgid="2389163018533514619">"ڈیمو موڈ"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"ڈیمو موڈ فعال کریں"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"ڈیمو موڈ دکھائیں"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"ایتھرنیٹ"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"الارم"</string> - <string name="status_bar_work" msgid="6022553324802866373">"دفتری پروفائل"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"ہوائی جہاز وضع"</string> - <string name="add_tile" msgid="2995389510240786221">"ٹائل شامل کریں"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"ٹائل براڈکاسٹ کریں"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"آپ <xliff:g id="WHEN">%1$s</xliff:g> بجے اپنا اگلا الارم نہیں سن پائیں گے اگر آپ اس وقت سے پہلے اس کو آف نہیں کر دیتے"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"آپ کو <xliff:g id="WHEN">%1$s</xliff:g> بجے اپنا اگلا الارم سنائی نہیں دے گا"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g> بجے"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g> بجے"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"فوری ترتیبات، <xliff:g id="TITLE">%s</xliff:g>۔"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"ہاٹ اسپاٹ"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"دفتری پروفائل"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"کچھ کیلئے دلچسپ لیکن سبھی کیلئے نہیں"</string> - <string name="tuner_warning" msgid="8730648121973575701">"سسٹم UI ٹیونر Android صارف انٹر فیس میں ردوبدل کرنے اور اسے حسب ضرورت بنانے کیلئے آپ کو اضافی طریقے دیتا ہے۔ یہ تجرباتی خصوصیات مستقبل کی ریلیزز میں تبدیل ہو سکتی، رک سکتی یا غائب ہو سکتی ہیں۔ احتیاط کے ساتھ آگے بڑھیں۔"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"یہ تجرباتی خصوصیات مستقبل کی ریلیزز میں تبدیل ہو سکتی، رک سکتی یا غائب ہو سکتی ہیں۔ احتیاط کے ساتھ آگے بڑھیں۔"</string> - <string name="got_it" msgid="2239653834387972602">"سمجھ آ گئی"</string> - <string name="tuner_toast" msgid="603429811084428439">"مبارک ہو! سسٹم UI ٹیونر کو ترتیبات میں شامل کر دیا گیا ہے"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"ترتیبات سے ہٹائیں"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"ترتیبات سے سسٹم UI ٹیونر کو ہٹائیں اور اس کی سبھی خصوصیات کا استعمال بند کریں؟"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"آپ دفتری پروفائل میں ہیں"</string> </resources> diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml index 8bc036ef026c..55a57dfa4993 100644 --- a/packages/SystemUI/res/values-uz-rUZ/strings.xml +++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml @@ -22,13 +22,13 @@ <string name="app_label" msgid="7164937344850004466">"UI tizimi"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Tozalash"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Ro‘yxatdan o‘chirish"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Ilova haqida"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Ilova xaqida"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Yaqinda ish-gan ilovalar bu yerda ko‘rinadi"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"So‘nggi dasturlarni tozalash"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"“Umumiy nazar” oynasida 1 ta ekran bor"</item> - <item quantity="other" msgid="5523506463832158203">"“Umumiy nazar” oynasida %d ta ekran bor"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">Umumiy ma’lumot bo‘limida %d ta ekran bor</item> + <item quantity="one">Umumiy ma’lumot bo‘limida 1 ta ekran bor</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Eslatmalar - yo‘q"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Joriy"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Eslatmalar"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"USB orqali nosozliklarni tuzatishga ruxsat berilsinmi?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Kompyuterning RSA tugmasi barmoq izlari:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Doimo ushbu kompyuterdan ruxsat berilsin"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"USB orqali nosozliklarni tuzatishga ruxsat berilmagan"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Ayni paytda ushbu qurilmaga o‘z hisobi bilan kirgan foydalanuvchi USB orqali nosozliklarni tuzatish funksiyasini yoqa olmaydi. Bu funksiyadan foydalanish uchun asosiy foydalanuvchi (“<xliff:g id="NAME">%s</xliff:g>”) profiliga o‘ting."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Ekranga moslashtirish"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Ekran hajmida cho‘zish"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Ekran surati saqlanmoqda…"</string> @@ -82,16 +80,12 @@ <string name="accessibility_home" msgid="8217216074895377641">"Uyga"</string> <string name="accessibility_menu" msgid="316839303324695949">"Menyu"</string> <string name="accessibility_recent" msgid="5208608566793607626">"Umumiy nazar"</string> - <string name="accessibility_search_light" msgid="1103867596330271848">"Qidirish"</string> + <string name="accessibility_search_light" msgid="1103867596330271848">"Izlash"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Kamera"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Telefon"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Ovozli yordam"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Qulfdan chiqarish"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Qulfdan chiqarish tugmasi, barmoq izi kutilmoqda"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Barmoq izisiz qulfdan chiqarish"</string> <string name="unlock_label" msgid="8779712358041029439">"qulfdan chiqarish"</string> <string name="phone_label" msgid="2320074140205331708">"telefonni ochish"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"ovozli yordamni yoqish"</string> <string name="camera_label" msgid="7261107956054836961">"kamerani ochish"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Yangi vazifa tartibini tanlash"</string> <string name="cancel" msgid="6442560571259935130">"Bekor qilish"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Ma’lumotlar ikkita panelda."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Ma’lumotlar uchta panelda."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Ma’lumot uzatish signali to‘liq."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Wifi o‘chirilgan."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wifi ulanmagan."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Bitta ustunli Wifi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Ikkita ustunli Wifi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Uchta ustunli Wifi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"To‘liq signalli Wifi."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Ulangan: <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Ulangan: <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"WiMAX tarmog‘i yo‘q."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Ikkita ustunli WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Uchta ustunli WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"To‘liq signalli WiMAX."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Qurilma Ethernet tarmog‘idan uzildi."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Qurilma Ethernet tarmog‘iga ulandi."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Signal yo‘q."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Ulanmagan."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Signal ustuni yo‘q."</string> @@ -130,8 +128,8 @@ <string name="accessibility_two_bars" msgid="6437363648385206679">"Ikkita ustun."</string> <string name="accessibility_three_bars" msgid="2648241415119396648">"Uchta ustun."</string> <string name="accessibility_signal_full" msgid="9122922886519676839">"Signal to‘liq."</string> - <string name="accessibility_desc_on" msgid="2385254693624345265">"Yoniq"</string> - <string name="accessibility_desc_off" msgid="6475508157786853157">"O‘chiq"</string> + <string name="accessibility_desc_on" msgid="2385254693624345265">"Yoqilgan."</string> + <string name="accessibility_desc_off" msgid="6475508157786853157">"O‘chirilgan."</string> <string name="accessibility_desc_connected" msgid="8366256693719499665">"Ulangan."</string> <string name="accessibility_desc_connecting" msgid="3812924520316280149">"Ulanmoqda…"</string> <string name="accessibility_data_connection_gprs" msgid="1606477224486747751">"GPRS"</string> @@ -145,10 +143,9 @@ <string name="accessibility_data_connection_roaming" msgid="5977362333466556094">"Rouming"</string> <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Edge"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> - <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM-karta yo‘q."</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth modem"</string> + <string name="accessibility_no_sim" msgid="8274017118472455155">"SIM karta yo‘q."</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Bluetooth bog‘landi."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Parvoz rejimi"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Hech qanday SIM-karta yo‘q."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Mobil tarmoqni o‘zgartirish"</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Batareya <xliff:g id="NUMBER">%d</xliff:g> foiz."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Tizim sozlamalari."</string> @@ -165,26 +162,25 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> olib tashlangan."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Yaqinda ishlatilgan barcha ilovalar olib tashlandi."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"<xliff:g id="APP">%s</xliff:g> ishga tushirilmoqda."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Xabarnoma e‘tiborsiz qoldirildi."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Xabarnoma soyasi."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Tezkor sozlamalar."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Qulflash ekrani."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Sozlamalar"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Umumiy nazar."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Yopish"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Tasdiqlash"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Foydalanuvchi <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Wi-Fi o‘chirildi."</string> <string name="accessibility_quick_settings_wifi_changed_on" msgid="6440117170789528622">"Wi-Fi yoqildi."</string> - <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Mobil tarmoq: <xliff:g id="NETWORK">%3$s</xliff:g> (<xliff:g id="TYPE">%2$s</xliff:g>, <xliff:g id="SIGNAL">%1$s</xliff:g>)"</string> + <string name="accessibility_quick_settings_mobile" msgid="4876806564086241341">"Uyali <xliff:g id="SIGNAL">%1$s</xliff:g>. <xliff:g id="TYPE">%2$s</xliff:g>. <xliff:g id="NETWORK">%3$s</xliff:g>."</string> <string name="accessibility_quick_settings_battery" msgid="1480931583381408972">"Batareya <xliff:g id="STATE">%s</xliff:g>."</string> <string name="accessibility_quick_settings_airplane_off" msgid="7786329360056634412">"Parvoz rejimi o‘chirilgan."</string> <string name="accessibility_quick_settings_airplane_on" msgid="6406141469157599296">"Parvoz rejimi yoqilgan."</string> <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Parvoz rejimi o‘chirildi."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Parvoz rejimi yoqildi."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"“Bezovta qilinmasin” funksiyasi yoqilgan, faqat muhim bildirishnomalar ko‘rsatiladi."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Bezovta qilinmasin, tinchlik saqlansin"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"“Bezovta qilinmasin” funksiyasi yoqilgan, bezovta qilinmaydi."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Bezovta qilinmasin, faqat signallar"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"“Bezovta qilinmasin” funksiyasi o‘chirilgan."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"“Bezovta qilinmasin” funksiyasi o‘chirildi."</string> @@ -199,7 +195,7 @@ <string name="accessibility_quick_settings_location_on" msgid="5809937096590102036">"Joylashuv ma’lumotini yuborish yoqilgan."</string> <string name="accessibility_quick_settings_location_changed_off" msgid="8526845571503387376">"Joylashuv ma’lumotini yuborish o‘chirildi."</string> <string name="accessibility_quick_settings_location_changed_on" msgid="339403053079338468">"Joylashuv ma’lumotini yuborish yoqildi."</string> - <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"Uyg‘otkich signali <xliff:g id="TIME">%s</xliff:g> da chalinadi."</string> + <string name="accessibility_quick_settings_alarm" msgid="3959908972897295660">"Signal <xliff:g id="TIME">%s</xliff:g> ga o‘rnatildi."</string> <string name="accessibility_quick_settings_close" msgid="3115847794692516306">"Panelni yopish."</string> <string name="accessibility_quick_settings_more_time" msgid="3659274935356197708">"Ko‘proq vaqt."</string> <string name="accessibility_quick_settings_less_time" msgid="2404728746293515623">"Kamroq vaqt."</string> @@ -234,12 +230,12 @@ <string name="accessibility_rotation_lock_on_landscape_changed" msgid="3135965553707519743">"Ekran yotiq holatda aylanmaydigan qilindi."</string> <string name="accessibility_rotation_lock_on_portrait_changed" msgid="8922481981834012126">"Ekran tik holatda aylanmaydigan qilindi."</string> <string name="dessert_case" msgid="1295161776223959221">"Dessert Case"</string> - <string name="start_dreams" msgid="7219575858348719790">"Ekran lavhasi"</string> + <string name="start_dreams" msgid="7219575858348719790">"Tush kurish"</string> <string name="ethernet_label" msgid="7967563676324087464">"Ethernet"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Bezovta qilinmasin"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Faqat muhimlari"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Faqat signallar"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Tinchlik saqlansin"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Tanaffuslarsiz"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g>ta qurilma)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Bluetooth o‘chirilgan"</string> @@ -251,7 +247,7 @@ <string name="quick_settings_rotation_locked_landscape_label" msgid="8553157770061178719">"Eniga"</string> <string name="quick_settings_ime_label" msgid="7073463064369468429">"Kiritish usuli"</string> <string name="quick_settings_location_label" msgid="5011327048748762257">"Joylashuv"</string> - <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Joylashuv xizmati o‘chiq"</string> + <string name="quick_settings_location_off_label" msgid="7464544086507331459">"Joylashuv o‘chiq"</string> <string name="quick_settings_media_device_label" msgid="1302906836372603762">"Media qurilma"</string> <string name="quick_settings_rssi_label" msgid="7725671335550695589">"RSSI"</string> <string name="quick_settings_rssi_emergency_only" msgid="2713774041672886750">"Faqat favqulodda qo‘ng‘iroqlar"</string> @@ -264,8 +260,8 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Ulanmagan"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Tarmoq mavjud emas"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi o‘chirilgan"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Hech qanday Wi-Fi tarmog‘i mavjud emas"</string> - <string name="quick_settings_cast_title" msgid="7709016546426454729">"Wi-Fi monitor"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Saqlangan tarmoqlar mavjud emas"</string> + <string name="quick_settings_cast_title" msgid="7709016546426454729">"Translatsiya"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Translatsiya qilinmoqda"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Nomsiz qurilma"</string> <string name="quick_settings_cast_device_default_description" msgid="2484573682378634413">"Tarqatish uchun tayyor"</string> @@ -287,11 +283,11 @@ <string name="quick_settings_cellular_detail_remaining_data" msgid="722715415543541249">"Qolayotgan ma\'lumot"</string> <string name="quick_settings_cellular_detail_over_limit" msgid="967669665390990427">"Limitdan oshgan"</string> <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> foydalanilgan"</string> - <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Cheklov: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> + <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> chegarasi"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Ogohlantirish: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Siz yaqinda ishlatgan ilova ekranlari bu yerda ko‘rinadi"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Ilova haqida ma’lumot"</string> - <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"o‘zgarmas ekran"</string> + <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ekranni qadab qo‘yish"</string> <string name="recents_search_bar_label" msgid="8074997400187836677">"qidirish"</string> <string name="recents_launch_error_message" msgid="2969287838120550506">"“<xliff:g id="APP">%s</xliff:g>” ilovasini ishga tushirib bo‘lmadi."</string> <string name="recents_dismiss_all_message" msgid="8495275386693095768">"Barcha ilovalarni olib tashlash"</string> @@ -303,31 +299,34 @@ <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g>da to‘ladi"</string> <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"Quvvat olmayapti"</string> <string name="ssl_ca_cert_warning" msgid="9005954106902053641">"Tarmoq nazorat\nostida bo‘lishi mumkin"</string> - <string name="description_target_search" msgid="3091587249776033139">"Qidirish"</string> + <string name="description_target_search" msgid="3091587249776033139">"Izlash"</string> <string name="description_direction_up" msgid="7169032478259485180">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun yuqoriga suring."</string> <string name="description_direction_left" msgid="7207478719805562165">"<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g> uchun chapga suring."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Turli ovoz va tebranishlar endi sizni bezovta qilmaydi. Biroq uyg‘otkich signallari, eslatmalar, tadbirlar haqidagi bildirishnomalar va siz tanlagan abonentlardan kelgan qo‘ng‘iroqlar bundan mustasno."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Hech narsa bezovta qilmaydi, hatto uyg‘otkichlar ham."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Turli ovoz va tebranishlar endi sizni bezovta qilmaydi. Biroq, uyg‘otkich signallari, eslatmalar, tadbirlar haqidagi bildirishnomalar va siz tanlagan abonentlardan kelgan qo‘ng‘iroqlar bundan mustasno."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Sozlash"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Bu BARCHA, jumladan signallar, musiqa, videolar va o‘yinlardan keladigan tovush va tebranishlarni to‘sib qo‘yadi. Siz telefon qo‘ng‘iroqlarini bemalol amalga oshirishingiz mumkin."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Bu BARCHA, jumladan, signallar, musiqa, videolar va o‘yinlardan keladigan tovush va tebranishlarni to‘sib qo‘yadi."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Tanaffuslarsiz"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Faqat ustuvor tanaffuslar"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Faqat signallar"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Keyingi uyg‘otkich: <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Keyingi uyg‘otkich: <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Keyingi uyg‘otkich: <xliff:g id="ALARM_TIME">%s</xliff:g>. Ovoz eshitilmaydi."</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Kam ahamiyatli bildirishnomalarni pastda ko‘rsatish"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Ochish uchun yana bosing"</string> - <string name="keyguard_unlock" msgid="8043466894212841998">"Qulfdan chiqarish uchun tepaga suring"</string> - <string name="phone_hint" msgid="4872890986869209950">"Telefonni ochish uchun suring"</string> - <string name="voice_hint" msgid="8939888732119726665">"Ovozli yordam: belgidan boshlab suring"</string> - <string name="camera_hint" msgid="7939688436797157483">"Kamerani ochish uchun suring"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Tinchlik saqlansin. Ekrandan o‘qish dasturlari ham ishlamaydi."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Tinchlik saqlansin"</string> + <string name="keyguard_unlock" msgid="8043466894212841998">"Qulfdan chiqarish uchun yuqoriga suring"</string> + <string name="phone_hint" msgid="3101468054914424646">"Telefonni ochish uchun o‘ngga"</string> + <string name="camera_hint" msgid="5241441720959174226">"Kamerani ochish uchun chapga suring"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Bezovta qilinishlarsiz"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Faqat muhimlari"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Faqat signallar"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Tinchlik\nsaqlansin"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Barchasi"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Uzilishlar\nbo‘lmasin"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Faqat\nmuhimlar"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Faqat\nsignallar"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Quvvat olmoqda (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>da to‘ladi)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Foydalanuvchini almashtirish"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Foydalanuvchini o‘zgartirish. Joriy foydalanuvchi – <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Joriy foydalanuvchi <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Profilni ko‘rsatish"</string> <string name="user_add_user" msgid="5110251524486079492">"Foydalanuvchi qo‘shish"</string> <string name="user_new_user_name" msgid="426540612051178753">"Yangi foydalanuvchi"</string> @@ -342,11 +341,11 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Boshidan boshlansin"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Ha, davom ettirilsin"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Mehmon foydalanuvchi"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Ilova va ma’l-ni o‘chirish u-n mehmon hisobini o‘chiring"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Ilova va ma’lumotlarni o‘ch. u-n mehmon hisobini o‘chiring"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"MEHMON HISOBINI O‘CHIRISH"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Yangi foyd-chi qo‘shilsinmi?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Yangi foydalanuvchi qo‘shilgach, o‘sha shaxs o‘z hududini sozlashi lozim bo‘ladi.\n\nHar qanday foydalanuvchi ilovalarni barcha foydalanuvchilar uchun yangilashi mumkin."</string> - <string name="battery_saver_notification_title" msgid="237918726750955859">"Quvvat tejash rejimi yoqildi"</string> + <string name="battery_saver_notification_title" msgid="237918726750955859">"Quvvat tejash yoqilgan"</string> <string name="battery_saver_notification_text" msgid="820318788126672692">"Unumdorlikni pasaytiradi va fonda int-dan foyd-ni cheklaydi"</string> <string name="battery_saver_notification_action_text" msgid="109158658238110382">"Quvvat tejash funksiyasini o‘chiring"</string> <string name="notification_hidden_text" msgid="1135169301897151909">"Kontent yashirildi"</string> @@ -363,16 +362,25 @@ <string name="monitoring_title" msgid="169206259253048106">"Tarmoqlarni kuzatish"</string> <string name="disable_vpn" msgid="4435534311510272506">"VPN tarmog‘ini o‘chirish"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"VPN ulanishini uzish"</string> - <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Qurilmangiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministrator sozlamalar, korporativ kirish huquqi, ilovalar, qurilmangizdagi ma’lumotlar, jumladan, joylashuv ma’lumotlari hamda unga bog‘liq boshqa ma’lumotlarni boshqarishi mumkin. Ko‘proq ma’lumot olish uchun administrator bilan bog‘laning."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Siz ilovaga VPN tarmog‘iga ulanishga ruxsat bergansiz.\n\nUshbu ilova qurilmangiz va internetdagi harakatlaringizni, jumladan, e-pochta, ilovalar va veb-saytlardagi xatti-harakatlaringizni kuzatishi mumkin."</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Qurilmangiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministrator sozlamalar, korporativ kirish huquqi, ilovalar, qurilmangizdagi ma’lumotlar, jumladan, joylashuv ma’lumotlarini boshqarishi mumkin.\n\nShuningdek, siz Internetdagi harakatlaringizni, jumladan, e-pochta, ilova va veb-saytlar bilan ishlashingizni kuzata oladigan VPN tarmog‘iga ham ulangansiz.\n\nKo‘proq ma’lumot olish uchun administrator bilan bog‘laning."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Sizning ishchi profilingiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministrator internetdagi harakatlaringizni, jumladan, e-pochta, ilova va xavfsiz veb-saytlar bilan ishlashingizni kuzatishi mumkin.\n\nBatafsil ma’lumot olish uchun administrator bilan bog‘laning.\n\nShuningdek, siz VPN tarmog‘iga ham ulangansiz. U internetdagi harakatlaringizni kuzatishi mumkin."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"<xliff:g id="APPLICATION">%1$s</xliff:g> ilovasi ishga tushirilgan. U internetdagi harakatlaringiz, jumladan, e-pochta, ilova va veb-saytlardagi xatti-harakatlaringizni kuzatishi mumkin."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"<xliff:g id="APPLICATION">%1$s</xliff:g> ilovasi ishga tushirilgan. U internetdagi harakatlaringiz, jumladan, e-pochta, ilova va veb-saytlardagi xatti-harakatlaringizni kuzatishi mumkin."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Sizning ishchi profilingiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi. <xliff:g id="APPLICATION">%2$s</xliff:g> ilovasi ish tarmog‘idagi harakatlaringizni, jumladan, e-pochta, ilova va veb-saytlardagi xatti-harakatlaringizni kuzatishi mumkin.\n\nBatafsil ma’lumot olish uchun administrator bilan bog‘laning."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Sizning ishchi profilingiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi. <xliff:g id="APPLICATION_WORK">%2$s</xliff:g> ilovasi ish tarmog‘idagi harakatlaringizni, jumladan, e-pochta, ilova va veb-saytlardagi xatti-harakatlaringizni kuzatishi mumkin.\n\nShuningdek, <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g> ilovasi ham shaxsiy tarmoqdagi harakatlaringizni kuzatishi mumkin."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Qurilmangiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministrator sozlamalar, korporativ kirish huquqi, ilovalar, qurilmangizdagi ma’lumotlar, jumladan, joylashuv ma’lumotlarini boshqarishi mumkin.\n\nShuningdek, siz <xliff:g id="APPLICATION">%2$s</xliff:g> ilovasiga ham ulangansiz. Ushbu ilova internetdagi harakatlaringizni, jumladan, e-pochta, ilovalar va veb-saytlar bilan ishlashingizni kuzata oladi.\n\nBatafsil ma’lumot olish uchun administrator bilan bog‘laning."</string> + <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Qurilmangiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministratoringiz sozlamalar, korporativ ruxsat, ilovalar, qurilmangiz va qurilmangizning joylashuv ma’lumoti bilan bog‘liq ma’lumotlarni kuzata oladi va boshqara oladi. Ko‘proq ma’lumot olish uchun administrator bilan bog‘laning."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Sizning ish profilingiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministratoringiz tarmoqdagi faoliyatingizni, jumladan, e-pochtalar, ilovalar va xavfsiz veb-saytlaringizni kuzata oladi.\n\nKo‘proq ma’lumot olish uchun administrator bilan bog‘laning."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Qurilmangiz \n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g> tomonidan boshqariladi.\nIsh profilingiz \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g> tomonidan boshqariladi.\n\nAdministratoringiz qurilmangiz va tarmoqdagi faoliyatingiz, jumladan, e-pochta, ilova va xavfsiz veb-saytlaringizni kuzata oladi.\n\nKo‘proq ma’lumot olish uchun administrator bilan bog‘laning."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Siz ilovaga VPN ulanishini o‘rnatishga ruxsat bergansiz.\n\nUshbu ilova qurilmangiz va tarmoqdagi faoliyatingizni, jumladan, e-pochta, ilovalar va xavfsiz veb-saytlar bilan ishlashingizni kuzata oladi."</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Qurilmangiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministratoringiz sozlamalar, korporativ ruxsat, ilovalar, qurilmangiz va qurilmangizning joylashuv ma’lumoti bilan bog‘liq ma’lumotlarni kuzata oladi va boshqara oladi.\n\nShuningdek, siz tarmoqdagi faoliyatingizni, jumladan, e-pochtal, ilova va veb-saytlaringizni kuzata oladigan VPN tarmog‘iga ham ulangansiz.\n\nKo‘proq ma’lumot olish uchun administrator bilan bog‘laning."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Sizning ish profilingiz <xliff:g id="ORGANIZATION">%1$s</xliff:g> tomonidan boshqariladi.\n\nAdministratoringiz tarmoqdagi faoliyatingizni, jumladan, e-pochta, ilova va xavfsiz veb-saytlar bilan ishlashingizni kuzata oladi.\n\nKo‘proq ma’lumot olish uchun administrator bilan bog‘laning.\n\nShuningdek, siz tarmoqdagi faoliyatingizni kuzata oladigan VPN tarmog‘iga ham ulangansiz."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Qurilmangiz <xliff:g id="ORGANIZATION_0">%1$s</xliff:g> tomonidan boshqariladi.\nIsh profilingiz \n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g> tomonidan boshqariladi.\n\nAdministratoringiz tarmoqdagi faoliyatingizni, jumladan, e-pochta, ilova va xavfsiz veb-saytlaringizni kuzata oladi.\n\nKo‘proq ma’lumot olish uchun administrator bilan bog‘laning.\n\nShuningdek, siz shaxsiy tarmoqdagi faoliyatingizni kuzata oladigan VPN tarmog‘iga ham ulangansiz."</string> + <!-- no translation found for legacy_vpn_name (6604123105765737830) --> + <skip /> + <!-- no translation found for monitoring_description_app (6947928635272782570) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal (8506133233655324426) --> + <skip /> + <!-- no translation found for monitoring_description_app_work (808687576155832307) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal_work (7711690793960304868) --> + <skip /> + <!-- no translation found for monitoring_description_vpn_app_device_owned (4970443827043261703) --> + <skip /> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Qurilma qo‘lda qulfdan chiqarilmaguncha qulflangan holatda qoladi"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Bildirishnomalarni tezroq oling"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Ularni qulfdan chiqarishdan oldin ko‘ring"</string> @@ -381,9 +389,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Barchasini ko‘rsatish"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Barchasini yashirish"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Tugatish"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Yoyish"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Yig‘ish"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Ekran qadaldi"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Ekran yechilmaguncha u qadalgan holatda qoladi. Uni yechish uchun “Orqaga” va “Umumiy nazar” tugmalarini bir vaqtda bosing va ushlab turing."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Ekran yechilmaguncha u qadalgan holatda qoladi. Uni yechish uchun “Umumiy nazar” tugmasini bosing va ushlab turing."</string> @@ -397,33 +402,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rad etish"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> ovoz balandligini boshqaradi"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Aslini tiklash uchun bosing."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Siz ishchi profildan foydalanmoqdasiz"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"SystemUI Tuner"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Batareya foizi ko‘rsatilsin"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Batareya quvvat olmayotgan vaqtda uning foizi holat qatorida ko‘rsatilsin"</string> - <string name="quick_settings" msgid="10042998191725428">"Tezkor sozlamalar"</string> - <string name="status_bar" msgid="4877645476959324760">"Holat qatori"</string> - <string name="demo_mode" msgid="2389163018533514619">"Demo rejim"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Demo rejimni yoqish"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Demo rejimni ko‘rsatish"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Signal"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Ishchi profil"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Parvoz rejimi"</string> - <string name="add_tile" msgid="2995389510240786221">"Tezkor sozlamalar tugmasini qo‘shish"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Translatsiya tugmasi"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Agar uni o‘chirib qo‘ymasangiz, keyingi signal (<xliff:g id="WHEN">%1$s</xliff:g>) chalinmaydi"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Keyingi signal (<xliff:g id="WHEN">%1$s</xliff:g>) chalinmaydi"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Tezkor sozlamalar, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Ulanish nuqtasi"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Ishchi profil"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Diqqat!"</string> - <string name="tuner_warning" msgid="8730648121973575701">"System UI Tuner yordamida siz Android foydalanuvchi interfeysini tuzatish va o‘zingizga moslashtirishingiz mumkin. Ushbu tajribaviy funksiyalar o‘zgarishi, buzilishi yoki keyingi versiyalarda olib tashlanishi mumkin. Ehtiyot bo‘lib davom eting."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Ushbu tajribaviy funksiyalar o‘zgarishi, buzilishi yoki keyingi versiyalarda olib tashlanishi mumkin. Ehtiyot bo‘lib davom eting."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Tabriklaymiz! System UI Tuner Sozlamalarga qo‘shildi."</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Sozlamalardan olib tashlash"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"System UI Tuner Sozlamalardan olib tashlanib, uning barcha funksiyalaridan foydalanish to‘xtatilsinmi?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Siz Android for Work profiliga kirgansiz"</string> </resources> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 00c111f5fb4a..aeac0523e428 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -22,13 +22,13 @@ <string name="app_label" msgid="7164937344850004466">"Giao diện người dùng hệ thống"</string> <string name="status_bar_clear_all_button" msgid="7774721344716731603">"Xóa"</string> <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"Xóa khỏi danh sách"</string> - <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Thông tin ứng dụng"</string> + <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Thông tin về ứng dụng"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Màn hình gần đây của bạn sẽ xuất hiện tại đây"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Loại bỏ các ứng dụng gần đây"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 màn hình trong Tổng quan"</item> - <item quantity="other" msgid="5523506463832158203">"%d màn hình trong Tổng quan"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">%d màn hình trong Tổng quan</item> + <item quantity="one">1 màn hình trong Tổng quan</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Không có thông báo nào"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Đang diễn ra"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Thông báo"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Cho phép gỡ lỗi USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Tệp tham chiếu khóa RSA của máy tính là:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Luôn cho phép từ máy tính này"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Tính năng gỡ lỗi USB không được phép"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Người dùng hiện đã đăng nhập vào thiết bị này không thể bật tính năng gỡ lỗi USB. Để sử dụng tính năng này, hãy chuyển sang người dùng chính “<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"T.phóng để lấp đầy m.hình"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Giãn ra để lấp đầy m.hình"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Đang lưu ảnh chụp màn hình..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Tìm kiếm"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Máy ảnh"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Điện thoại"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Trợ lý thoại"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Mở khóa"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Nút Mở khóa, đang chờ vân tay"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Mở khóa không dùng vân tay của bạn"</string> <string name="unlock_label" msgid="8779712358041029439">"mở khóa"</string> <string name="phone_label" msgid="2320074140205331708">"mở điện thoại"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"mở trợ lý thoại"</string> <string name="camera_label" msgid="7261107956054836961">"mở máy ảnh"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Chọn bố cục tác vụ mới"</string> <string name="cancel" msgid="6442560571259935130">"Hủy"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Tín hiệu dữ liệu hai vạch."</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Tín hiệu dữ liệu ba vạch."</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Tín hiệu dữ liệu đầy đủ."</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"Đã tắt Wi-Fi."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Đã ngắt kết nối Wi-Fi."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Tín hiệu Wi-Fi một vạch."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Tín hiệu Wi-Fi hai vạch."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Tín hiệu Wi-Fi ba vạch."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Tín hiệu Wi-Fi đầy đủ."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Đã kết nối với <xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Đã kết nối với <xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Không có WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX hai vạch."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX ba vạch."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Tín hiệu WiMAX đầy đủ."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"Đã ngắt kết nối Ethernet."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"Đã kết nối Ethernet."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Không có tín hiệu nào."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Chưa được kết nối."</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"0 vạch."</string> @@ -146,9 +144,8 @@ <string name="accessibility_data_connection_edge" msgid="4477457051631979278">"Cạnh"</string> <string name="accessibility_data_connection_wifi" msgid="2324496756590645221">"Wi-Fi"</string> <string name="accessibility_no_sim" msgid="8274017118472455155">"Không có SIM nào."</string> - <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Truy cập Internet qua Bluetooth."</string> + <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Dùng làm điểm truy cập Internet qua Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Chế độ trên máy bay."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Không có thẻ SIM nào."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Thay đổi mạng của nhà cung cấp dịch vụ."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"<xliff:g id="NUMBER">%d</xliff:g> phần trăm pin."</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Cài đặt hệ thống"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> đã bị loại bỏ."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Đã bỏ qua tất cả các ứng dụng gần đây."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Bắt đầu <xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Đã loại bỏ thông báo."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Bóng thông báo."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Cài đặt nhanh."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Màn hình khóa."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Cài đặt"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Tổng quan."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Đóng"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Xác nhận"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Người dùng <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"Đã tắt Wifi."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Đã tắt chế độ trên máy bay."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Đã bật chế độ trên máy bay."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Bật tính năng không làm phiền, chỉ ưu tiên."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Bật tính năng không làm phiền, hoàn toàn tắt tiếng."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Bật tính năng không làm phiền, không có gián đoạn."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Bật tính năng không làm phiền, chỉ báo thức."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Tắt tính năng không làm phiền."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Đã tắt tính năng không làm phiền."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Không làm phiền"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Chỉ ưu tiên"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Chỉ báo thức"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Hoàn toàn tắt tiếng"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Không có gián đoạn nào"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> thiết bị)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"Đã tắt Bluetooth"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Chưa được kết nối"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Không có mạng nào"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Tắt Wi-Fi"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Không có mạng Wi-Fi"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Không có mạng nào được lưu"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Truyền"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Đang truyền"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Thiết bị không có tên"</string> @@ -298,7 +294,7 @@ <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"Phân tách ngang"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"Phân tách dọc"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"Tùy chỉnh phân tách"</string> - <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Đã sạc đầy"</string> + <string name="expanded_header_battery_charged" msgid="5945855970267657951">"Đã sạc"</string> <string name="expanded_header_battery_charging" msgid="205623198487189724">"Đang sạc"</string> <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"<xliff:g id="CHARGING_TIME">%s</xliff:g> cho đến khi đầy"</string> <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"Hiện không sạc"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Tìm kiếm"</string> <string name="description_direction_up" msgid="7169032478259485180">"Trượt lên để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Trượt sang trái để <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Bạn sẽ không bị làm phiền bởi âm thanh và tiếng rung, ngoại trừ báo thức, nhắc nhở, sự kiện và người gọi mà bạn chỉ định."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Không có gián đoạn. Thậm chí không có cảnh báo."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Bạn sẽ không bị làm phiền bởi âm thanh và rung, ngoại trừ báo thức, nhắc nhở, sự kiện và người gọi mà bạn chỉ định."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Tùy chỉnh"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Chế độ này sẽ chặn TẤT CẢ âm thanh và tiếng rung, bao gồm báo thức, âm nhạc, video và trò chơi. Bạn vẫn có thể gọi điện thoại."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Chế độ này sẽ chặn TẤT CẢ âm thanh và tiếng rung, bao gồm báo thức, âm nhạc, video và trò chơi."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Không có gián đoạn nào"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Chỉ các gián đoạn ưu tiên"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Chỉ báo thức"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"Lần báo thức tiếp theo của bạn vào lúc <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"Lần báo thức tiếp theo của bạn là <xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Bạn sẽ không nghe thấy báo thức lúc <xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Thông báo ít khẩn cấp hơn bên dưới"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Chạm lại để mở"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Vuốt lên để mở khóa"</string> - <string name="phone_hint" msgid="4872890986869209950">"Vuốt từ biểu tượng để mở điện thoại"</string> - <string name="voice_hint" msgid="8939888732119726665">"Vuốt từ biểu tượng để mở trợ lý thoại"</string> - <string name="camera_hint" msgid="7939688436797157483">"Vuốt từ biểu tượng để mở máy ảnh"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Tắt tiếng hoàn toàn. Cài đặt này cũng sẽ tắt tiếng trình đọc màn hình."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Hoàn toàn tắt tiếng"</string> + <string name="phone_hint" msgid="3101468054914424646">"Vuốt sang phải để mở điện thoại"</string> + <string name="camera_hint" msgid="5241441720959174226">"Vuốt sang trái để mở máy ảnh"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Không có gián đoạn nào"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Chỉ ưu tiên"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Chỉ báo thức"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Hoàn toàn\ntắt tiếng"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Tất cả"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Không có\ngián đoạn"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Chỉ\nưu tiên"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Chỉ\nbáo thức"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Đang sạc (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> cho đến khi đầy)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Chuyển đổi người dùng"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Chuyển người dùng, người dùng hiện tại <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Người dùng hiện tại <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Hiển thị hồ sơ"</string> <string name="user_add_user" msgid="5110251524486079492">"Thêm người dùng"</string> <string name="user_new_user_name" msgid="426540612051178753">"Người dùng mới"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Bắt đầu lại"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Có, tiếp tục"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Người dùng khách"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Để xóa ứng dụng và dữ liệu, hãy xóa người dùng khách"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Xóa khách để xóa ứng dụng và dữ liệu"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"XÓA KHÁCH"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Thêm người dùng mới?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Khi bạn thêm người dùng mới, người dùng đó cần thiết lập dung lượng lưu trữ của mình.\n\nMọi người dùng đều có thể cập nhật ứng dụng cho tất cả người dùng khác."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Tắt VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Ngắt kết nối VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Thiết bị của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát và quản lý cài đặt, quyền truy cập của công ty, ứng dụng và dữ liệu được liên kết với thiết bị của bạn và thông tin về vị trí của thiết bị. Để biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Bạn đã cấp cho ứng dụng quyền thiết lập kết nối VPN.\n\nỨng dụng này có thể giám sát hoạt động mạng và thiết bị của bạn, bao gồm email, ứng dụng và trang web."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Hồ sơ công việc của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát hoạt động mạng của bạn bao gồm email, ứng dụng và các trang web an toàn.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Thiết bị của bạn được quản lý bởi:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nHồ sơ công việc của bạn được quản lý bởi:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát hoạt động mạng và thiết bị của bạn, bao gồm email, ứng dụng và các trang web an toàn.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Bạn đã cấp cho ứng dụng quyền thiết lập kết nối VPN.\n\nỨng dụng này có thể giám sát hoạt động mạng và thiết bị của bạn, bao gồm email, ứng dụng và các trang web an toàn."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Thiết bị của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát và quản lý cài đặt, quyền truy cập của công ty, ứng dụng, dữ liệu được liên kết với thiết bị của bạn và thông tin về vị trí của thiết bị.\n\nBạn được kết nối với VPN, mạng này có thể giám sát hoạt động mạng của bạn, bao gồm email, ứng dụng và trang web.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Hồ sơ Android Work của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nQuản trị viên có thể giám sát hoạt động mạng của bạn bao gồm email, ứng dụng và trang web.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn.\n\nBạn cũng được kết nối với VPN, có thể giám sát hoạt động mạng của bạn."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Bạn đang kết nối với <xliff:g id="APPLICATION">%1$s</xliff:g>. Ứng dụng này có thể giám sát hoạt động mạng của bạn bao gồm email, ứng dụng và trang web."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Bạn đang kết nối với <xliff:g id="APPLICATION">%1$s</xliff:g>. Ứng dụng này có thể giám sát hoạt động mạng cá nhân của bạn bao gồm email, ứng dụng và trang web."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Hồ sơ công việc của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Hồ sơ được kết nối với <xliff:g id="APPLICATION">%2$s</xliff:g>, ứng dụng này có thể giám sát hoạt động mạng cơ quan của bạn, bao gồm email, ứng dụng và trang web.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Hồ sơ công việc của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>. Hồ sơ được kết nối với <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, ứng dụng này có thể giám sát hoạt động mạng cơ quan của bạn, bao gồm email, ứng dụng và trang web.\n\nBạn cũng được kết nối với <xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, có thể giám sát hoạt động mạng cá nhân của bạn."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Thiết bị của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nQuản trị viên có thể giám sát và quản lý cài đặt, quyền truy cập của công ty, ứng dụng, dữ liệu được liên kết với thiết bị của bạn và thông tin về vị trí của thiết bị.\n\nBạn được kết nối với <xliff:g id="APPLICATION">%2$s</xliff:g>. Ứng dụng này có thể giám sát hoạt động mạng của bạn, bao gồm email, ứng dụng và trang web.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Hồ sơ công việc của bạn được quản lý bởi <xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát hoạt động mạng của bạn bao gồm email, ứng dụng và các trang web an toàn.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn.\n\nBạn cũng được kết nối với VPN, mạng này có thể giám sát hoạt động mạng của bạn."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Thiết bị của bạn được quản lý bởi <xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nHồ sơ công việc của bạn được quản lý bởi:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nQuản trị viên của bạn có thể giám sát hoạt động mạng của bạn bao gồm email, ứng dụng và các trang web an toàn.\n\nĐể biết thêm thông tin, hãy liên hệ với quản trị viên của bạn.\n\nBạn cũng được kết nối với VPN, mạng này có thể giám sát hoạt động mạng cá nhân của bạn"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Thiết bị sẽ vẫn bị khóa cho tới khi bạn mở khóa theo cách thủ công"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Nhận thông báo nhanh hơn"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Xem thông báo trước khi bạn mở khóa"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Xem tất cả"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Ẩn tất cả"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Kết thúc bây giờ"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Mở rộng"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Thu gọn"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Màn hình được ghim"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Thao tác này sẽ duy trì hiển thị màn hình cho đến khi bạn bỏ ghim. Chạm và giữ nút Quay lại và Tổng quan cùng một lúc để bỏ ghim."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Thao tác này sẽ duy trì hiển thị màn hình cho đến khi bạn bỏ ghim. Chạm và giữ nút Quay lại để bỏ ghim."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Từ chối"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> là hộp thoại khối lượng"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Chạm để khôi phục bản gốc."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Bạn đang sử dụng hồ sơ công việc của mình"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Bộ điều hướng giao diện người dùng hệ thống"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Hiển thị tỷ lệ phần trăm pin được nhúng"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Hiển thị tỷ lệ phần trăm mức pin bên trong biểu tượng thanh trạng thái khi không sạc"</string> - <string name="quick_settings" msgid="10042998191725428">"Cài đặt nhanh"</string> - <string name="status_bar" msgid="4877645476959324760">"Thanh trạng thái"</string> - <string name="demo_mode" msgid="2389163018533514619">"Chế độ trình diễn"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Bật chế độ trình diễn"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Hiển thị chế độ trình diễn"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"Báo thức"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Hồ sơ công việc"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Chế độ trên máy bay"</string> - <string name="add_tile" msgid="2995389510240786221">"Thêm ô"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Ô chương trình phát"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Bạn sẽ không nghe thấy báo thức tiếp theo lúc <xliff:g id="WHEN">%1$s</xliff:g> của mình trừ khi bạn tắt chức năng này trước"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Bạn sẽ không nghe thấy báo thức tiếp theo lúc <xliff:g id="WHEN">%1$s</xliff:g> của mình"</string> - <string name="alarm_template" msgid="3980063409350522735">"lúc <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"vào <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Cài đặt nhanh, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"Điểm phát sóng"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Hồ sơ công việc"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Thú vị đối với một số người nhưng không phải tất cả"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Bộ điều hướng giao diện người dùng hệ thống cung cấp thêm cho bạn những cách chỉnh sửa và tùy chỉnh giao diện người dùng Android. Những tính năng thử nghiệm này có thể thay đổi, hỏng hoặc biến mất trong các phiên bản tương lai. Hãy thận trọng khi tiếp tục."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Những tính năng thử nghiệm này có thể thay đổi, hỏng hoặc biến mất trong các phiên bản tương lai. Hãy thận trọng khi tiếp tục."</string> - <string name="got_it" msgid="2239653834387972602">"OK"</string> - <string name="tuner_toast" msgid="603429811084428439">"Xin chúc mừng! Bộ điều hướng giao diện người dùng hệ thống đã được thêm vào Cài đặt"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Xóa khỏi Cài đặt"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Xóa Bộ điều hướng giao diện người dùng hệ thống khỏi Cài đặt và ngừng sử dụng tất cả tính năng của ứng dụng này?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Bạn đang trên hồ sơ công việc"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index d6b9152b33ad..b92816822e6d 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"应用信息"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"您最近浏览过的屏幕会显示在此处"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"关闭最近运行的应用"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"概览中有 1 个屏幕"</item> - <item quantity="other" msgid="5523506463832158203">"概览中有 %d 个屏幕"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">概览中有 %d 个屏幕</item> + <item quantity="one">概览中有 1 个屏幕</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"无通知"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"正在进行的"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"通知"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"允许USB调试吗?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"这台计算机的 RSA 密钥指纹如下:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"一律允许使用这台计算机进行调试"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"不允许使用 USB 调试功能"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"目前已登录此设备的用户无法开启 USB 调试功能。要使用此功能,请切换为主要用户“<xliff:g id="NAME">%s</xliff:g>”的帐户。"</string> <string name="compat_mode_on" msgid="6623839244840638213">"缩放以填满屏幕"</string> <string name="compat_mode_off" msgid="4434467572461327898">"拉伸以填满屏幕"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"正在保存屏幕截图..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"搜索"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"相机"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"电话"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"语音助理"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"解锁"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"解锁按钮,请用指纹解锁"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"不使用指纹解锁"</string> <string name="unlock_label" msgid="8779712358041029439">"解锁"</string> <string name="phone_label" msgid="2320074140205331708">"打开电话"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"打开语音助理"</string> <string name="camera_label" msgid="7261107956054836961">"打开相机"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"选择新的任务布局"</string> <string name="cancel" msgid="6442560571259935130">"取消"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"数据信号强度为两格。"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"数据信号强度为三格。"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"数据信号满格。"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"已关闭WLAN。"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"WLAN连接已断开。"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WLAN信号强度为一格。"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WLAN信号强度为两格。"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WLAN信号强度为三格。"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"WLAN信号满格。"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"已连接到<xliff:g id="WIFI">%s</xliff:g>。"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"已连接到<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"无 WiMAX 信号。"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 信号强度为两格。"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX 信号强度为三格。"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX 信号满格。"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"以太网已断开连接。"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"以太网已连接。"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"无信号。"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"未连接。"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"信号强度为零格。"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"无 SIM 卡。"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"蓝牙网络共享。"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"飞行模式。"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"没有 SIM 卡。"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"运营商网络正在更改。"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"已删除<xliff:g id="APP">%s</xliff:g>"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"已关闭所有最近用过的应用。"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"正在启动<xliff:g id="APP">%s</xliff:g>。"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"已关闭通知。"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知栏。"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快捷设置。"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"锁定屏幕。"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"设置"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"概览。"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"关闭"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"确认"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"用户:<xliff:g id="USER">%s</xliff:g>。"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>。"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"WLAN已关闭。"</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"飞行模式已关闭。"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"飞行模式已开启。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"勿扰模式已开启,仅限优先打扰。"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"勿扰模式已开启,完全静音。"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"勿扰模式已开启,禁止打扰。"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"勿扰模式已开启,仅限闹钟。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"勿扰模式关闭。"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"已关闭勿扰模式。"</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"勿扰"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"仅限优先打扰"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"仅限闹钟"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"完全阻止"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"禁止打扰"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"蓝牙"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"蓝牙(<xliff:g id="NUMBER">%d</xliff:g> 台设备)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"蓝牙:关闭"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"未连接"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"无网络"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"WLAN:关闭"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"没有 WLAN 网络"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"没有可用的已保存网络"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"投射"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"正在投射"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"未命名设备"</string> @@ -300,7 +296,7 @@ <string name="recents_multistack_add_stack_dialog_split_horizontal" msgid="8848514474543427332">"水平分割"</string> <string name="recents_multistack_add_stack_dialog_split_vertical" msgid="9075292233696180813">"垂直分割"</string> <string name="recents_multistack_add_stack_dialog_split_custom" msgid="4177837597513701943">"自定义分割"</string> - <string name="expanded_header_battery_charged" msgid="5945855970267657951">"已充满"</string> + <string name="expanded_header_battery_charged" msgid="5945855970267657951">"充电完成"</string> <string name="expanded_header_battery_charging" msgid="205623198487189724">"正在充电"</string> <string name="expanded_header_battery_charging_with_time" msgid="457559884275395376">"还需<xliff:g id="CHARGING_TIME">%s</xliff:g>充满"</string> <string name="expanded_header_battery_not_charging" msgid="4798147152367049732">"未在充电"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"搜索"</string> <string name="description_direction_up" msgid="7169032478259485180">"向上滑动以<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_left" msgid="7207478719805562165">"向左滑动以<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"您将不会受声音和振动的打扰,但闹钟、提醒、活动和您指定的来电者除外。"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"零打扰(甚至不发出闹钟提醒)。"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"您将不会受声音和振动的打扰,但闹钟、提醒、活动和您指定的来电者除外。"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"自定义"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"这会阻止所有声音和振动(包括闹钟、音乐、视频和游戏)打扰您。您仍然可以拨打电话。"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"这会阻止所有声音和振动(包括闹钟、音乐、视频和游戏)打扰您。"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"禁止打扰"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"仅限优先打扰内容"</string> + <string name="zen_alarms" msgid="5055668280767657759">"仅限闹钟"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"下次闹钟响铃时间:<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"下次闹钟响铃时间:<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"您在<xliff:g id="ALARM_TIME">%s</xliff:g>将不会听到闹钟响铃"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"不太紧急的通知会显示在下方"</string> <string name="notification_tap_again" msgid="8524949573675922138">"再次触摸即可打开"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"向上滑动即可解锁"</string> - <string name="phone_hint" msgid="4872890986869209950">"滑动图标即可拨打电话"</string> - <string name="voice_hint" msgid="8939888732119726665">"滑动图标即可打开语音助理"</string> - <string name="camera_hint" msgid="7939688436797157483">"滑动图标即可打开相机"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"完全静音。此模式也会将屏幕阅读器静音。"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"完全阻止"</string> + <string name="phone_hint" msgid="3101468054914424646">"向右滑动可打开拨号界面"</string> + <string name="camera_hint" msgid="5241441720959174226">"向左滑动可打开相机"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"勿扰"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"仅限优先打扰"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"仅限闹钟"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"完全\n静音"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"禁止\n打扰"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"仅限\n优先打扰"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"仅限\n闹钟"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"正在充电(还需<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>充满)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"切换用户"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"切换用户,当前用户为<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"当前用户为<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"显示个人资料"</string> <string name="user_add_user" msgid="5110251524486079492">"添加用户"</string> <string name="user_new_user_name" msgid="426540612051178753">"新用户"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"重新开始"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"是,继续"</string> <string name="guest_notification_title" msgid="1585278533840603063">"访客用户"</string> - <string name="guest_notification_text" msgid="335747957734796689">"要删除应用和数据,请退出访客用户身份"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"移除访客以便删除应用和数据"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"移除访客"</string> <string name="user_add_user_title" msgid="4553596395824132638">"要添加新用户吗?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"当您添加新用户时,该用户必须设置自己的空间。\n\n任何用户均可为其他所有用户更新应用。"</string> @@ -366,15 +365,24 @@ <string name="disable_vpn" msgid="4435534311510272506">"关闭VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"断开VPN连接"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"您的设备由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您单位的管理员可以监控和管理与此设备相关的设置、企业权限、应用、数据以及设备位置信息。若要了解详情,请与您单位的管理员联系。"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"您已授权应用设置 VPN 连接。\n\n该应用可以监控您的设备和网络活动,包括收发电子邮件、使用应用和浏览网站。"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"您的工作资料由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您单位的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览安全网站。\n\n若要了解详情,请与您单位的管理员联系。"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"您的设备由以下单位管理:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>。\n您的工作资料由以下单位管理:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>。\n\n您的管理员可以监控您的设备和网络活动,包括收发电子邮件、使用应用和浏览安全网站。\n\n若要了解详情,请与您的管理员联系。"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"您已授权应用设置 VPN 连接。\n\n此应用可以监控您的设备和网络活动,包括收发电子邮件、使用应用和浏览安全网站。"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"您的设备由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您单位的管理员可以监控和管理与此设备相关的设置、企业权限、应用、数据以及设备位置信息。\n\n您已连接到 VPN,此 VPN 也可以监控您的网络活动,包括收发电子邮件、使用应用和浏览网站。\n\n若要了解详情,请与您单位的管理员联系。"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"您的工作资料由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您单位的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览网站。\n\n若要了解详情,请与您单位的管理员联系。\n\n此外,您还连接到了 VPN,此 VPN 也可以监控您的网络活动。"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"您已连接到<xliff:g id="APPLICATION">%1$s</xliff:g>,该应用可以监控您的网络活动,包括收发电子邮件、使用应用和浏览网站。"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"您已连接到<xliff:g id="APPLICATION">%1$s</xliff:g>,该应用可以监控您的个人网络活动,包括收发电子邮件、使用应用和浏览网站。"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"您的工作资料由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。您已连接到<xliff:g id="APPLICATION">%2$s</xliff:g>,该应用可以监控您的工作网络活动,包括收发电子邮件、使用应用和浏览网站。\n\n若要了解详情,请与您单位的管理员联系。"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"您的工作资料由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。您已连接到<xliff:g id="APPLICATION_WORK">%2$s</xliff:g>,该应用可以监控您的工作网络活动,包括收发电子邮件、使用应用和浏览网站。\n\n此外,您还连接到了<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>,该应用可以监控您的个人网络活动。"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"您的设备由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您单位的管理员可以监控和管理与此设备相关的设置、企业权限、应用、数据以及设备位置信息。\n\n您已连接到<xliff:g id="APPLICATION">%2$s</xliff:g>,该应用可以监控您的网络活动,包括收发电子邮件、使用应用和浏览网站。\n\n若要了解详情,请与您单位的管理员联系。"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"您的工作资料由以下单位管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您单位的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览安全网站。\n\n若要了解详情,请与您单位的管理员联系。\n\n此外,您已连接到 VPN,此 VPN 也可以监控您的网络活动。"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"您的设备由以下单位管理:<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>。\n您的工作资料由以下设备管理:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>。\n\n您单位的管理员可以监控您的网络活动,包括收发电子邮件、使用应用和浏览安全网站。\n\n若要了解详情,请与您单位的管理员联系。\n\n此外,您已连接到 VPN,此 VPN 也可以监控您的个人网络活动"</string> + <!-- no translation found for legacy_vpn_name (6604123105765737830) --> + <skip /> + <!-- no translation found for monitoring_description_app (6947928635272782570) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal (8506133233655324426) --> + <skip /> + <!-- no translation found for monitoring_description_app_work (808687576155832307) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal_work (7711690793960304868) --> + <skip /> + <!-- no translation found for monitoring_description_vpn_app_device_owned (4970443827043261703) --> + <skip /> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"在您手动解锁之前,设备会保持锁定状态"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"更快捷地查看通知"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"无需解锁即可查看通知"</string> @@ -383,9 +391,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"查看全部"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"全部隐藏"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>(<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>)"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"立即结束"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"展开"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"收起"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"已固定屏幕"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"这将会固定显示此屏幕,直到您取消固定为止。触摸并同时按住“返回”和“概览”即可取消固定屏幕。"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"这将会固定显示此屏幕,直到您取消固定为止。触摸并按住“概览”即可取消固定屏幕。"</string> @@ -399,33 +404,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒绝"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"“<xliff:g id="APP_NAME">%1$s</xliff:g>”已用作音量控制对话框"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"触摸即可恢复原始设置。"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"您当前正在使用工作资料"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"系统界面调谐器"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"嵌入式显示电池电量百分比 显示嵌入的电池电量百分比"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"未充电时在状态栏图标内显示电池电量百分比"</string> - <string name="quick_settings" msgid="10042998191725428">"快速设置"</string> - <string name="status_bar" msgid="4877645476959324760">"状态栏"</string> - <string name="demo_mode" msgid="2389163018533514619">"演示模式"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"启用演示模式"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"显示演示模式"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"以太网"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"闹钟"</string> - <string name="status_bar_work" msgid="6022553324802866373">"工作资料"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"飞行模式"</string> - <string name="add_tile" msgid="2995389510240786221">"添加图块"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"播送图块"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"您在<xliff:g id="WHEN">%1$s</xliff:g>将不会听到下次闹钟响铃,除非您在该时间之前关闭此模式"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"您在<xliff:g id="WHEN">%1$s</xliff:g>将不会听到下次闹钟响铃"</string> - <string name="alarm_template" msgid="3980063409350522735">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"快速设置,<xliff:g id="TITLE">%s</xliff:g>。"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"热点"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"工作资料"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"是否有趣完全取决于个人感觉"</string> - <string name="tuner_warning" msgid="8730648121973575701">"系统界面调谐器可让您通过其他方式调整及自定义 Android 用户界面。在日后推出的版本中,这些实验性功能可能会变更、损坏或消失。操作时请务必谨慎。"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"在日后推出的版本中,这些实验性功能可能会变更、损坏或消失。操作时请务必谨慎。"</string> - <string name="got_it" msgid="2239653834387972602">"知道了"</string> - <string name="tuner_toast" msgid="603429811084428439">"恭喜!系统界面调谐器已添加到“设置”中"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"从“设置”中移除"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"要将系统界面调谐器从“设置”中移除,并停止使用所有相关功能吗?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"您正在使用工作资料"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index e00fda43a12a..96b97860b0f7 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"應用程式資訊"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"您最近的螢幕顯示在這裡"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"關閉最近使用的應用程式"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"概覽中有 1 個畫面"</item> - <item quantity="other" msgid="5523506463832158203">"概覽中有 %d 個畫面"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">概覽中有 %d 個畫面</item> + <item quantity="one">概覽中有 1 個畫面</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"無通知"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"持續進行"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"通知"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"允許 USB 除錯嗎?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"這部電腦的 RSA 密鑰指紋如下:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"一律允許透過這部電腦進行"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"不允許 USB 偵錯"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"目前登入到此裝置的使用者無法啟用 USB 偵錯功能。要使用此功能,請切換至主要使用者「<xliff:g id="NAME">%s</xliff:g>」。"</string> <string name="compat_mode_on" msgid="6623839244840638213">"放大為全螢幕"</string> <string name="compat_mode_off" msgid="4434467572461327898">"放大為全螢幕"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"正在儲存螢幕擷取畫面..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"搜尋"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"相機"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"電話"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"語音助手"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"解鎖"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"解鎖按鈕,正在等待指紋解鎖"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"不使用指紋解鎖"</string> <string name="unlock_label" msgid="8779712358041029439">"解鎖"</string> <string name="phone_label" msgid="2320074140205331708">"開啟電話"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"開啟語音助手"</string> <string name="camera_label" msgid="7261107956054836961">"開啟相機"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"選取新的工作版面配置"</string> <string name="cancel" msgid="6442560571259935130">"取消"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"數據網絡訊號強度為兩格。"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"數據網絡訊號強度為三格。"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"數據網絡訊號滿格。"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"WiFi 已關閉。"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"WiFi 連線已中斷。"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"WiFi 訊號強度為一格。"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"WiFi 訊號強度為兩格。"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"WiFi 訊號強度為三格。"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"WiFi 訊號已滿。"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"已連線至<xliff:g id="WIFI">%s</xliff:g>。"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"已連線至<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"沒有 WiMAX 訊號。"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 訊號強度兩格。"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX 訊號強度三格。"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX 訊號滿格。"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"以太網連接中斷。"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"已連接以太網。"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"沒有訊號。"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"未連線。"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"訊號強度為零格。"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"無 SIM 卡。"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"藍牙網絡共享。"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"飛航模式。"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"沒有 SIM 卡。"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"流動網絡供應商網絡正在變更。"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"「<xliff:g id="APP">%s</xliff:g>」已關閉。"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"所有最近使用的應用程式均已關閉。"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"正在啟動「<xliff:g id="APP">%s</xliff:g>」。"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g><xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"通知已關閉。"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知欄。"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快速設定。"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"上鎖畫面。"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"概覽"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"關閉"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"確認"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"使用者:<xliff:g id="USER">%s</xliff:g>。"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>。"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"WiFi 已關閉。"</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"飛行模式已關閉。"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"飛行模式已開啟。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"開啟「請勿騷擾」,僅限優先。"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"開啟「請勿騷擾」,完全靜音。"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"開啟「請勿騷擾」,不允許干擾。"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"開啟「請勿騷擾」,僅限鬧鐘。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"「請勿騷擾」關閉"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"已關閉「請勿騷擾」。"</string> @@ -241,7 +237,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"請勿騷擾"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"僅限優先"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"僅限鬧鐘"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"完全靜音"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"不允許干擾"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"藍牙"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"藍牙 (<xliff:g id="NUMBER">%d</xliff:g> 部裝置)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"藍牙關閉"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"未連線"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網絡"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi 關閉"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"沒有可用的 Wi-Fi 網絡"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"找不到已儲存的網絡"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"投放"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"正在放送"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"未命名的裝置"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"搜尋"</string> <string name="description_direction_up" msgid="7169032478259485180">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_left" msgid="7207478719805562165">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"除了指定的鬧鐘、提醒、活動及來電者,您將不會受到其他聲音和震動騷擾。"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"不干擾 (即使鬧鐘也不例外)。"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"除了指定的鬧鐘、提醒、活動及來電者,您將不會受到其他聲音和震動干擾。"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"自訂"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"這會封鎖所有聲音和震動,包括鬧鐘、音樂、影片和遊戲,但您仍可撥打電話。"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"這會封鎖所有聲音和震動,包括鬧鐘、音樂、影片和遊戲。"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"不允許干擾"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"只限重要干擾"</string> + <string name="zen_alarms" msgid="5055668280767657759">"僅限鬧鐘"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"下次鬧鐘時間:<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"下次鬧鐘時間:<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"您不會聽到<xliff:g id="ALARM_TIME">%s</xliff:g> 的鬧鐘"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"還有 <xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g> 則通知"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"不太緊急的通知會在下方顯示"</string> <string name="notification_tap_again" msgid="8524949573675922138">"再次輕觸即可開啟"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"向上快速滑動即可解鎖"</string> - <string name="phone_hint" msgid="4872890986869209950">"從圖示快速滑動即可使用手機功能"</string> - <string name="voice_hint" msgid="8939888732119726665">"從圖示快速滑動即可使用語音助手"</string> - <string name="camera_hint" msgid="7939688436797157483">"從圖示快速滑動即可使用相機功能"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"完全靜音。這亦將使螢幕閱讀器靜音。"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"完全靜音"</string> + <string name="phone_hint" msgid="3101468054914424646">"向右快速滑動即可使用手機功能"</string> + <string name="camera_hint" msgid="5241441720959174226">"向左快速滑動即可使用相機功能"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"不允許干擾"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"僅限優先"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"僅限鬧鐘"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"完全\n靜音"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"不允許\n干擾"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"僅限\n優先"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"僅限\n鬧鐘"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中 (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>後完成充電)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"切換使用者"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"切換使用者,目前使用者是<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"目前的使用者是 <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"顯示個人檔案"</string> <string name="user_add_user" msgid="5110251524486079492">"新增使用者"</string> <string name="user_new_user_name" msgid="426540612051178753">"新使用者"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"重新開始"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"是的,請繼續"</string> <string name="guest_notification_title" msgid="1585278533840603063">"訪客使用者"</string> - <string name="guest_notification_text" msgid="335747957734796689">"如要刪除應用程式和資料,請移除訪客使用者"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"移除訪客以刪除應用程式和資料"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"移除訪客"</string> <string name="user_add_user_title" msgid="4553596395824132638">"新增使用者?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"新增的使用者需要自行設定個人空間。\n\n任何使用者均可為所有其他使用者更新應用程式。"</string> @@ -365,16 +364,25 @@ <string name="monitoring_title" msgid="169206259253048106">"網絡監控"</string> <string name="disable_vpn" msgid="4435534311510272506">"停用 VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"中斷 VPN 連線"</string> - <string name="monitoring_description_device_owned" msgid="5780988291898461883">"您的裝置由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控及管理您裝置的設定、企業存取、應用程式、資料及位置資訊。如需更多資訊,請聯絡您的管理員。"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"您已授權應用程式設定 VPN 連線。\n\n這個應用程式能夠監控您的裝置和網絡活動,包括電郵、應用程式和網站。"</string> - <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"您的裝置由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控及管理您裝置的設定、企業存取、應用程式、資料及位置資訊。\n\n此外,由於您的裝置連至 VPN,因此 VPN 服務供應商也能監控您的個人網絡活動,包括電郵、應用程式及網站。\n\n如需更多資訊,請聯絡您的管理員。"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"您的裝置由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控您的網絡活動,包括電郵、應用程式及網站。\n\n如需瞭解更多資訊,請聯絡管理員。\n\n由於您的裝置連至 VPN,因此 VPN 服務供應商也可監控您的網絡活動。"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"您已連結至<xliff:g id="APPLICATION">%1$s</xliff:g> ,它能夠監控您的網絡活動,包括電郵、應用程式和網站。"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"您已連結至<xliff:g id="APPLICATION">%1$s</xliff:g>,它能夠監控您的個人網絡活動,包括電郵、應用程式和網站。"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"您的工作設定檔由<xliff:g id="ORGANIZATION">%1$s</xliff:g>管理。它已連結至<xliff:g id="APPLICATION">%2$s</xliff:g>,能夠監控您的工作網絡活動,包括電郵、應用程式和網站。\n\n如需進一步資訊,請聯絡您的管理員。"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"您的工作設定檔由<xliff:g id="ORGANIZATION">%1$s</xliff:g>管理。它已連結至<xliff:g id="APPLICATION_WORK">%2$s</xliff:g>,能夠監控您的工作網絡活動,包括電郵、應用程式和網站。\n\n此外,您亦連結至<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>,因此它亦能夠監控您的個人網絡活動。"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"您的裝置由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控及管理您裝置的設定、企業存取、應用程式、資料及位置資訊。\n\n此外,您的裝置連至 <xliff:g id="APPLICATION">%2$s</xliff:g>,它能監控您的網絡活動,包括電郵、應用程式及網站。\n\n如需更多資訊,請聯絡您的管理員。"</string> + <string name="monitoring_description_device_owned" msgid="5780988291898461883">"您的裝置由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控及管理您裝置的設定、企業存取、應用程式、資料及位置資訊。如需更多資料,請與您的管理員聯絡。"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"您的公司檔案由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控您的網絡活動,包括電郵、應用程式及安全網站。\n\n如需更多資訊,請聯絡您的管理員。"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"您裝置的管理機構:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>。\n您公司檔案的管理機構:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>。\n\n您的管理員可以監控您的裝置和網絡活動,包括電郵、應用程式及安全網站。\n\n如需更多資訊,請聯絡您的管理員。"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"您已授權應用程式設定 VPN 連線。\n\n這個應用程式可以監控您的裝置和網絡活動,包括電郵、應用程式和安全網站。"</string> + <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"您的裝置由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控及管理您裝置的設定、企業存取、應用程式、資料及位置資訊。\n\n 您的裝置亦已與 VPN 連線,因此 VPN 服務供應商也能監控您的個人網絡活動,包括電郵、應用程式及網站。\n\n如需更多資料,請與您的管理員聯絡。"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"您的公司檔案由 <xliff:g id="ORGANIZATION">%1$s</xliff:g> 管理。\n\n您的管理員可以監控您的網絡活動,包括電郵、應用程式及安全網站。\n\n如需更多資訊,請聯絡您的管理員。\n\n您的裝置亦已與 VPN 連線,因此 VPN 服務供應商也能監控您的個人網絡活動。"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"您裝置的管理機構:<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>。\n您公司檔案的管理機構:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>。\n\n您的管理員可以監控您的網絡活動,包括電郵、應用程式及安全網站。\n\n如需更多資訊,請聯絡您的管理員。\n\n您的裝置亦已與 VPN 連線,因此 VPN 服務供應商也能監控您的個人網絡活動。"</string> + <!-- no translation found for legacy_vpn_name (6604123105765737830) --> + <skip /> + <!-- no translation found for monitoring_description_app (6947928635272782570) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal (8506133233655324426) --> + <skip /> + <!-- no translation found for monitoring_description_app_work (808687576155832307) --> + <skip /> + <!-- no translation found for monitoring_description_app_personal_work (7711690793960304868) --> + <skip /> + <!-- no translation found for monitoring_description_vpn_app_device_owned (4970443827043261703) --> + <skip /> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"裝置將保持上鎖,直到您手動解鎖"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"更快取得通知"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"解鎖前顯示"</string> @@ -383,9 +391,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"顯示全部"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"全部隱藏"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"立即終止"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"展開"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"收合"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"螢幕已固定"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"在您取消固定前,它會保持在檢視狀態。輕觸並同時按住 [返回] 和 [概覽],即可取消固定。"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"在您取消固定前,它會保持在檢視狀態。輕觸並按住 [概覽] 即可取消固定。"</string> @@ -399,33 +404,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒絕"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」為音量對話框"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"輕觸即可復原。"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"您正在使用工作設定檔"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"系統使用者介面調諧器"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"顯示嵌入的電池百分比"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"非充電時,在狀態列圖示顯示電量百分比"</string> - <string name="quick_settings" msgid="10042998191725428">"快速設定"</string> - <string name="status_bar" msgid="4877645476959324760">"狀態列"</string> - <string name="demo_mode" msgid="2389163018533514619">"示範模式"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"啟用示範模式"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"顯示示範模式"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"以太網"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"鬧鐘"</string> - <string name="status_bar_work" msgid="6022553324802866373">"工作設定檔"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"飛行模式"</string> - <string name="add_tile" msgid="2995389510240786221">"加入圖塊"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"廣播圖塊"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"除非<xliff:g id="WHEN">%1$s</xliff:g>前關閉「請勿騷擾」功能,否則您不會聽到鬧鐘"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"您不會<xliff:g id="WHEN">%1$s</xliff:g>聽到鬧鐘"</string> - <string name="alarm_template" msgid="3980063409350522735">"在 <xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"在<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"<xliff:g id="TITLE">%s</xliff:g>的快速設定。"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"熱點"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"工作設定檔"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"這只是測試版本,並不包含完整功能"</string> - <string name="tuner_warning" msgid="8730648121973575701">"使用者介面調諧器讓您以更多方法修改和自訂 Android 使用者介面。但請小心,這些實驗功能可能會在日後發佈時更改、分拆或消失。"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"請小心,這些實驗功能可能會在日後發佈時更改、分拆或消失。"</string> - <string name="got_it" msgid="2239653834387972602">"知道了"</string> - <string name="tuner_toast" msgid="603429811084428439">"恭喜您!系統使用者介面調諧器已新增至「設定」中"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"從「設定」移除"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"要從「設定」移除系統使用者介面調諧器,並停止其所有功能嗎?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"您正在「工作設定檔」頁面"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 174166133110..0082064912df 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"應用程式資訊"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"您最近的螢幕會顯示在這裡"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"關閉最近使用的應用程式"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"總覽中有 1 個畫面"</item> - <item quantity="other" msgid="5523506463832158203">"總覽中有 %d 個畫面"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="other">總覽中有 %d 個畫面</item> + <item quantity="one">總覽中有 1 個畫面</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"沒有通知"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"進行中"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"通知"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"允許 USB 偵錯嗎?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"這台電腦的 RSA 金鑰指紋如下:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"一律允許透過這台電腦進行"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"無權使用 USB 偵錯功能"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"目前登入這台裝置的使用者無法啟用 USB 偵錯功能。如要使用這項功能,請切換到主要使用者「<xliff:g id="NAME">%s</xliff:g>」。"</string> <string name="compat_mode_on" msgid="6623839244840638213">"放大為全螢幕"</string> <string name="compat_mode_off" msgid="4434467572461327898">"放大為全螢幕"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"正在儲存螢幕擷取畫面…"</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"搜尋"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"相機"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"電話"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"語音小幫手"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"解除鎖定"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"解鎖按鈕,正在等待指紋"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"不使用指紋進行解鎖"</string> <string name="unlock_label" msgid="8779712358041029439">"解除鎖定"</string> <string name="phone_label" msgid="2320074140205331708">"開啟電話"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"開啟語音小幫手"</string> <string name="camera_label" msgid="7261107956054836961">"開啟攝影機"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"選取新工作版面配置"</string> <string name="cancel" msgid="6442560571259935130">"取消"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"數據網路訊號強度兩格。"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"數據網路訊號強度三格。"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"數據網路訊號滿格。"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"已關閉 Wi-Fi。"</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"Wi-Fi 連線已中斷。"</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Wi-Fi 訊號強度一格。"</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Wi-Fi 訊號強度兩格。"</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Wi-Fi 訊號強度三格。"</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Wi-Fi 訊號滿格。"</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"已連線至<xliff:g id="WIFI">%s</xliff:g>。"</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"已連線至<xliff:g id="BLUETOOTH">%s</xliff:g>。"</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"沒有 WiMAX 訊號。"</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"WiMAX 訊號兩格。"</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"WiMAX 訊號三格。"</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"WiMAX 訊號滿格。"</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"未連上乙太網路。"</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"已連上乙太網路。"</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"沒有訊號。"</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"尚未連線。"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"訊號強度零格。"</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"沒有 SIM 卡。"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"藍牙網路共用"</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"飛行模式。"</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"沒有 SIM 卡。"</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"行動通訊業者網路正在變更。"</string> <!-- String.format failed for translation --> <!-- no translation found for accessibility_battery_level (7451474187113371965) --> @@ -167,14 +164,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"「<xliff:g id="APP">%s</xliff:g>」已關閉。"</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"最近使用的應用程式已全部關閉。"</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"正在啟動「<xliff:g id="APP">%s</xliff:g>」。"</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"已關閉通知。"</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"通知欄。"</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"快捷設定。"</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"螢幕鎖定。"</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"設定"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"總覽。"</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"關閉"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"確認"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"使用者:<xliff:g id="USER">%s</xliff:g>。"</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>。"</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"WiFi 已關閉。"</string> @@ -186,7 +182,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"飛航模式已關閉。"</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"飛航模式已開啟。"</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"「零打擾」設定為開啟,只會顯示優先通知。"</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"「零打擾」設定為開啟,完全靜音。"</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"「零打擾」設定為開啟,不接受任何干擾。"</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"「零打擾」設定為開啟,只會顯示鬧鐘。"</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"「零打擾」設定為關閉。"</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"已停用「零打擾」設定。"</string> @@ -239,9 +235,9 @@ <string name="start_dreams" msgid="7219575858348719790">"休眠模式"</string> <string name="ethernet_label" msgid="7967563676324087464">"乙太網路"</string> <string name="quick_settings_dnd_label" msgid="8735855737575028208">"零打擾"</string> - <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"僅限優先通知"</string> + <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"僅顯示優先通知"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"僅允許鬧鐘"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"完全靜音"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"無干擾"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"藍牙"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"藍牙 (<xliff:g id="NUMBER">%d</xliff:g> 個裝置)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"關閉藍牙"</string> @@ -266,7 +262,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"未連線"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"沒有網路"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"Wi-Fi 已關閉"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"沒有 Wi-Fi 網路"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"找不到已儲存的網路"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"投放"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"投放"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"未命名的裝置"</string> @@ -308,28 +304,31 @@ <string name="description_target_search" msgid="3091587249776033139">"搜尋"</string> <string name="description_direction_up" msgid="7169032478259485180">"向上滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> <string name="description_direction_left" msgid="7207478719805562165">"向左滑動即可<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>。"</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"您不會受到聲音和震動干擾,但鬧鐘、提醒、活動和指定來電者除外。"</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"不干擾 (即使鬧鐘也不例外)。"</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"您不會受到聲音和振動干擾 (鬧鐘、提醒、活動和指定來電者例外)。"</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"自訂"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"這會封鎖「所有」聲音和震動干擾,包括鬧鐘、音樂、影片和遊戲在內。您仍可以撥打電話。"</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"這會封鎖「所有」聲音和震動干擾,包括鬧鐘、音樂、影片和遊戲在內。"</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"不允許干擾"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"僅限優先干擾"</string> + <string name="zen_alarms" msgid="5055668280767657759">"僅允許鬧鐘"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"下次鬧鐘時間:<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"下次鬧鐘時間:<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"您不會聽到<xliff:g id="ALARM_TIME">%s</xliff:g> 的鬧鐘"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"還有 <xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g> 則通知"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"較不緊急的通知會顯示在下方"</string> <string name="notification_tap_again" msgid="8524949573675922138">"再次輕觸即可開啟"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"向上滑動即可解鎖"</string> - <string name="phone_hint" msgid="4872890986869209950">"滑動手機圖示即可啟用"</string> - <string name="voice_hint" msgid="8939888732119726665">"滑動語音小幫手圖示即可啟用"</string> - <string name="camera_hint" msgid="7939688436797157483">"滑動相機圖示即可啟用"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"完全靜音。這也會關閉螢幕閱讀器的音訊。"</string> - <string name="interruption_level_none" msgid="6000083681244492992">"完全靜音"</string> - <string name="interruption_level_priority" msgid="6426766465363855505">"僅限優先通知"</string> + <string name="phone_hint" msgid="3101468054914424646">"向右滑動可使用手機功能"</string> + <string name="camera_hint" msgid="5241441720959174226">"向左滑動可使用相機功能"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"無干擾"</string> + <string name="interruption_level_priority" msgid="6426766465363855505">"僅顯示優先通知"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"僅允許鬧鐘"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"完全\n靜音"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"全部"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"無\n干擾"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"僅允許\n優先通知"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"僅允許\n鬧鐘"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"充電中 (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g>後充飽)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"切換使用者"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"切換使用者,目前使用者是<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"目前使用者是「<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>」"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"顯示設定檔"</string> <string name="user_add_user" msgid="5110251524486079492">"新增使用者"</string> <string name="user_new_user_name" msgid="426540612051178753">"新使用者"</string> @@ -344,7 +343,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"重新開始"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"是,請繼續"</string> <string name="guest_notification_title" msgid="1585278533840603063">"訪客使用者"</string> - <string name="guest_notification_text" msgid="335747957734796689">"如要刪除應用程式和資料,請移除訪客使用者"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"移除訪客以刪除應用程式和資料"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"移除訪客"</string> <string name="user_add_user_title" msgid="4553596395824132638">"新增使用者?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"新增的使用者需要自行設定個人空間。\n\n任何使用者皆可為其他所有使用者更新應用程式。"</string> @@ -366,15 +365,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"停用 VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"中斷 VPN 連線"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"您的裝置由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控及管理與裝置相關的設定、企業網路存取權、應用程式和資料,以及裝置的位置資訊。如需詳細資訊,請洽您的管理員。"</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"您已授權一個應用程式設定 VPN 連線。\n\n這個應用程式可以監控您的裝置和網路活動,包括收發電子郵件、使用應用程式和瀏覽網站。"</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"您的 Work 設定檔由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式及瀏覽安全網站。\n\n如需詳細資訊,請洽您的管理員。"</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"您的裝置由下列機構管理:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>。\n您的 Work 設定檔由以下機構管理:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>。\n\n您的管理員可以監控您的裝置和網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。\n\n如需詳細資訊,請洽您的管理員。"</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"您已授權一個應用程式設定 VPN 連線。\n\n這個應用程式可以監控您的裝置和網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。"</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"您的裝置由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控及管理與裝置相關的設定、企業網路存取權、應用程式和資料,以及裝置的位置資訊。\n\n由於您的裝置已連線至 VPN,您的網路活動也會受到 VPN 監控,包括收發電子郵件、使用應用程式和瀏覽網站。\n\n如需詳細資訊,請洽您的管理員。"</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"您的 Work 設定檔由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式及瀏覽網站。\n\n如需詳細資訊,請洽您的管理員。\n\n同時,由於您的裝置已連線至 VPN,您的網路活動也會受到 VPN 監控。"</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"由於您已連線至 <xliff:g id="APPLICATION">%1$s</xliff:g>,您的網路活動也會受到這個應用程式監控,包括收發電子郵件、使用應用程式和瀏覽網站。"</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"由於您已連線至 <xliff:g id="APPLICATION">%1$s</xliff:g>,您的個人網路活動也會受到這個應用程式監控,包括收發電子郵件、使用應用程式和瀏覽網站。"</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"您的 Work 設定檔是由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。由於設定檔已連線至 <xliff:g id="APPLICATION">%2$s</xliff:g>,您的工作網路活動也會受到這個應用程式監控,包括收發電子郵件、使用應用程式和瀏覽網站。\n\n詳情請洽您的管理員。"</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"您的 Work 設定檔是由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。由於設定檔已連線至 <xliff:g id="APPLICATION_WORK">%2$s</xliff:g>,您的工作網路活動也會受到這個應用程式監控,包括收發電子郵件、使用應用程式和瀏覽網站。\n\n同時由於您也連線至<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>,您的個人網路活動也會受到這個應用程式監控。"</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"您的裝置由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控及管理與裝置相關的設定、企業網路存取權、應用程式和資料,以及裝置的位置資訊。\n\n由於您的裝置已連線至 <xliff:g id="APPLICATION">%2$s</xliff:g>,您的網路活動也會受到這個應用程式監控,包括收發電子郵件、使用應用程式和瀏覽網站。\n\n如需詳細資訊,請洽您的管理員。"</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"您的 Work 設定檔由下列機構管理:<xliff:g id="ORGANIZATION">%1$s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式及瀏覽安全網站。\n\n如需詳細資訊,請洽您的管理員。\n\n同時,由於您的裝置已連線至 VPN,您的網路活動也會受到 VPN 監控。"</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"您的裝置由下列機構管理:<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>。\n您的 Work 設定檔由以下機構管理:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>。\n\n您的管理員可以監控您的網路活動,包括收發電子郵件、使用應用程式和瀏覽安全網站。\n\n如需詳細資訊,請洽您的管理員。\n\n同時,由於您的裝置已連線至 VPN,您的網路活動也會受到 VPN 監控。"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"在您手動解鎖前,裝置將保持鎖定狀態"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"更快取得通知"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"解鎖前顯示"</string> @@ -383,9 +379,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"全部顯示"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"全部隱藏"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>。<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"立刻結束"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"展開"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"收合"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"螢幕已固定"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"這會讓目前的螢幕畫面保持顯示狀態,直到取消固定為止。同時按住返回按鈕和總覽按鈕即可取消固定。"</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"這會讓目前的螢幕畫面保持顯示狀態,直到取消固定為止。按住總覽按鈕即可取消固定。"</string> @@ -399,33 +392,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"拒絕"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"「<xliff:g id="APP_NAME">%1$s</xliff:g>」現在是預設的音量控制對話方塊。"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"輕觸這裡即可恢復原始設定。"</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"您正在使用 Work 設定檔"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"系統使用者介面調整精靈"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"顯示嵌入式電池百分比"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"未充電時在狀態列圖示中顯示電量百分比"</string> - <string name="quick_settings" msgid="10042998191725428">"快速設定"</string> - <string name="status_bar" msgid="4877645476959324760">"狀態列"</string> - <string name="demo_mode" msgid="2389163018533514619">"示範模式"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"啟用示範模式"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"顯示示範模式"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"乙太網路"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"鬧鐘"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Work 設定檔"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"飛航模式"</string> - <string name="add_tile" msgid="2995389510240786221">"新增圖塊"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"播送圖塊"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"您不會聽到下一個<xliff:g id="WHEN">%1$s</xliff:g> 的鬧鐘,除非您預先關閉這項功能"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"您不會聽到下一個<xliff:g id="WHEN">%1$s</xliff:g> 的鬧鐘"</string> - <string name="alarm_template" msgid="3980063409350522735">"於<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"於<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"快速設定,<xliff:g id="TITLE">%s</xliff:g>。"</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"無線基地台"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Work 設定檔"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"有趣與否,見仁見智"</string> - <string name="tuner_warning" msgid="8730648121973575701">"系統使用者介面調整精靈可讓您透過其他方式,調整及自訂 Android 使用者介面。這些實驗性功能隨著版本更新可能會變更、損壞或消失,執行時請務必謹慎。"</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"這些實驗性功能隨著版本更新可能會變更、損壞或消失,執行時請務必謹慎。"</string> - <string name="got_it" msgid="2239653834387972602">"知道了"</string> - <string name="tuner_toast" msgid="603429811084428439">"恭喜!系統使用者介面調整精靈已新增到設定中"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"從設定中移除"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"要將系統使用者介面調整精靈從設定中移除,並停止使用所有相關功能嗎?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"您目前在 Work 設定檔"</string> </resources> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 7d34e86444ce..e474a03660cc 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -25,10 +25,10 @@ <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"Ulwazi lwensiza"</string> <string name="status_bar_no_recent_apps" msgid="7374907845131203189">"Izikrini zakho zakamuva zivela lapha"</string> <string name="status_bar_accessibility_dismiss_recents" msgid="4576076075226540105">"Susa izinhlelo zokusebenza zakamumva"</string> - <plurals name="status_bar_accessibility_recent_apps"> - <item quantity="one" msgid="3969335317929254918">"1 isikrini esiku-Buka konke"</item> - <item quantity="other" msgid="5523506463832158203">"%d wezikrini eziku-Buka konke"</item> - </plurals> + <plurals name="status_bar_accessibility_recent_apps" formatted="false" msgid="9138535907802238759"> + <item quantity="one">%d izikrini eziku-Buka konke</item> + <item quantity="other">%d izikrini eziku-Buka konke</item> + </plurals> <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"Azikho izaziso"</string> <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"Okuqhubekayo"</string> <string name="status_bar_latest_events_title" msgid="6594767438577593172">"Izaziso"</string> @@ -63,8 +63,6 @@ <string name="usb_debugging_title" msgid="4513918393387141949">"Vumela ukulungisa iphutha le-USB?"</string> <string name="usb_debugging_message" msgid="2220143855912376496">"Izigxivizo zeminwe zokhiye we-RSA wekhompyutha ngu:\n<xliff:g id="FINGERPRINT">%1$s</xliff:g>"</string> <string name="usb_debugging_always" msgid="303335496705863070">"Hlala uvumela njalo kusuka kule khompyutha"</string> - <string name="usb_debugging_secondary_user_title" msgid="6353808721761220421">"Ukususa iphutha kwe-USB akuvunyelwe"</string> - <string name="usb_debugging_secondary_user_message" msgid="6011931347142270156">"Umsebenzisi manje ongene ngemvume kule divayisi akakwazi ukuvula ukususa iphutha le-USB. Ukuze usebenzise lesi sici, shintshela kumsebenzisi oyinhloko ongu-“<xliff:g id="NAME">%s</xliff:g>”."</string> <string name="compat_mode_on" msgid="6623839244840638213">"Sondeza ukugcwalisa isikrini"</string> <string name="compat_mode_off" msgid="4434467572461327898">"Nweba ukugcwalisa isikrini"</string> <string name="screenshot_saving_ticker" msgid="7403652894056693515">"Ilondoloz umfanekiso weskrini..."</string> @@ -85,13 +83,9 @@ <string name="accessibility_search_light" msgid="1103867596330271848">"Sesha"</string> <string name="accessibility_camera_button" msgid="8064671582820358152">"Ikhamela"</string> <string name="accessibility_phone_button" msgid="6738112589538563574">"Ifoni"</string> - <string name="accessibility_voice_assist_button" msgid="487611083884852965">"Isisekeli sezwi"</string> <string name="accessibility_unlock_button" msgid="128158454631118828">"Vula"</string> - <string name="accessibility_unlock_button_fingerprint" msgid="8214125623493923751">"Inkinobho yokuvula, ilinde izigxivizo zeminwe"</string> - <string name="accessibility_unlock_without_fingerprint" msgid="7541705575183694446">"Vula ngaphandle kokusebenzisa izigxivizo zakho zeminwe"</string> <string name="unlock_label" msgid="8779712358041029439">"vula"</string> <string name="phone_label" msgid="2320074140205331708">"vula ifoni"</string> - <string name="voice_assist_label" msgid="3956854378310019854">"vula isilekeleli sezwi"</string> <string name="camera_label" msgid="7261107956054836961">"vula ikhamera"</string> <string name="recents_caption_resize" msgid="3517056471774958200">"Khetha isakhiwo somsebenzi omusha"</string> <string name="cancel" msgid="6442560571259935130">"Khansela"</string> @@ -114,6 +108,12 @@ <string name="accessibility_data_two_bars" msgid="6166018492360432091">"Amabha amabili edatha"</string> <string name="accessibility_data_three_bars" msgid="9167670452395038520">"Amabha amathathu edatha"</string> <string name="accessibility_data_signal_full" msgid="2708384608124519369">"Igcwele i-signal yedatha"</string> + <string name="accessibility_wifi_off" msgid="3177380296697933627">"I-Wi-Fi ivaliwe."</string> + <string name="accessibility_no_wifi" msgid="1425476551827924474">"I-Wi-Fi ayixhunywanga."</string> + <string name="accessibility_wifi_one_bar" msgid="7735893178010724377">"Ibha elilodwa le-Wi-Fi."</string> + <string name="accessibility_wifi_two_bars" msgid="4994274250497262434">"Amabha amabili we-Wi-Fi."</string> + <string name="accessibility_wifi_three_bars" msgid="3495755044276588384">"Amabha amathathu we-Wi-Fi."</string> + <string name="accessibility_wifi_signal_full" msgid="6853561303586480376">"Isiginali ye-Wi-Fi igcwele."</string> <string name="accessibility_wifi_name" msgid="7202151365171148501">"Xhuma ku-<xliff:g id="WIFI">%s</xliff:g>."</string> <string name="accessibility_bluetooth_name" msgid="8441517146585531676">"Xhuma ku-<xliff:g id="BLUETOOTH">%s</xliff:g>."</string> <string name="accessibility_no_wimax" msgid="4329180129727630368">"Ayikho i-WiMAX."</string> @@ -121,8 +121,6 @@ <string name="accessibility_wimax_two_bars" msgid="9176236858336502288">"Amabha amabili we-WiMAX."</string> <string name="accessibility_wimax_three_bars" msgid="6116551636752103927">"Amabha amathathu we-WiMAX."</string> <string name="accessibility_wimax_signal_full" msgid="2768089986795579558">"Isiginali ye-WiMAX egcwele."</string> - <string name="accessibility_ethernet_disconnected" msgid="5896059303377589469">"I-Ethernet inqanyuliwe."</string> - <string name="accessibility_ethernet_connected" msgid="2692130313069182636">"I-Ethernet ixhunyiwe."</string> <string name="accessibility_no_signal" msgid="7064645320782585167">"Ayikho isignali."</string> <string name="accessibility_not_connected" msgid="6395326276213402883">"Akuxhunyiwe"</string> <string name="accessibility_zero_bars" msgid="3806060224467027887">"Amabha ayiqanda."</string> @@ -148,7 +146,6 @@ <string name="accessibility_no_sim" msgid="8274017118472455155">"Ayikho i-SIM"</string> <string name="accessibility_bluetooth_tether" msgid="4102784498140271969">"Imodemu nge-Bluetooth."</string> <string name="accessibility_airplane_mode" msgid="834748999790763092">"Imodi yendiza."</string> - <string name="accessibility_no_sims" msgid="3957997018324995781">"Alikho ikhadi le-SIM."</string> <string name="accessibility_carrier_network_change_mode" msgid="4017301580441304305">"Iguqula inethiwekhi yenkampani yenethiwekhi."</string> <string name="accessibility_battery_level" msgid="7451474187113371965">"Iphesenti <xliff:g id="NUMBER">%d</xliff:g> lebhetri"</string> <string name="accessibility_settings_button" msgid="799583911231893380">"Izilungiselelo zesistimu"</string> @@ -165,14 +162,13 @@ <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> ivaliwe."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Zonke izinhlelo zokusebenza zakamuva zicashisiwe."</string> <string name="accessibility_recents_item_launched" msgid="7616039892382525203">"Iqala i-<xliff:g id="APP">%s</xliff:g>."</string> - <string name="accessibility_recents_task_header" msgid="1437183540924535457">"<xliff:g id="APP">%1$s</xliff:g> <xliff:g id="ACTIVITY_LABEL">%2$s</xliff:g>"</string> <string name="accessibility_notification_dismissed" msgid="854211387186306927">"Isaziso sichithiwe."</string> <string name="accessibility_desc_notification_shade" msgid="4690274844447504208">"Umthunzi wesaziso."</string> <string name="accessibility_desc_quick_settings" msgid="6186378411582437046">"Izilingiselelo ezisheshayo."</string> <string name="accessibility_desc_lock_screen" msgid="5625143713611759164">"Khiya isikrini."</string> <string name="accessibility_desc_settings" msgid="3417884241751434521">"Izilungiselelo"</string> <string name="accessibility_desc_recent_apps" msgid="4876900986661819788">"Buka konke."</string> - <string name="accessibility_desc_close" msgid="7479755364962766729">"Vala"</string> + <string name="accessibility_desc_confirm" msgid="3446792278337969766">"Qinisekisa"</string> <string name="accessibility_quick_settings_user" msgid="1104846699869476855">"Umsebenzisi <xliff:g id="USER">%s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi" msgid="5518210213118181692">"<xliff:g id="SIGNAL">%1$s</xliff:g>."</string> <string name="accessibility_quick_settings_wifi_changed_off" msgid="8716484460897819400">"I-Wifi ivaliwe."</string> @@ -184,7 +180,7 @@ <string name="accessibility_quick_settings_airplane_changed_off" msgid="66846307818850664">"Imodi yendiza ivaliwe."</string> <string name="accessibility_quick_settings_airplane_changed_on" msgid="8983005603505087728">"Imodi yendiza ivuliwe."</string> <string name="accessibility_quick_settings_dnd_priority_on" msgid="1448402297221249355">"Ukungaphazamisi kuvuliwe, okubalulekile kuphela."</string> - <string name="accessibility_quick_settings_dnd_none_on" msgid="6882582132662613537">"Ungaphazamisi, ukuthula okuphelele."</string> + <string name="accessibility_quick_settings_dnd_none_on" msgid="5910777408232088752">"Ungaphazamisi, akukho ukuphazamiseka."</string> <string name="accessibility_quick_settings_dnd_alarms_on" msgid="9152834845587554157">"Ukungaphazamisi kuvuliwe, ama-alamu kuphela."</string> <string name="accessibility_quick_settings_dnd_off" msgid="2371832603753738581">"Ukungaphazamisi kuvaliwe."</string> <string name="accessibility_quick_settings_dnd_changed_off" msgid="898107593453022935">"Ukungaphazamisi kuvaliwe."</string> @@ -239,7 +235,7 @@ <string name="quick_settings_dnd_label" msgid="8735855737575028208">"Ungaphazamisi"</string> <string name="quick_settings_dnd_priority_label" msgid="483232950670692036">"Okubalulekile kuphela"</string> <string name="quick_settings_dnd_alarms_label" msgid="2559229444312445858">"Ama-alamu kuphela"</string> - <string name="quick_settings_dnd_none_label" msgid="5025477807123029478">"Ukuthula okuphelele"</string> + <string name="quick_settings_dnd_none_label" msgid="7309935569360609114">"Azikho iziphazamiso"</string> <string name="quick_settings_bluetooth_label" msgid="6304190285170721401">"I-Bluetooth"</string> <string name="quick_settings_bluetooth_multiple_devices_label" msgid="3912245565613684735">"I-Bluetooth (<xliff:g id="NUMBER">%d</xliff:g> amadivayisi)"</string> <string name="quick_settings_bluetooth_off_label" msgid="8159652146149219937">"I-Bluetooth ivaliwe"</string> @@ -264,7 +260,7 @@ <string name="quick_settings_wifi_not_connected" msgid="7171904845345573431">"Akuxhunyiwe"</string> <string name="quick_settings_wifi_no_network" msgid="2221993077220856376">"Ayikho inethiwekhi"</string> <string name="quick_settings_wifi_off_label" msgid="7558778100843885864">"I-Wi-Fi icimile"</string> - <string name="quick_settings_wifi_detail_empty_text" msgid="269990350383909226">"Awekho amanethiwekhi we-Wi-Fi atholakalayo"</string> + <string name="quick_settings_wifi_detail_empty_text" msgid="2831702993995222755">"Awekho amanethiwekhi alondoloziwe atholakalayo"</string> <string name="quick_settings_cast_title" msgid="7709016546426454729">"Abalingisi"</string> <string name="quick_settings_casting" msgid="6601710681033353316">"Ukusakaza"</string> <string name="quick_settings_cast_device_default_name" msgid="5367253104742382945">"Idivayisi engenalo igama"</string> @@ -306,28 +302,31 @@ <string name="description_target_search" msgid="3091587249776033139">"Sesha"</string> <string name="description_direction_up" msgid="7169032478259485180">"Shelelisela ngenhla ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> <string name="description_direction_left" msgid="7207478719805562165">"Shelelisela ngakwesokunxele ku-<xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>."</string> - <string name="zen_priority_introduction" msgid="3070506961866919502">"Ngeke uze uphazanyiswe yimisindo nokudlidliza, ngaphandle kokuvela kuma-alamu, izikhumbuzi, imicimbi, nabashayi obacacisayo."</string> + <string name="zen_no_interruptions_with_warning" msgid="4396898053735625287">"Akukho ukuphazamiseka. Nama-alamu imbala."</string> + <string name="zen_priority_introduction" msgid="7253045784560169993">"Ngeke uze uphazanyiswe yimisindo nokudlidliza, ngaphandle kokuvela kuma-alamu, izikhumbuzi, imicimbi, nabashayi obacacisayo."</string> <string name="zen_priority_customize_button" msgid="7948043278226955063">"Enza ngendlela oyifisayo"</string> - <string name="zen_silence_introduction_voice" msgid="2284540992298200729">"Lokhu kuvimbela YONKE imisindo nokudludliza, kufaka phakathi ama-alamu, umculo, amavidiyo, namageyimu. Usazokwazi ukwenza amkholi wefoni."</string> - <string name="zen_silence_introduction" msgid="3137882381093271568">"Lokhu kuvimbela YONKE imisindo nokudlidliza, kufaka phakathi kusuka kuma-alamu, umculo, amavidiyo, namageyimu."</string> + <string name="zen_no_interruptions" msgid="7970973750143632592">"Azikho iziphazamiso"</string> + <string name="zen_important_interruptions" msgid="3477041776609757628">"Iziphazamiso ezibalulekile kuphela"</string> + <string name="zen_alarms" msgid="5055668280767657759">"Ama-alamu kuphela"</string> + <string name="zen_alarm_information_time" msgid="5235772206174372272">"I-alamu yakho elandelayo ingo<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_information_day_time" msgid="8422733576255047893">"I-alamu yakho elandelayo ingo-<xliff:g id="ALARM_DAY_AND_TIME">%s</xliff:g>"</string> + <string name="zen_alarm_warning" msgid="6873910860111498041">"Ngeke uzwe i-alamu yakho ngo-<xliff:g id="ALARM_TIME">%s</xliff:g>"</string> <string name="keyguard_more_overflow_text" msgid="9195222469041601365">"+<xliff:g id="NUMBER_OF_NOTIFICATIONS">%d</xliff:g>"</string> <string name="speed_bump_explanation" msgid="1288875699658819755">"Izaziso ezingasheshi kakhulu ezingezansi"</string> <string name="notification_tap_again" msgid="8524949573675922138">"Thinta futhi ukuze uvule"</string> <string name="keyguard_unlock" msgid="8043466894212841998">"Swayiphela phezulu ukuze uvule"</string> - <string name="phone_hint" msgid="4872890986869209950">"Swayiphela ifoni kusukela kusithonjana"</string> - <string name="voice_hint" msgid="8939888732119726665">"Swayiphela isilekeleli sezwi kusukela kusithonjana"</string> - <string name="camera_hint" msgid="7939688436797157483">"Swayiphela ikhamela kusukela kusithonjana"</string> - <string name="interruption_level_none_with_warning" msgid="5114872171614161084">"Ukuthula okuphelele. Lokhu futhi kuzothulisa izifundi zesikrini."</string> - <string name="interruption_level_none" msgid="6000083681244492992">"Ukuthula okuphelele"</string> + <string name="phone_hint" msgid="3101468054914424646">"Swayiphela ngakwesokudla ukuze uthole ifoni"</string> + <string name="camera_hint" msgid="5241441720959174226">"Swayiphela ngakwesokunxele ukuze uthole ikhamela"</string> + <string name="interruption_level_none" msgid="8284541443482072628">"Azikho iziphazamiso"</string> <string name="interruption_level_priority" msgid="6426766465363855505">"Okubalulekile kuphela"</string> <string name="interruption_level_alarms" msgid="5226306993448328896">"Ama-alamu kuphela"</string> - <string name="interruption_level_none_twoline" msgid="3957581548190765889">"Ukuthula\niokuphelele"</string> + <string name="interruption_level_all" msgid="1330581184930945764">"Konke"</string> + <string name="interruption_level_none_twoline" msgid="3942121050170227056">"Akukho\nukuphazamiseka"</string> <string name="interruption_level_priority_twoline" msgid="1564715335217164124">"Okubalulekile\nkuphela"</string> <string name="interruption_level_alarms_twoline" msgid="3266909566410106146">"Ama-alamu\nkuphela"</string> <string name="keyguard_indication_charging_time" msgid="1757251776872835768">"Iyashaja (<xliff:g id="CHARGING_TIME_LEFT">%s</xliff:g> ize igcwale)"</string> <string name="accessibility_multi_user_switch_switcher" msgid="7305948938141024937">"Shintsha umsebenzisi"</string> <string name="accessibility_multi_user_switch_switcher_with_current" msgid="8434880595284601601">"Shintsha umsebenzisi, umsebenzisi wamanje ngu-<xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> - <string name="accessibility_multi_user_switch_inactive" msgid="1424081831468083402">"Umsebenzisi wamanje <xliff:g id="CURRENT_USER_NAME">%s</xliff:g>"</string> <string name="accessibility_multi_user_switch_quick_contact" msgid="3020367729287990475">"Bonisa iphrofayela"</string> <string name="user_add_user" msgid="5110251524486079492">"Engeza umsebenzisi"</string> <string name="user_new_user_name" msgid="426540612051178753">"Umsebenzisi omusha"</string> @@ -342,7 +341,7 @@ <string name="guest_wipe_session_wipe" msgid="5065558566939858884">"Qala phansi"</string> <string name="guest_wipe_session_dontwipe" msgid="1401113462524894716">"Yebo, qhubeka"</string> <string name="guest_notification_title" msgid="1585278533840603063">"Umsebenzisi oyisihambeli"</string> - <string name="guest_notification_text" msgid="335747957734796689">"Ukuze ususe izinhlelo zokusebenza nedatha, susa umsebenzisi oyisihambeli"</string> + <string name="guest_notification_text" msgid="7513706222848825467">"Susa isihambeli ukuze ususe izinhlelo zokusebenza nedatha"</string> <string name="guest_notification_remove_action" msgid="8820670703892101990">"SUSA ISIHAMBELI"</string> <string name="user_add_user_title" msgid="4553596395824132638">"Engeza umsebenzisi omusha?"</string> <string name="user_add_user_message_short" msgid="2161624834066214559">"Uma ungeza umsebenzisi omusha, loyo muntu udinga ukusetha isikhala sakhe.\n\nNoma yimuphi umsebenzisi angabuyekeza izinhlelo zokusebenza kubo bonke abasebenzisi."</string> @@ -364,15 +363,12 @@ <string name="disable_vpn" msgid="4435534311510272506">"Khubaza i-VPN"</string> <string name="disconnect_vpn" msgid="1324915059568548655">"Nqamula i-VPN"</string> <string name="monitoring_description_device_owned" msgid="5780988291898461883">"Idivayisi yakho iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUmlawuli wakho angaqapha aphinde aphathe izilungiselelo, ukufinyelela kwenkampani, izinhlelo zokusebenza, idatha ehlotshaniswa nedivayisi yakho, kanye nolwazi lwendawo yedivayisi yakho. Ukuze uthole olunye ulwazi xhumana nomlawuli wakho."</string> - <string name="monitoring_description_vpn" msgid="4445150119515393526">"Unikeze uhlelo lokusebenza imvume yokusetha ukuxhumana kwe-VPN.\n\nLolu hlelo lokusebenza lungahlola idivayisi yakho nomsebenzi wenethiwekhi, ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi."</string> + <string name="monitoring_description_profile_owned" msgid="8110044290898637925">"Iphrofayela yakho yomsebenzi iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUmlawuli wakho uyakwazi ukuqapha umsebenzi wenethiwekhi yakho ofaka ama-imeyili, izinhlelo zokusebenza namawebhusayithi avikelekile.\n\nUkuze uthole olunye ulwazi, xhumana nomlawuli wakho."</string> + <string name="monitoring_description_device_and_profile_owned" msgid="1664428184778531249">"Idivayisi yakho iphethwe yi-:\n<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nIphrofayela yakho yomsebenzi iphethwe yi-:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nUmlawuli wakho angaqapha idivayisi yakho nomsebenzi wenethiwekhi, ofaka ama-imeyili, izinhlelo zokusebenza namawebhusayithi aphephile.\n\nUkuze uthole olunye ulwazi, xhumana nomlawuli wakho."</string> + <string name="monitoring_description_vpn" msgid="912328761766161919">"Unikeze uhlelo lokusebenza imvume yokusetha ukuxhumeka kwe-VPN.\n\nLolu hlelo lokusebenza lungaqapha idivayisi yakho nomsebenzi wenethiwekhi, ofaka ama-imeyili, izinhlelo zokusebenza namawebhusayithi avikelekile."</string> <string name="monitoring_description_vpn_device_owned" msgid="3090670777499161246">"Idivayisi yakho iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUmlawuli wakho angaqapha aphinde aphathe izilungiselelo, ukufinyelela kwezinkampani, izinhlelo zokusebenza, idatha ehlotshaniswa nedivayisi yakho, kanye nolwazi lwendawo yedivayisi yakho.\n\nUxhumeke ku-VPN, engaqapha umsebenzi wakho wenethiwekhi, ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi.\n\nUkuze uthole olunye ulwazi, xhumana nomlawuli wakho."</string> - <string name="monitoring_description_vpn_profile_owned" msgid="2054949132145039290">"Iphrofayela yakho yomsebenzi iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUmqondisi wakho unamandla wokuqaphela umsebenzi wenethiwekhi yakho ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi.\n\nUkuze uthole olunye ulwazi, xhumana nomqondisi wakho.\n\nFuthi uxhumeke ku-VPN, engaqaphela umsebenzi wenethiwekhi yakho."</string> - <string name="legacy_vpn_name" msgid="6604123105765737830">"I-VPN"</string> - <string name="monitoring_description_app" msgid="6259179342284742878">"Uxhumeke ku-<xliff:g id="APPLICATION">%1$s</xliff:g>, engahlola umsebenzi wakho wenethiwekhi ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi."</string> - <string name="monitoring_description_app_personal" msgid="484599052118316268">"Uxhumeke ku-<xliff:g id="APPLICATION">%1$s</xliff:g>, engahlola umsebenzi wenethiwekhi yakho yomuntu siqu, ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi."</string> - <string name="monitoring_description_app_work" msgid="1754325860918060897">"Iphrofayela yakho yomsebenzi iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>. Ixhumeke ku-<xliff:g id="APPLICATION">%2$s</xliff:g>, engahlola umsebenzi wenethiwekhi yakho yokusebenza, ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi.\n\nUkuze uthole olunye ulwazi, xhumana nomqondisi wakho."</string> - <string name="monitoring_description_app_personal_work" msgid="4946600443852045903">"Iphrofayela yakho yomsebenzi iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>. Ixhumeke ku-<xliff:g id="APPLICATION_WORK">%2$s</xliff:g>, engahlola umsebenzi wenethiwekhi yakho yomsebenzi, ofaka ama-imeyili, izinhlelo zokusebenza namawebhusayithi.\n\nFuthi uxhumeke ku-<xliff:g id="APPLICATION_PERSONAL">%3$s</xliff:g>, engahlola umsebenzi wenethiwekhi yakho yomuntu siqu."</string> - <string name="monitoring_description_vpn_app_device_owned" msgid="4970443827043261703">"Idivayisi yakho iphethwe yi-<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUmqondisi wakho angaqaphela aphinde aphathe izilungiselelo, ukufinyelela kwezinkampani, izinhlelo zokusebenza, idatha ehlotshaniswa nedivayisi yakho, nolwazi lendawo yedivayisi yakho.\n\nUxhumeke ku-<xliff:g id="APPLICATION">%2$s</xliff:g>, engaqaphela umsebenzi wakho wenethiwekhi, ofaka ama-imeyili, izinhlelo zokusebenza namawebhusayithi.\n\nUkuze uthole olunye ulwazi, xhumana nomqondisi wakho."</string> + <string name="monitoring_description_vpn_profile_owned" msgid="2224494839524715272">"Iphrofayela yakho yomsebenzi iphethwe ngu-<xliff:g id="ORGANIZATION">%1$s</xliff:g>.\n\nUmlawuli wakho uyakwazi ukuqapha umsebenzi wakho wenethiwekhi ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi avikelekile.\n\nUkuze uthole olunye ulwazi, xhumana nomlawuli wakho.\n\nFuthi uxhumeke ku-VPN, engaqapha umsebenzi wakho wenethiwekhi."</string> + <string name="monitoring_description_vpn_device_and_profile_owned" msgid="2198546817407897093">"Idivayisi yakho iphethwe yi-<xliff:g id="ORGANIZATION_0">%1$s</xliff:g>.\nIphrofayela yakho yokusebenza iphethwe yi-:\n<xliff:g id="ORGANIZATION_1">%2$s</xliff:g>.\n\nUmlawuli wakho uyakwazi ukuqapha umsebenzi wenethiwekhi yakho ofaka ama-imeyili, izinhlelo zokusebenza, namawebhusayithi avikelekile.\n\nUkuze uthole olunye ulwazi, xhumana nomlawuli wakho.\n\nFuthi uxhumeke ku-VPN, engaqapha umsebenzi wakho siqu wenethiwekhi"</string> <string name="keyguard_indication_trust_disabled" msgid="7412534203633528135">"Idivayisi izohlala ikhiyekile uze uyivule ngokwenza"</string> <string name="hidden_notifications_title" msgid="7139628534207443290">"Thola izaziso ngokushesha"</string> <string name="hidden_notifications_text" msgid="2326409389088668981">"Ibone ngaphambi kokuthi uyivule"</string> @@ -381,9 +377,6 @@ <string name="notification_expand_button_text" msgid="1037425494153780718">"Buka konke"</string> <string name="notification_collapse_button_text" msgid="6883253262134328057">"Fihla wonke"</string> <string name="zen_mode_and_condition" msgid="4462471036429759903">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string> - <string name="volume_zen_end_now" msgid="3179845345429841822">"Qeda manje"</string> - <string name="accessibility_volume_expand" msgid="5946812790999244205">"Nweba"</string> - <string name="accessibility_volume_collapse" msgid="3609549593031810875">"Goqa"</string> <string name="screen_pinning_title" msgid="3273740381976175811">"Isikrini siphiniwe"</string> <string name="screen_pinning_description" msgid="1346522416878235405">"Lokhu kukugcina kubukeka uze ususe ukuphina. Thinta futhi ubambe u-Emuva no-Ukubuka konke ngesikhathi esisodwa ukuze ususe ukuphina."</string> <string name="screen_pinning_description_accessible" msgid="8518446209564202557">"Lokhu kukugcina kubukeka uze ususe ukuphina. Thinta futhi ubambe u-Ukubuka konke ukuze ususe ukuphina."</string> @@ -397,33 +390,5 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Phika"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"I-<xliff:g id="APP_NAME">%1$s</xliff:g> yingxoxo yevolumu"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Thinta ukuze ubuyisele kokwangempela."</string> - <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Usebenzisa iphrofayela yakho yomsebenzi"</string> - <string name="system_ui_tuner" msgid="708224127392452018">"Isishuni se-UI yesistimu"</string> - <string name="show_battery_percentage" msgid="5444136600512968798">"Bonisa amaphesenti ebhethri elinamathiselwe"</string> - <string name="show_battery_percentage_summary" msgid="3215025775576786037">"Bonisa amaphesenti eleveli yebhethri ngaphakathi kwesithonjana sebha yesimo uma kungashajwa"</string> - <string name="quick_settings" msgid="10042998191725428">"Izilungiselelo ezisheshayo"</string> - <string name="status_bar" msgid="4877645476959324760">"Ibha yesimo"</string> - <string name="demo_mode" msgid="2389163018533514619">"Imodi yedemo"</string> - <string name="enable_demo_mode" msgid="4844205668718636518">"Nika amandla imodi yedemo"</string> - <string name="show_demo_mode" msgid="2018336697782464029">"Bonisa imodi yedemo"</string> - <string name="status_bar_ethernet" msgid="5044290963549500128">"I-Ethernet"</string> - <string name="status_bar_alarm" msgid="8536256753575881818">"I-alamu"</string> - <string name="status_bar_work" msgid="6022553324802866373">"Iphrofayela yomsebenzi"</string> - <string name="status_bar_airplane" msgid="7057575501472249002">"Imodi yendiza"</string> - <string name="add_tile" msgid="2995389510240786221">"Engeza ithayili"</string> - <string name="broadcast_tile" msgid="3894036511763289383">"Sakaza ithayili"</string> - <string name="zen_alarm_warning_indef" msgid="3482966345578319605">"Ngeke uzwe i-alamu yakho elandelayo ngo-<xliff:g id="WHEN">%1$s</xliff:g> ngaphandle kokuthi uvale lokhu ngaphambi kwalokho"</string> - <string name="zen_alarm_warning" msgid="444533119582244293">"Ngeke uzwe i-alamu yakho elandelayo ngo-<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template" msgid="3980063409350522735">"ngo-<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="alarm_template_far" msgid="4242179982586714810">"nge-<xliff:g id="WHEN">%1$s</xliff:g>"</string> - <string name="accessibility_quick_settings_detail" msgid="2579369091672902101">"Izilungiselelo ezisheshayo, <xliff:g id="TITLE">%s</xliff:g>."</string> - <string name="accessibility_status_bar_hotspot" msgid="4099381329956402865">"I-Hotspot"</string> - <string name="accessibility_managed_profile" msgid="6613641363112584120">"Iphrofayela yomsebenzi"</string> - <string name="tuner_warning_title" msgid="7094689930793031682">"Kuyajabulisa kwabanye kodwa hhayi bonke"</string> - <string name="tuner_warning" msgid="8730648121973575701">"Isishuni se-UI sesistimu sikunika izindlela ezingeziwe zokuhlobisa nokwenza ngezifiso isixhumanisi sokubona se-Android. Lezi zici zesilingo zingashintsha, zephuke, noma zinyamalale ekukhishweni kwangakusasa. Qhubeka ngokuqaphela."</string> - <string name="tuner_persistent_warning" msgid="8597333795565621795">"Lezi zici zesilingo zingashintsha, zephuke, noma zinyamalale ekukhishweni kwangakusasa. Qhubeka ngokuqaphela."</string> - <string name="got_it" msgid="2239653834387972602">"Ngiyezwa"</string> - <string name="tuner_toast" msgid="603429811084428439">"Siyakuhalalisela! Isishuni se-UI sesistimu singeziwe kuzilungiselelo"</string> - <string name="remove_from_settings" msgid="8389591916603406378">"Susa kusuka kuzilungiselelo"</string> - <string name="remove_from_settings_prompt" msgid="6069085993355887748">"Susa isishuni se-UI yesistimu kusuka kuzilungiselelo futhi uyeke ukusebenzisa zonke izici zakhona?"</string> + <string name="managed_profile_foreground_toast" msgid="3199278359979281097">"Ukuphrofayela yomsebenzi"</string> </resources> diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 260d81b1f59f..123ff7824c59 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -260,12 +260,6 @@ <!-- Doze: pulse parameter - how long does it take to fade in after a pickup? --> <integer name="doze_pulse_duration_in_pickup">300</integer> - <!-- Doze: pulse parameter - delay to wait for the screen to wake up --> - <integer name="doze_pulse_delay_in">200</integer> - - <!-- Doze: pulse parameter - delay to wait for the screen to wake up after a pickup --> - <integer name="doze_pulse_delay_in_pickup">200</integer> - <!-- Doze: pulse parameter - once faded in, how long does it stay visible? --> <integer name="doze_pulse_duration_visible">3000</integer> diff --git a/packages/SystemUI/res/values/donottranslate.xml b/packages/SystemUI/res/values/donottranslate.xml index 351a1fdbda07..30ff7043f688 100644 --- a/packages/SystemUI/res/values/donottranslate.xml +++ b/packages/SystemUI/res/values/donottranslate.xml @@ -20,4 +20,10 @@ <!-- Date format for display: should match the lockscreen in /policy. --> <string name="system_ui_date_pattern">@*android:string/system_ui_date_pattern</string> + <!-- DO NOT TRANSLATE - temporary hack to show the speed-less label if no translation is available --> + <item type="string" name="keyguard_indication_charging_time_fast_if_translated">@string/keyguard_indication_charging_time</item> + + <!-- DO NOT TRANSLATE - temporary hack to show the speed-less label if no translation is available --> + <item type="string" name="keyguard_indication_charging_time_slowly_if_translated">@string/keyguard_indication_charging_time</item> + </resources> diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml index 8eef23e3db52..13128b7cf9eb 100644 --- a/packages/SystemUI/res/values/ids.xml +++ b/packages/SystemUI/res/values/ids.xml @@ -37,6 +37,7 @@ <item type="id" name="doze_saved_filter_tag"/> <item type="id" name="qs_icon_tag"/> <item type="id" name="scrim"/> + <item type="id" name="scrim_target"/> <item type="id" name="hun_scrim_alpha_start"/> <item type="id" name="hun_scrim_alpha_end"/> <item type="id" name="notification_power"/> diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index 3eac84fd4dce..dfa85cee806c 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -793,6 +793,12 @@ <!-- Indication on the keyguard that is shown when the device is charging. [CHAR LIMIT=40]--> <string name="keyguard_indication_charging_time">Charging (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%s</xliff:g> until full)</string> + <!-- Indication on the keyguard that is shown when the device is charging rapidly. Should match keyguard_plugged_in_charging_fast [CHAR LIMIT=40]--> + <string name="keyguard_indication_charging_time_fast">Charging rapidly (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%s</xliff:g> until full)</string> + + <!-- Indication on the keyguard that is shown when the device is charging slowly. Should match keyguard_plugged_in_charging_slowly [CHAR LIMIT=40]--> + <string name="keyguard_indication_charging_time_slowly">Charging slowly (<xliff:g id="charging_time_left" example="4 hours and 2 minutes">%s</xliff:g> until full)</string> + <!-- Related to user switcher --><skip/> <!-- Accessibility label for the button that opens the user switcher. --> diff --git a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java index b0e2afae1bcb..1dca14928c6d 100644 --- a/packages/SystemUI/src/com/android/systemui/ExpandHelper.java +++ b/packages/SystemUI/src/com/android/systemui/ExpandHelper.java @@ -112,7 +112,9 @@ public class ExpandHelper implements Gefingerpoken { public boolean onScaleBegin(ScaleGestureDetector detector) { if (DEBUG_SCALE) Log.v(TAG, "onscalebegin()"); - startExpanding(mResizedView, STRETCH); + if (!mOnlyMovements) { + startExpanding(mResizedView, STRETCH); + } return mExpanding; } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java index 89a2c7447f84..82a1bfe172ec 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeHost.java @@ -29,6 +29,7 @@ public interface DozeHost { void stopDozing(); boolean isPowerSaveActive(); boolean isNotificationLightOn(); + boolean isPulsingBlocked(); public interface Callback { void onNewNotifications(); diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index 887391c078b2..630d7350c1bc 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -255,6 +255,11 @@ public class DozeService extends DreamService { } private void continuePulsing(int reason) { + if (mHost.isPulsingBlocked()) { + mPulsing = false; + mWakeLock.release(); + return; + } mHost.pulseWhileDozing(new DozeHost.PulseCallback() { @Override public void onPulseStarted() { diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java index d78800ffe521..d2c60efd1282 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java @@ -80,7 +80,8 @@ public class KeyguardService extends Service { @Override // Binder interface public void keyguardDone(boolean authenticated, boolean wakeup) { checkPermission(); - mKeyguardViewMediator.keyguardDone(authenticated, wakeup); + // TODO: Remove wakeup + mKeyguardViewMediator.keyguardDone(authenticated); } @Override // Binder interface diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java index a1c8b1ac2749..055b5ef4e7b4 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java @@ -68,11 +68,14 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.SystemUI; +import com.android.systemui.statusbar.phone.FingerprintUnlockController; import com.android.systemui.statusbar.phone.PhoneStatusBar; import com.android.systemui.statusbar.phone.ScrimController; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.statusbar.phone.StatusBarWindowManager; +import java.io.FileDescriptor; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; @@ -151,6 +154,7 @@ public class KeyguardViewMediator extends SystemUI { private static final int NOTIFY_STARTED_WAKING_UP = 21; private static final int NOTIFY_SCREEN_TURNED_ON = 22; private static final int NOTIFY_SCREEN_TURNED_OFF = 23; + private static final int NOTIFY_STARTED_GOING_TO_SLEEP = 24; /** * The default amount of time we stay awake (used for all key input) @@ -176,11 +180,6 @@ public class KeyguardViewMediator extends SystemUI { */ private static final String KEYGUARD_ANALYTICS_SETTING = "keyguard_analytics"; - /** - * How much faster we collapse the lockscreen when authenticating with fingerprint. - */ - private static final float FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR = 1.3f; - /** The stream type that the lock sounds are tied to. */ private int mUiSoundsStreamType; @@ -458,30 +457,6 @@ public class KeyguardViewMediator extends SystemUI { break; } } - - @Override - public void onFingerprintAuthenticated(int userId, boolean wakeAndUnlocking) { - boolean unlockingWithFingerprintAllowed = - mUpdateMonitor.isUnlockingWithFingerprintAllowed(); - if (mStatusBarKeyguardViewManager.isBouncerShowing()) { - if (unlockingWithFingerprintAllowed) { - mStatusBarKeyguardViewManager.notifyKeyguardAuthenticated(); - } - } else { - if (wakeAndUnlocking && mShowing && unlockingWithFingerprintAllowed) { - mWakeAndUnlocking = true; - mStatusBarKeyguardViewManager.setWakeAndUnlocking(); - keyguardDone(true, true); - } else if (mShowing && mDeviceInteractive) { - if (wakeAndUnlocking) { - mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested(); - } - mStatusBarKeyguardViewManager.animateCollapsePanels( - FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR); - } - } - }; - }; ViewMediatorCallback mViewMediatorCallback = new ViewMediatorCallback() { @@ -490,9 +465,12 @@ public class KeyguardViewMediator extends SystemUI { KeyguardViewMediator.this.userActivity(); } - public void keyguardDone(boolean authenticated) { + public void keyguardDone(boolean strongAuth) { if (!mKeyguardDonePending) { - KeyguardViewMediator.this.keyguardDone(authenticated, true); + KeyguardViewMediator.this.keyguardDone(true /* authenticated */); + } + if (strongAuth) { + mUpdateMonitor.reportSuccessfulStrongAuthUnlockAttempt(); } } @@ -506,12 +484,15 @@ public class KeyguardViewMediator extends SystemUI { } @Override - public void keyguardDonePending() { + public void keyguardDonePending(boolean strongAuth) { mKeyguardDonePending = true; mHideAnimationRun = true; mStatusBarKeyguardViewManager.startPreHideAnimation(null /* finishRunnable */); mHandler.sendEmptyMessageDelayed(KEYGUARD_DONE_PENDING_TIMEOUT, KEYGUARD_DONE_PENDING_TIMEOUT_MS); + if (strongAuth) { + mUpdateMonitor.reportSuccessfulStrongAuthUnlockAttempt(); + } } @Override @@ -524,7 +505,7 @@ public class KeyguardViewMediator extends SystemUI { if (mKeyguardDonePending) { // Somebody has called keyguardDonePending before, which means that we are // authenticated - KeyguardViewMediator.this.keyguardDone(true /* authenticated */, true /* wakeUp */); + KeyguardViewMediator.this.keyguardDone(true /* authenticated */); } } @@ -552,9 +533,12 @@ public class KeyguardViewMediator extends SystemUI { public int getBouncerPromptReason() { int currentUser = ActivityManager.getCurrentUser(); if ((mUpdateMonitor.getUserTrustIsManaged(currentUser) - || mUpdateMonitor.isUnlockWithFingerPrintPossible(currentUser)) - && !mTrustManager.hasUserAuthenticatedSinceBoot(currentUser)) { + || mUpdateMonitor.isUnlockWithFingerprintPossible(currentUser)) + && !mUpdateMonitor.getStrongAuthTracker().hasUserAuthenticatedSinceBoot()) { return KeyguardSecurityView.PROMPT_REASON_RESTART; + } else if (mUpdateMonitor.isUnlockWithFingerprintPossible(currentUser) + && mUpdateMonitor.hasFingerprintUnlockTimedOut(currentUser)) { + return KeyguardSecurityView.PROMPT_REASON_TIMEOUT; } return KeyguardSecurityView.PROMPT_REASON_NONE; } @@ -668,6 +652,7 @@ public class KeyguardViewMediator extends SystemUI { final boolean lockImmediately = mLockPatternUtils.getPowerButtonInstantlyLocks(currentUser) || !mLockPatternUtils.isSecure(currentUser); + long timeout = getLockTimeout(); if (mExitSecureCallback != null) { if (DEBUG) Log.d(TAG, "pending exit secure callback cancelled"); @@ -682,9 +667,9 @@ public class KeyguardViewMediator extends SystemUI { } } else if (mShowing) { mPendingReset = true; - } else if (why == WindowManagerPolicy.OFF_BECAUSE_OF_TIMEOUT + } else if ((why == WindowManagerPolicy.OFF_BECAUSE_OF_TIMEOUT && timeout > 0) || (why == WindowManagerPolicy.OFF_BECAUSE_OF_USER && !lockImmediately)) { - doKeyguardLaterLocked(); + doKeyguardLaterLocked(timeout); } else if (!mLockPatternUtils.isLockScreenDisabled(currentUser)) { mPendingLock = true; } @@ -693,6 +678,8 @@ public class KeyguardViewMediator extends SystemUI { playSounds(true); } } + KeyguardUpdateMonitor.getInstance(mContext).dispatchStartedGoingToSleep(why); + notifyStartedGoingToSleep(); } public void onFinishedGoingToSleep(int why) { @@ -718,7 +705,7 @@ public class KeyguardViewMediator extends SystemUI { KeyguardUpdateMonitor.getInstance(mContext).dispatchFinishedGoingToSleep(why); } - private void doKeyguardLaterLocked() { + private long getLockTimeout() { // if the screen turned off because of timeout or the user hit the power button // and we don't need to lock immediately, set an alarm // to enable it a little bit later (i.e, give the user a chance @@ -747,23 +734,30 @@ public class KeyguardViewMediator extends SystemUI { } else { timeout = lockAfterTimeout; } + return timeout; + } - if (timeout <= 0) { - // Lock now + private void doKeyguardLaterLocked() { + long timeout = getLockTimeout(); + if (timeout == 0) { doKeyguardLocked(null); } else { - // Lock in the future - long when = SystemClock.elapsedRealtime() + timeout; - Intent intent = new Intent(DELAYED_KEYGUARD_ACTION); - intent.putExtra("seq", mDelayedShowingSequence); - PendingIntent sender = PendingIntent.getBroadcast(mContext, - 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); - mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, sender); - if (DEBUG) Log.d(TAG, "setting alarm to turn off keyguard, seq = " - + mDelayedShowingSequence); + doKeyguardLaterLocked(timeout); } } + private void doKeyguardLaterLocked(long timeout) { + // Lock in the future + long when = SystemClock.elapsedRealtime() + timeout; + Intent intent = new Intent(DELAYED_KEYGUARD_ACTION); + intent.putExtra("seq", mDelayedShowingSequence); + PendingIntent sender = PendingIntent.getBroadcast(mContext, + 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); + mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, sender); + if (DEBUG) Log.d(TAG, "setting alarm to turn off keyguard, seq = " + + mDelayedShowingSequence); + } + private void cancelDoKeyguardLaterLocked() { mDelayedShowingSequence++; } @@ -926,9 +920,27 @@ public class KeyguardViewMediator extends SystemUI { } catch (RemoteException e) { Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); } + } else if (!isSecure()) { + + // Keyguard is not secure, no need to do anything, and we don't need to reshow + // the Keyguard after the client releases the Keyguard lock. + mExternallyEnabled = true; + mNeedToReshowWhenReenabled = false; + updateInputRestricted(); + try { + callback.onKeyguardExitResult(true); + } catch (RemoteException e) { + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); + } } else { - mExitSecureCallback = callback; - verifyUnlockLocked(); + + // Since we prevent apps from hiding the Keyguard if we are secure, this should be + // a no-op as well. + try { + callback.onKeyguardExitResult(false); + } catch (RemoteException e) { + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); + } } } } @@ -1065,6 +1077,7 @@ public class KeyguardViewMediator extends SystemUI { // Without this, settings is not enabled until the lock screen first appears setShowingLocked(false); hideLocked(); + mUpdateMonitor.reportSuccessfulStrongAuthUnlockAttempt(); return; } @@ -1108,6 +1121,11 @@ public class KeyguardViewMediator extends SystemUI { mHandler.sendEmptyMessage(VERIFY_UNLOCK); } + private void notifyStartedGoingToSleep() { + if (DEBUG) Log.d(TAG, "notifyStartedGoingToSleep"); + mHandler.sendEmptyMessage(NOTIFY_STARTED_GOING_TO_SLEEP); + } + private void notifyFinishedGoingToSleep() { if (DEBUG) Log.d(TAG, "notifyFinishedGoingToSleep"); mHandler.sendEmptyMessage(NOTIFY_FINISHED_GOING_TO_SLEEP); @@ -1189,10 +1207,10 @@ public class KeyguardViewMediator extends SystemUI { } }; - public void keyguardDone(boolean authenticated, boolean wakeup) { - if (DEBUG) Log.d(TAG, "keyguardDone(" + authenticated + ")"); + public void keyguardDone(boolean authenticated) { + if (DEBUG) Log.d(TAG, "keyguardDone(" + authenticated +")"); EventLog.writeEvent(70000, 2); - Message msg = mHandler.obtainMessage(KEYGUARD_DONE, authenticated ? 1 : 0, wakeup ? 1 : 0); + Message msg = mHandler.obtainMessage(KEYGUARD_DONE, authenticated ? 1 : 0); mHandler.sendMessage(msg); } @@ -1219,6 +1237,9 @@ public class KeyguardViewMediator extends SystemUI { case VERIFY_UNLOCK: handleVerifyUnlock(); break; + case NOTIFY_STARTED_GOING_TO_SLEEP: + handleNotifyStartedGoingToSleep(); + break; case NOTIFY_FINISHED_GOING_TO_SLEEP: handleNotifyFinishedGoingToSleep(); break; @@ -1235,14 +1256,11 @@ public class KeyguardViewMediator extends SystemUI { handleNotifyStartedWakingUp(); break; case KEYGUARD_DONE: - handleKeyguardDone(msg.arg1 != 0, msg.arg2 != 0); + handleKeyguardDone(msg.arg1 != 0); break; case KEYGUARD_DONE_DRAWING: handleKeyguardDoneDrawing(); break; - case KEYGUARD_DONE_AUTHENTICATING: - keyguardDone(true, true); - break; case SET_OCCLUDED: handleSetOccluded(msg.arg1 != 0); break; @@ -1272,7 +1290,7 @@ public class KeyguardViewMediator extends SystemUI { * @see #keyguardDone * @see #KEYGUARD_DONE */ - private void handleKeyguardDone(boolean authenticated, boolean wakeup) { + private void handleKeyguardDone(boolean authenticated) { if (DEBUG) Log.d(TAG, "handleKeyguardDone"); synchronized (this) { resetKeyguardDonePendingLocked(); @@ -1467,6 +1485,15 @@ public class KeyguardViewMediator extends SystemUI { } mHiding = false; + if (mWakeAndUnlocking && mDrawnCallback != null) { + + // Hack level over 9000: To speed up wake-and-unlock sequence, force it to report + // the next draw from here so we don't have to wait for window manager to signal + // this to our ViewRootImpl. + mStatusBarKeyguardViewManager.getViewRootImpl().setReportNextDraw(); + notifyDrawn(mDrawnCallback); + } + // only play "unlock" noises if not on a call (since the incall UI // disables the keyguard) if (TelephonyManager.EXTRA_STATE_IDLE.equals(mPhoneState)) { @@ -1480,9 +1507,6 @@ public class KeyguardViewMediator extends SystemUI { updateActivityLockScreenState(); adjustStatusBarLocked(); sendUserPresentBroadcast(); - if (mWakeAndUnlocking && mDrawnCallback != null) { - notifyDrawn(mDrawnCallback); - } } } @@ -1543,6 +1567,13 @@ public class KeyguardViewMediator extends SystemUI { } } + private void handleNotifyStartedGoingToSleep() { + synchronized (KeyguardViewMediator.this) { + if (DEBUG) Log.d(TAG, "handleNotifyStartedGoingToSleep"); + mStatusBarKeyguardViewManager.onStartedGoingToSleep(); + } + } + /** * Handle message sent by {@link #notifyFinishedGoingToSleep()} * @see #NOTIFY_FINISHED_GOING_TO_SLEEP @@ -1586,6 +1617,7 @@ public class KeyguardViewMediator extends SystemUI { synchronized (this) { if (DEBUG) Log.d(TAG, "handleNotifyScreenTurnedOff"); mStatusBarKeyguardViewManager.onScreenTurnedOff(); + mWakeAndUnlocking = false; } } @@ -1612,11 +1644,17 @@ public class KeyguardViewMediator extends SystemUI { } } + public void onWakeAndUnlocking() { + mWakeAndUnlocking = true; + keyguardDone(true /* authenticated */); + } + public StatusBarKeyguardViewManager registerStatusBar(PhoneStatusBar phoneStatusBar, ViewGroup container, StatusBarWindowManager statusBarWindowManager, - ScrimController scrimController) { + ScrimController scrimController, + FingerprintUnlockController fingerprintUnlockController) { mStatusBarKeyguardViewManager.registerStatusBar(phoneStatusBar, container, - statusBarWindowManager, scrimController); + statusBarWindowManager, scrimController, fingerprintUnlockController); return mStatusBarKeyguardViewManager; } @@ -1633,6 +1671,30 @@ public class KeyguardViewMediator extends SystemUI { return mViewMediatorCallback; } + @Override + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + pw.print(" mSystemReady: "); pw.println(mSystemReady); + pw.print(" mBootCompleted: "); pw.println(mBootCompleted); + pw.print(" mBootSendUserPresent: "); pw.println(mBootSendUserPresent); + pw.print(" mExternallyEnabled: "); pw.println(mExternallyEnabled); + pw.print(" mNeedToReshowWhenReenabled: "); pw.println(mNeedToReshowWhenReenabled); + pw.print(" mShowing: "); pw.println(mShowing); + pw.print(" mInputRestricted: "); pw.println(mInputRestricted); + pw.print(" mOccluded: "); pw.println(mOccluded); + pw.print(" mDelayedShowingSequence: "); pw.println(mDelayedShowingSequence); + pw.print(" mExitSecureCallback: "); pw.println(mExitSecureCallback); + pw.print(" mDeviceInteractive: "); pw.println(mDeviceInteractive); + pw.print(" mGoingToSleep: "); pw.println(mGoingToSleep); + pw.print(" mHiding: "); pw.println(mHiding); + pw.print(" mWaitingUntilKeyguardVisible: "); pw.println(mWaitingUntilKeyguardVisible); + pw.print(" mKeyguardDonePending: "); pw.println(mKeyguardDonePending); + pw.print(" mHideAnimationRun: "); pw.println(mHideAnimationRun); + pw.print(" mPendingReset: "); pw.println(mPendingReset); + pw.print(" mPendingLock: "); pw.println(mPendingLock); + pw.print(" mWakeAndUnlocking: "); pw.println(mWakeAndUnlocking); + pw.print(" mDrawnCallback: "); pw.println(mDrawnCallback); + } + private static class StartKeyguardExitAnimParams { long startTime; diff --git a/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java b/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java index f36019b43d8f..e64f6a0afdda 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java +++ b/packages/SystemUI/src/com/android/systemui/qs/UsageTracker.java @@ -21,7 +21,6 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.IntentFilter; -import android.content.SharedPreferences; import com.android.systemui.Prefs; import com.android.systemui.R; diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index 8c2ac883dce9..f1550a09b2e2 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -20,7 +20,6 @@ import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.ITaskStackListener; -import android.appwidget.AppWidgetProviderInfo; import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.Context; diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java index b47fb3044897..d0876fa3577f 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsActivity.java @@ -33,7 +33,6 @@ import android.view.View; import android.view.ViewStub; import android.widget.Toast; -import com.android.internal.logging.MetricsConstants; import com.android.internal.logging.MetricsLogger; import com.android.systemui.Prefs; import com.android.systemui.R; diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java index 298a1cced3ff..d5c9253520d3 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java +++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java @@ -20,10 +20,8 @@ import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.ActivityOptions; import android.app.AppGlobals; -import android.app.IActivityContainer; import android.app.IActivityManager; import android.app.ITaskStackListener; -import android.app.SearchManager; import android.appwidget.AppWidgetHost; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; @@ -54,15 +52,12 @@ import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; -import android.os.UserManager; import android.provider.Settings; import android.util.Log; import android.util.MutableBoolean; import android.util.Pair; import android.util.SparseArray; import android.view.Display; -import android.view.DisplayInfo; -import android.view.SurfaceControl; import android.view.WindowManager; import android.view.accessibility.AccessibilityManager; @@ -71,7 +66,6 @@ import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.recents.Constants; import com.android.systemui.recents.Recents; -import com.android.systemui.recents.RecentsAppWidgetHost; import java.io.IOException; import java.util.ArrayList; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java index 403af7099c6c..7f17885ab687 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java @@ -350,6 +350,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView } else { updateBackground(); } + setOutlineAlpha(dark ? 0f : 1f); } public void setShowingLegacyBackground(boolean showing) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 70653435def7..eecac63b08dc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -90,6 +90,7 @@ import com.android.internal.statusbar.StatusBarIconList; import com.android.internal.util.NotificationColorUtil; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.systemui.DejankUtils; import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.SwipeHelper; @@ -167,13 +168,7 @@ public abstract class BaseStatusBar extends SystemUI implements // on-screen navigation buttons protected NavigationBarView mNavigationBarView = null; - protected Boolean mScreenOn; - - // The second field is a bit different from the first one because it only listens to screen on/ - // screen of events from Keyguard. We need this so we don't have a race condition with the - // broadcast. In the future, we should remove the first field altogether and rename the second - // field. - protected boolean mScreenOnFromKeyguard; + protected boolean mDeviceInteractive; protected boolean mVisible; @@ -1512,6 +1507,15 @@ public abstract class BaseStatusBar extends SystemUI implements final PendingIntent intent = sbn.getNotification().contentIntent; final String notificationKey = sbn.getKey(); + // Mark notification for one frame. + row.setJustClicked(true); + DejankUtils.postAfterTraversal(new Runnable() { + @Override + public void run() { + row.setJustClicked(false); + } + }); + if (NOTIFICATION_CLICK_DEBUG) { Log.d(TAG, "Clicked on content of " + notificationKey); } @@ -1619,7 +1623,7 @@ public abstract class BaseStatusBar extends SystemUI implements protected void updateVisibleToUser() { boolean oldVisibleToUser = mVisibleToUser; - mVisibleToUser = mVisible && mScreenOnFromKeyguard; + mVisibleToUser = mVisible && mDeviceInteractive; if (oldVisibleToUser != mVisibleToUser) { handleVisibleToUserChanged(mVisibleToUser); @@ -1632,11 +1636,13 @@ public abstract class BaseStatusBar extends SystemUI implements protected void handleVisibleToUserChanged(boolean visibleToUser) { try { if (visibleToUser) { - boolean clearNotificationEffects = !isPanelFullyCollapsed() && - (mShowLockscreenNotifications || - (mState == StatusBarState.SHADE || mState == StatusBarState.SHADE_LOCKED)); + boolean pinnedHeadsUp = mHeadsUpManager.hasPinnedHeadsUp(); + boolean clearNotificationEffects = + ((mShowLockscreenNotifications && mState == StatusBarState.KEYGUARD) || + (!pinnedHeadsUp && (mState == StatusBarState.SHADE + || mState == StatusBarState.SHADE_LOCKED))); int notificationLoad = mNotificationData.getActiveNotifications().size(); - if (mHeadsUpManager.hasPinnedHeadsUp() && isPanelFullyCollapsed()) { + if (pinnedHeadsUp && isPanelFullyCollapsed()) { notificationLoad = 1; } else { MetricsLogger.histogram(mContext, "note_load", notificationLoad); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index a1b07b50271f..897f5e55c5af 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -64,6 +64,7 @@ public class CommandQueue extends IStatusBar.Stub { private static final int MSG_APP_TRANSITION_STARTING = 21 << MSG_SHIFT; private static final int MSG_ASSIST_DISCLOSURE = 22 << MSG_SHIFT; private static final int MSG_START_ASSIST = 23 << MSG_SHIFT; + private static final int MSG_CAMERA_LAUNCH_GESTURE = 24 << MSG_SHIFT; public static final int FLAG_EXCLUDE_NONE = 0; public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0; @@ -109,6 +110,7 @@ public class CommandQueue extends IStatusBar.Stub { public void appTransitionStarting(long startTime, long duration); public void showAssistDisclosure(); public void startAssist(Bundle args); + public void onCameraLaunchGestureDetected(int source); } public CommandQueue(Callbacks callbacks, StatusBarIconList list) { @@ -293,6 +295,14 @@ public class CommandQueue extends IStatusBar.Stub { } } + @Override + public void onCameraLaunchGestureDetected(int source) { + synchronized (mList) { + mHandler.removeMessages(MSG_CAMERA_LAUNCH_GESTURE); + mHandler.obtainMessage(MSG_CAMERA_LAUNCH_GESTURE, source, 0).sendToTarget(); + } + } + private final class H extends Handler { public void handleMessage(Message msg) { final int what = msg.what & MSG_MASK; @@ -391,6 +401,9 @@ public class CommandQueue extends IStatusBar.Stub { case MSG_START_ASSIST: mCallbacks.startAssist((Bundle) msg.obj); break; + case MSG_CAMERA_LAUNCH_GESTURE: + mCallbacks.onCameraLaunchGestureDetected(msg.arg1); + break; } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index b88e5ca7f5cb..5f01306f5774 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -24,6 +24,7 @@ import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; +import android.graphics.drawable.RippleDrawable; import android.service.notification.StatusBarNotification; import android.util.AttributeSet; import android.view.MotionEvent; @@ -110,6 +111,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { } }; + private boolean mJustClicked; + public NotificationContentView getPrivateLayout() { return mPrivateLayout; } @@ -301,6 +304,21 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { return mHeadsUpHeight; } + /** + * Mark whether this notification was just clicked, i.e. the user has just clicked this + * notification in this frame. + */ + public void setJustClicked(boolean justClicked) { + mJustClicked = justClicked; + } + + /** + * @return true if this notification has been clicked in this frame, false otherwise + */ + public boolean wasJustClicked() { + return mJustClicked; + } + public interface ExpansionLogger { public void logNotificationExpansion(String key, boolean userAction, boolean expanded); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java index d77e050dbee7..a6fc4bbcb11d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableOutlineView.java @@ -34,6 +34,7 @@ public abstract class ExpandableOutlineView extends ExpandableView { private final Rect mOutlineRect = new Rect(); protected final int mRoundedRectCornerRadius; private boolean mCustomOutline; + private float mOutlineAlpha = 1f; public ExpandableOutlineView(Context context, AttributeSet attrs) { super(context, attrs); @@ -50,6 +51,7 @@ public abstract class ExpandableOutlineView extends ExpandableView { } else { outline.setRoundRect(mOutlineRect, mRoundedRectCornerRadius); } + outline.setAlpha(mOutlineAlpha); } }); } @@ -66,6 +68,11 @@ public abstract class ExpandableOutlineView extends ExpandableView { invalidateOutline(); } + protected void setOutlineAlpha(float alpha) { + mOutlineAlpha = alpha; + invalidateOutline(); + } + protected void setOutlineRect(RectF rect) { if (rect != null) { setOutlineRect(rect.left, rect.top, rect.right, rect.bottom); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java index 164c496ff19d..8058933aab32 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java @@ -36,6 +36,7 @@ import android.view.ViewAnimationUtils; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.widget.ImageView; + import com.android.systemui.R; import com.android.systemui.statusbar.phone.KeyguardAffordanceHelper; import com.android.systemui.statusbar.phone.PhoneStatusBar; @@ -79,6 +80,7 @@ public class KeyguardAffordanceView extends ImageView { private float mRestingAlpha = KeyguardAffordanceHelper.SWIPE_RESTING_ALPHA_AMOUNT; private boolean mSupportHardware; private boolean mFinishing; + private boolean mLaunchingAffordance; private CanvasProperty<Float> mHwCircleRadius; private CanvasProperty<Float> mHwCenterX; @@ -152,7 +154,7 @@ public class KeyguardAffordanceView extends ImageView { @Override protected void onDraw(Canvas canvas) { - mSupportHardware = canvas.isHardwareAccelerated(); + mSupportHardware = false;//canvas.isHardwareAccelerated(); drawBackgroundCircle(canvas); canvas.save(); canvas.scale(mImageScale, mImageScale, getWidth() / 2, getHeight() / 2); @@ -161,9 +163,11 @@ public class KeyguardAffordanceView extends ImageView { } public void setPreviewView(View v) { + View oldPreviewView = mPreviewView; mPreviewView = v; if (mPreviewView != null) { - mPreviewView.setVisibility(INVISIBLE); + mPreviewView.setVisibility(mLaunchingAffordance + ? oldPreviewView.getVisibility() : INVISIBLE); } } @@ -176,7 +180,7 @@ public class KeyguardAffordanceView extends ImageView { } private void drawBackgroundCircle(Canvas canvas) { - if (mCircleRadius > 0) { + if (mCircleRadius > 0 || mFinishing) { if (mFinishing && mSupportHardware) { DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; displayListCanvas.drawCircle(mHwCenterX, mHwCenterY, mHwCircleRadius, @@ -207,11 +211,12 @@ public class KeyguardAffordanceView extends ImageView { cancelAnimator(mPreviewClipper); mFinishing = true; mCircleStartRadius = mCircleRadius; - float maxCircleSize = getMaxCircleSize(); + final float maxCircleSize = getMaxCircleSize(); Animator animatorToRadius; if (mSupportHardware) { initHwProperties(); animatorToRadius = getRtAnimatorToRadius(maxCircleSize); + startRtAlphaFadeIn(); } else { animatorToRadius = getAnimatorToRadius(maxCircleSize); } @@ -222,6 +227,8 @@ public class KeyguardAffordanceView extends ImageView { public void onAnimationEnd(Animator animation) { mAnimationEndRunnable.run(); mFinishing = false; + mCircleRadius = maxCircleSize; + invalidate(); } }); animatorToRadius.start(); @@ -241,6 +248,36 @@ public class KeyguardAffordanceView extends ImageView { } } + /** + * Fades in the Circle on the RenderThread. It's used when finishing the circle when it had + * alpha 0 in the beginning. + */ + private void startRtAlphaFadeIn() { + if (mCircleRadius == 0 && mPreviewView == null) { + Paint modifiedPaint = new Paint(mCirclePaint); + modifiedPaint.setColor(mCircleColor); + modifiedPaint.setAlpha(0); + mHwCirclePaint = CanvasProperty.createPaint(modifiedPaint); + RenderNodeAnimator animator = new RenderNodeAnimator(mHwCirclePaint, + RenderNodeAnimator.PAINT_ALPHA, 255); + animator.setTarget(this); + animator.setInterpolator(PhoneStatusBar.ALPHA_IN); + animator.setDuration(250); + animator.start(); + } + } + + public void instantFinishAnimation() { + cancelAnimator(mPreviewClipper); + if (mPreviewView != null) { + mPreviewView.setClipBounds(null); + mPreviewView.setVisibility(View.VISIBLE); + } + mCircleRadius = getMaxCircleSize(); + setImageAlpha(0, false); + invalidate(); + } + private void startRtCircleFadeOut(long duration) { RenderNodeAnimator animator = new RenderNodeAnimator(mHwCirclePaint, RenderNodeAnimator.PAINT_ALPHA, 0); @@ -443,6 +480,7 @@ public class KeyguardAffordanceView extends ImageView { public void setImageAlpha(float alpha, boolean animate, long duration, Interpolator interpolator, Runnable runnable) { cancelAnimator(mAlphaAnimator); + alpha = mLaunchingAffordance ? 0 : alpha; int endAlpha = (int) (alpha * 255); final Drawable background = getBackground(); if (!animate) { @@ -509,4 +547,8 @@ public class KeyguardAffordanceView extends ImageView { return false; } } + + public void setLaunchingAffordance(boolean launchingAffordance) { + mLaunchingAffordance = launchingAffordance; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index 07a055c0fe42..50d274d4fcc7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -16,17 +16,13 @@ package com.android.systemui.statusbar; -import com.android.internal.app.IBatteryStats; -import com.android.keyguard.KeyguardUpdateMonitor; -import com.android.keyguard.KeyguardUpdateMonitorCallback; -import com.android.systemui.R; -import com.android.systemui.statusbar.phone.KeyguardIndicationTextView; - import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Resources; import android.graphics.Color; +import android.hardware.fingerprint.FingerprintManager; import android.os.BatteryManager; import android.os.BatteryStats; import android.os.Handler; @@ -39,19 +35,35 @@ import android.text.format.Formatter; import android.util.Log; import android.view.View; +import com.android.internal.app.IBatteryStats; +import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; +import com.android.systemui.R; +import com.android.systemui.statusbar.phone.KeyguardIndicationTextView; +import com.android.systemui.statusbar.phone.LockIcon; +import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; + /** - * Controls the little text indicator on the keyguard. + * Controls the indications and error messages shown on the Keyguard */ public class KeyguardIndicationController { private static final String TAG = "KeyguardIndicationController"; + private static final boolean DEBUG_CHARGING_CURRENT = false; private static final int MSG_HIDE_TRANSIENT = 1; + private static final int MSG_CLEAR_FP_MSG = 2; + private static final long TRANSIENT_FP_ERROR_TIMEOUT = 1300; private final Context mContext; private final KeyguardIndicationTextView mTextView; private final IBatteryStats mBatteryInfo; + private final int mSlowThreshold; + private final int mFastThreshold; + private final LockIcon mLockIcon; + private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; + private String mRestingIndication; private String mTransientIndication; private int mTransientTextColor; @@ -59,10 +71,20 @@ public class KeyguardIndicationController { private boolean mPowerPluggedIn; private boolean mPowerCharged; + private int mChargingSpeed; + private int mChargingCurrent; + private String mMessageToShowOnScreenOn; - public KeyguardIndicationController(Context context, KeyguardIndicationTextView textView) { + public KeyguardIndicationController(Context context, KeyguardIndicationTextView textView, + LockIcon lockIcon) { mContext = context; mTextView = textView; + mLockIcon = lockIcon; + + Resources res = context.getResources(); + mSlowThreshold = res.getInteger(R.integer.config_chargingSlowlyThreshold); + mFastThreshold = res.getInteger(R.integer.config_chargingFastThreshold); + mBatteryInfo = IBatteryStats.Stub.asInterface( ServiceManager.getService(BatteryStats.SERVICE_NAME)); @@ -150,7 +172,11 @@ public class KeyguardIndicationController { return mTransientIndication; } if (mPowerPluggedIn) { - return computePowerIndication(); + String indication = computePowerIndication(); + if (DEBUG_CHARGING_CURRENT) { + indication += ", " + (mChargingCurrent / 1000) + " mA"; + } + return indication; } return mRestingIndication; } @@ -161,20 +187,41 @@ public class KeyguardIndicationController { } // Try fetching charging time from battery stats. + long chargingTimeRemaining = 0; try { - long chargingTimeRemaining = mBatteryInfo.computeChargeTimeRemaining(); - if (chargingTimeRemaining > 0) { - String chargingTimeFormatted = Formatter.formatShortElapsedTimeRoundingUpToMinutes( - mContext, chargingTimeRemaining); - return mContext.getResources().getString( - R.string.keyguard_indication_charging_time, chargingTimeFormatted); - } + chargingTimeRemaining = mBatteryInfo.computeChargeTimeRemaining(); + } catch (RemoteException e) { Log.e(TAG, "Error calling IBatteryStats: ", e); } + final boolean hasChargingTime = chargingTimeRemaining > 0; - // Fall back to simple charging label. - return mContext.getResources().getString(R.string.keyguard_plugged_in); + int chargingId; + switch (mChargingSpeed) { + case KeyguardUpdateMonitor.BatteryStatus.CHARGING_FAST: + chargingId = hasChargingTime + ? R.string.keyguard_indication_charging_time_fast_if_translated + : R.string.keyguard_plugged_in_charging_fast; + break; + case KeyguardUpdateMonitor.BatteryStatus.CHARGING_SLOWLY: + chargingId = hasChargingTime + ? R.string.keyguard_indication_charging_time_slowly_if_translated + : R.string.keyguard_plugged_in_charging_slowly; + break; + default: + chargingId = hasChargingTime + ? R.string.keyguard_indication_charging_time + : R.string.keyguard_plugged_in; + break; + } + + if (hasChargingTime) { + String chargingTimeFormatted = Formatter.formatShortElapsedTimeRoundingUpToMinutes( + mContext, chargingTimeRemaining); + return mContext.getResources().getString(chargingId, chargingTimeFormatted); + } else { + return mContext.getResources().getString(chargingId); + } } KeyguardUpdateMonitorCallback mUpdateMonitor = new KeyguardUpdateMonitorCallback() { @@ -184,8 +231,68 @@ public class KeyguardIndicationController { || status.status == BatteryManager.BATTERY_STATUS_FULL; mPowerPluggedIn = status.isPluggedIn() && isChargingOrFull; mPowerCharged = status.isCharged(); + mChargingCurrent = status.maxChargingCurrent; + mChargingSpeed = status.getChargingSpeed(mSlowThreshold, mFastThreshold); updateIndication(); } + + @Override + public void onFingerprintHelp(int msgId, String helpString) { + KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(mContext); + if (!updateMonitor.isUnlockingWithFingerprintAllowed()) { + return; + } + int errorColor = mContext.getResources().getColor(R.color.system_warning_color, null); + if (mStatusBarKeyguardViewManager.isBouncerShowing()) { + mStatusBarKeyguardViewManager.showBouncerMessage(helpString, errorColor); + } else if (updateMonitor.isDeviceInteractive()) { + mLockIcon.setTransientFpError(true); + showTransientIndication(helpString, errorColor); + mHandler.removeMessages(MSG_CLEAR_FP_MSG); + mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_CLEAR_FP_MSG), + TRANSIENT_FP_ERROR_TIMEOUT); + } + } + + @Override + public void onFingerprintError(int msgId, String errString) { + KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(mContext); + if (!updateMonitor.isUnlockingWithFingerprintAllowed() + || msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) { + return; + } + int errorColor = mContext.getResources().getColor(R.color.system_warning_color, null); + if (mStatusBarKeyguardViewManager.isBouncerShowing()) { + mStatusBarKeyguardViewManager.showBouncerMessage(errString, errorColor); + } else if (updateMonitor.isDeviceInteractive()) { + showTransientIndication(errString, errorColor); + // We want to keep this message around in case the screen was off + mHandler.removeMessages(MSG_HIDE_TRANSIENT); + hideTransientIndicationDelayed(5000); + } else { + mMessageToShowOnScreenOn = errString; + } + } + + @Override + public void onScreenTurnedOn() { + if (mMessageToShowOnScreenOn != null) { + int errorColor = mContext.getResources().getColor(R.color.system_warning_color, + null); + showTransientIndication(mMessageToShowOnScreenOn, errorColor); + // We want to keep this message around in case the screen was off + mHandler.removeMessages(MSG_HIDE_TRANSIENT); + hideTransientIndicationDelayed(5000); + mMessageToShowOnScreenOn = null; + } + } + + @Override + public void onFingerprintRunningStateChanged(boolean running) { + if (running) { + mMessageToShowOnScreenOn = null; + } + } }; BroadcastReceiver mReceiver = new BroadcastReceiver() { @@ -203,7 +310,15 @@ public class KeyguardIndicationController { if (msg.what == MSG_HIDE_TRANSIENT && mTransientIndication != null) { mTransientIndication = null; updateIndication(); + } else if (msg.what == MSG_CLEAR_FP_MSG) { + mLockIcon.setTransientFpError(false); + hideTransientIndication(); } } }; + + public void setStatusBarKeyguardViewManager( + StatusBarKeyguardViewManager statusBarKeyguardViewManager) { + mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java index 01aa8d13a0ae..8688c2811ce3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationBackgroundView.java @@ -86,6 +86,9 @@ public class NotificationBackgroundView extends View { if (mBackground != null) { mBackground.setCallback(this); } + if (mBackground instanceof RippleDrawable) { + ((RippleDrawable) mBackground).setForceSoftware(true); + } invalidate(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index 6b167b44d655..1d890d0dde6c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -33,7 +33,7 @@ public class DozeParameters { private static final String TAG = "DozeParameters"; private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); - private static final int MAX_DURATION = 10 * 1000; + private static final int MAX_DURATION = 60 * 1000; private final Context mContext; @@ -50,8 +50,6 @@ public class DozeParameters { pw.print(" getPulseDuration(pickup=true): "); pw.println(getPulseDuration(true)); pw.print(" getPulseInDuration(pickup=false): "); pw.println(getPulseInDuration(false)); pw.print(" getPulseInDuration(pickup=true): "); pw.println(getPulseInDuration(true)); - pw.print(" getPulseInDelay(pickup=false): "); pw.println(getPulseInDelay(false)); - pw.print(" getPulseInDelay(pickup=true): "); pw.println(getPulseInDelay(true)); pw.print(" getPulseInVisibleDuration(): "); pw.println(getPulseVisibleDuration()); pw.print(" getPulseOutDuration(): "); pw.println(getPulseOutDuration()); pw.print(" getPulseOnSigMotion(): "); pw.println(getPulseOnSigMotion()); @@ -80,12 +78,6 @@ public class DozeParameters { : getInt("doze.pulse.duration.in", R.integer.doze_pulse_duration_in); } - public int getPulseInDelay(boolean pickup) { - return pickup - ? getInt("doze.pulse.delay.in.pickup", R.integer.doze_pulse_delay_in_pickup) - : getInt("doze.pulse.delay.in", R.integer.doze_pulse_delay_in); - } - public int getPulseVisibleDuration() { return getInt("doze.pulse.duration.visible", R.integer.doze_pulse_duration_visible); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java index 3e1732866c61..3ff69c9d2fb6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java @@ -100,10 +100,35 @@ public class DozeScrimController { mHandler.post(mPulseIn); } + /** + * Aborts pulsing immediately. + */ + public void abortPulsing() { + cancelPulsing(); + if (mDozing) { + mScrimController.setDozeBehindAlpha(1f); + mScrimController.setDozeInFrontAlpha(1f); + } + } + + public void onScreenTurnedOn() { + if (isPulsing()) { + final boolean pickup = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP; + startScrimAnimation(true /* inFront */, 0f, + mDozeParameters.getPulseInDuration(pickup), + pickup ? mPulseInInterpolatorPickup : mPulseInInterpolator, + mPulseInFinished); + } + } + public boolean isPulsing() { return mPulseCallback != null; } + public boolean isDozing() { + return mDozing; + } + private void cancelPulsing() { if (DEBUG) Log.d(TAG, "Cancel pulsing"); @@ -138,12 +163,11 @@ public class DozeScrimController { private void startScrimAnimation(final boolean inFront, float target, long duration, Interpolator interpolator) { - startScrimAnimation(inFront, target, duration, interpolator, 0 /* delay */, - null /* endRunnable */); + startScrimAnimation(inFront, target, duration, interpolator, null /* endRunnable */); } private void startScrimAnimation(final boolean inFront, float target, long duration, - Interpolator interpolator, long delay, final Runnable endRunnable) { + Interpolator interpolator, final Runnable endRunnable) { Animator current = getCurrentAnimator(inFront); if (current != null) { float currentTarget = getCurrentTarget(inFront); @@ -162,7 +186,6 @@ public class DozeScrimController { }); anim.setInterpolator(interpolator); anim.setDuration(duration); - anim.setStartDelay(delay); anim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { @@ -222,12 +245,6 @@ public class DozeScrimController { + DozeLog.pulseReasonToString(mPulseReason)); if (!mDozing) return; DozeLog.tracePulseStart(mPulseReason); - final boolean pickup = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP; - startScrimAnimation(true /* inFront */, 0f, - mDozeParameters.getPulseInDuration(pickup), - pickup ? mPulseInInterpolatorPickup : mPulseInInterpolator, - mDozeParameters.getPulseInDelay(pickup), - mPulseInFinished); // Signal that the pulse is ready to turn the screen on and draw. pulseStarted(); @@ -249,7 +266,7 @@ public class DozeScrimController { if (DEBUG) Log.d(TAG, "Pulse out, mDozing=" + mDozing); if (!mDozing) return; startScrimAnimation(true /* inFront */, 1f, mDozeParameters.getPulseOutDuration(), - mPulseOutInterpolator, 0 /* delay */, mPulseOutFinished); + mPulseOutInterpolator, mPulseOutFinished); } }; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java new file mode 100644 index 000000000000..29129638fc6c --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/FingerprintUnlockController.java @@ -0,0 +1,298 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.systemui.statusbar.phone; + +import android.content.Context; +import android.os.Handler; +import android.os.PowerManager; +import android.os.SystemClock; +import android.util.Log; + +import com.android.keyguard.KeyguardConstants; +import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; +import com.android.systemui.keyguard.KeyguardViewMediator; + +/** + * Controller which coordinates all the fingerprint unlocking actions with the UI. + */ +public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback { + + private static final String TAG = "FingerprintController"; + private static final boolean DEBUG_FP_WAKELOCK = KeyguardConstants.DEBUG_FP_WAKELOCK; + private static final long FINGERPRINT_WAKELOCK_TIMEOUT_MS = 15 * 1000; + private static final String FINGERPRINT_WAKE_LOCK_NAME = "wake-and-unlock wakelock"; + + /** + * Mode in which we don't need to wake up the device when we get a fingerprint. + */ + public static final int MODE_NONE = 0; + + /** + * Mode in which we wake up the device, and directly dismiss Keyguard. Active when we acquire + * a fingerprint while the screen is off and the device was sleeping. + */ + public static final int MODE_WAKE_AND_UNLOCK = 1; + + /** + * Mode in which we wake the device up, and fade out the Keyguard contents because they were + * already visible while pulsing in doze mode. + */ + public static final int MODE_WAKE_AND_UNLOCK_PULSING = 2; + + /** + * Mode in which we wake up the device, but play the normal dismiss animation. Active when we + * acquire a fingerprint pulsing in doze mode. + */ + public static final int MODE_SHOW_BOUNCER = 3; + + /** + * Mode in which we only wake up the device, and keyguard was not showing when we acquired a + * fingerprint. + * */ + public static final int MODE_ONLY_WAKE = 4; + + /** + * Mode in which fingerprint unlocks the device. + */ + public static final int MODE_UNLOCK = 5; + + /** + * Mode in which fingerprint brings up the bouncer because fingerprint unlocking is currently + * not allowed. + */ + public static final int MODE_DISMISS_BOUNCER = 6; + + /** + * How much faster we collapse the lockscreen when authenticating with fingerprint. + */ + private static final float FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR = 1.3f; + + private PowerManager mPowerManager; + private Handler mHandler = new Handler(); + private PowerManager.WakeLock mWakeLock; + private KeyguardUpdateMonitor mUpdateMonitor; + private int mMode; + private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; + private StatusBarWindowManager mStatusBarWindowManager; + private DozeScrimController mDozeScrimController; + private KeyguardViewMediator mKeyguardViewMediator; + private ScrimController mScrimController; + private PhoneStatusBar mPhoneStatusBar; + private boolean mGoingToSleep; + private int mPendingAuthenticatedUserId = -1; + + public FingerprintUnlockController(Context context, + StatusBarWindowManager statusBarWindowManager, + DozeScrimController dozeScrimController, + KeyguardViewMediator keyguardViewMediator, + ScrimController scrimController, + PhoneStatusBar phoneStatusBar) { + mPowerManager = context.getSystemService(PowerManager.class); + mUpdateMonitor = KeyguardUpdateMonitor.getInstance(context); + mUpdateMonitor.registerCallback(this); + mStatusBarWindowManager = statusBarWindowManager; + mDozeScrimController = dozeScrimController; + mKeyguardViewMediator = keyguardViewMediator; + mScrimController = scrimController; + mPhoneStatusBar = phoneStatusBar; + } + + public void setStatusBarKeyguardViewManager( + StatusBarKeyguardViewManager statusBarKeyguardViewManager) { + mStatusBarKeyguardViewManager = statusBarKeyguardViewManager; + } + + private final Runnable mReleaseFingerprintWakeLockRunnable = new Runnable() { + @Override + public void run() { + if (DEBUG_FP_WAKELOCK) { + Log.i(TAG, "fp wakelock: TIMEOUT!!"); + } + releaseFingerprintWakeLock(); + } + }; + + private void releaseFingerprintWakeLock() { + if (mWakeLock != null) { + mHandler.removeCallbacks(mReleaseFingerprintWakeLockRunnable); + if (DEBUG_FP_WAKELOCK) { + Log.i(TAG, "releasing fp wakelock"); + } + mWakeLock.release(); + mWakeLock = null; + } + } + + @Override + public void onFingerprintAcquired() { + releaseFingerprintWakeLock(); + if (!mUpdateMonitor.isDeviceInteractive()) { + mWakeLock = mPowerManager.newWakeLock( + PowerManager.PARTIAL_WAKE_LOCK, FINGERPRINT_WAKE_LOCK_NAME); + mWakeLock.acquire(); + if (DEBUG_FP_WAKELOCK) { + Log.i(TAG, "fingerprint acquired, grabbing fp wakelock"); + } + mHandler.postDelayed(mReleaseFingerprintWakeLockRunnable, + FINGERPRINT_WAKELOCK_TIMEOUT_MS); + if (mDozeScrimController.isPulsing()) { + + // If we are waking the device up while we are pulsing the clock and the + // notifications would light up first, creating an unpleasant animation. + // Defer changing the screen brightness by forcing doze brightness on our window + // until the clock and the notifications are faded out. + mStatusBarWindowManager.setForceDozeBrightness(true); + } + } + } + + @Override + public void onFingerprintAuthenticated(int userId) { + if (mUpdateMonitor.isGoingToSleep()) { + mPendingAuthenticatedUserId = userId; + return; + } + boolean wasDeviceInteractive = mUpdateMonitor.isDeviceInteractive(); + mMode = calculateMode(); + if (!wasDeviceInteractive) { + if (DEBUG_FP_WAKELOCK) { + Log.i(TAG, "fp wakelock: Authenticated, waking up..."); + } + mPowerManager.wakeUp(SystemClock.uptimeMillis()); + } + releaseFingerprintWakeLock(); + switch (mMode) { + case MODE_DISMISS_BOUNCER: + mStatusBarKeyguardViewManager.notifyKeyguardAuthenticated( + false /* strongAuth */); + break; + case MODE_UNLOCK: + case MODE_SHOW_BOUNCER: + if (!wasDeviceInteractive) { + mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested(); + } + mStatusBarKeyguardViewManager.animateCollapsePanels( + FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR); + break; + case MODE_WAKE_AND_UNLOCK_PULSING: + mPhoneStatusBar.updateMediaMetaData(false /* metaDataChanged */); + // Fall through. + case MODE_WAKE_AND_UNLOCK: + mStatusBarWindowManager.setStatusBarFocusable(false); + mDozeScrimController.abortPulsing(); + mKeyguardViewMediator.onWakeAndUnlocking(); + mScrimController.setWakeAndUnlocking(); + if (mPhoneStatusBar.getNavigationBarView() != null) { + mPhoneStatusBar.getNavigationBarView().setWakeAndUnlocking(true); + } + break; + case MODE_ONLY_WAKE: + case MODE_NONE: + break; + } + if (mMode != MODE_WAKE_AND_UNLOCK_PULSING) { + mStatusBarWindowManager.setForceDozeBrightness(false); + } + mPhoneStatusBar.notifyFpAuthModeChanged(); + } + + @Override + public void onStartedGoingToSleep(int why) { + mPendingAuthenticatedUserId = -1; + } + + @Override + public void onFinishedGoingToSleep(int why) { + if (mPendingAuthenticatedUserId != -1) { + + // Post this to make sure it's executed after the device is fully locked. + mHandler.post(new Runnable() { + @Override + public void run() { + onFingerprintAuthenticated(mPendingAuthenticatedUserId); + } + }); + } + mPendingAuthenticatedUserId = -1; + } + + public int getMode() { + return mMode; + } + + private int calculateMode() { + boolean unlockingAllowed = mUpdateMonitor.isUnlockingWithFingerprintAllowed(); + if (!mUpdateMonitor.isDeviceInteractive()) { + if (!mStatusBarKeyguardViewManager.isShowing()) { + return MODE_ONLY_WAKE; + } else if (mDozeScrimController.isPulsing() && unlockingAllowed) { + return MODE_WAKE_AND_UNLOCK_PULSING; + } else if (unlockingAllowed) { + return MODE_WAKE_AND_UNLOCK; + } else { + return MODE_SHOW_BOUNCER; + } + } + if (mStatusBarKeyguardViewManager.isShowing()) { + if (mStatusBarKeyguardViewManager.isBouncerShowing() && unlockingAllowed) { + return MODE_DISMISS_BOUNCER; + } else if (unlockingAllowed) { + return MODE_UNLOCK; + } else if (!mStatusBarKeyguardViewManager.isBouncerShowing()) { + return MODE_SHOW_BOUNCER; + } + } + return MODE_NONE; + } + + @Override + public void onFingerprintAuthFailed() { + cleanup(); + } + + @Override + public void onFingerprintError(int msgId, String errString) { + cleanup(); + } + + private void cleanup() { + mMode = MODE_NONE; + releaseFingerprintWakeLock(); + mStatusBarWindowManager.setForceDozeBrightness(false); + mPhoneStatusBar.notifyFpAuthModeChanged(); + } + + public void startKeyguardFadingAway() { + + // Disable brightness override when the ambient contents are fully invisible. + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + mStatusBarWindowManager.setForceDozeBrightness(false); + } + }, PhoneStatusBar.FADE_KEYGUARD_DURATION_PULSING); + } + + public void finishKeyguardFadingAway() { + mMode = MODE_NONE; + if (mPhoneStatusBar.getNavigationBarView() != null) { + mPhoneStatusBar.getNavigationBarView().setWakeAndUnlocking(false); + } + mPhoneStatusBar.notifyFpAuthModeChanged(); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java index 10019f91fc80..60ebfdf639ef 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java @@ -86,9 +86,9 @@ public class KeyguardAffordanceHelper { mContext = context; mCallback = callback; initIcons(); - updateIcon(mLeftIcon, 0.0f, mLeftIcon.getRestingAlpha(), false, false, true); - updateIcon(mCenterIcon, 0.0f, mCenterIcon.getRestingAlpha(), false, false, true); - updateIcon(mRightIcon, 0.0f, mRightIcon.getRestingAlpha(), false, false, true); + updateIcon(mLeftIcon, 0.0f, mLeftIcon.getRestingAlpha(), false, false, true, false); + updateIcon(mCenterIcon, 0.0f, mCenterIcon.getRestingAlpha(), false, false, true, false); + updateIcon(mRightIcon, 0.0f, mRightIcon.getRestingAlpha(), false, false, true, false); initDimens(); } @@ -144,9 +144,7 @@ public class KeyguardAffordanceHelper { } else { mTouchSlopExeeded = false; } - mCallback.onSwipingStarted(targetView == mRightIcon); - mSwipingInProgress = true; - mTargetedView = targetView; + startSwiping(targetView); mInitialTouchX = x; mInitialTouchY = y; mTranslationOnDown = mTranslation; @@ -192,6 +190,12 @@ public class KeyguardAffordanceHelper { return true; } + private void startSwiping(View targetView) { + mCallback.onSwipingStarted(targetView == mRightIcon); + mSwipingInProgress = true; + mTargetedView = targetView; + } + private View getIconAtPosition(float x, float y) { if (leftSwipePossible() && isOnIcon(mLeftIcon, x, y)) { return mLeftIcon; @@ -324,7 +328,7 @@ public class KeyguardAffordanceHelper { boolean velIsInWrongDirection = vel * mTranslation < 0; snapBack |= Math.abs(vel) > mMinFlingVelocity && velIsInWrongDirection; vel = snapBack ^ velIsInWrongDirection ? 0 : vel; - fling(vel, snapBack || forceSnapBack); + fling(vel, snapBack || forceSnapBack, mTranslation < 0); } private boolean isBelowFalsingThreshold() { @@ -336,9 +340,8 @@ public class KeyguardAffordanceHelper { return (int) (mMinTranslationAmount * factor); } - private void fling(float vel, final boolean snapBack) { - float target = mTranslation < 0 - ? -mCallback.getMaxTranslationDistance() + private void fling(float vel, final boolean snapBack, boolean right) { + float target = right ? -mCallback.getMaxTranslationDistance() : mCallback.getMaxTranslationDistance(); target = snapBack ? 0 : target; @@ -352,8 +355,8 @@ public class KeyguardAffordanceHelper { }); animator.addListener(mFlingEndListener); if (!snapBack) { - startFinishingCircleAnimation(vel * 0.375f, mAnimationEndRunnable); - mCallback.onAnimationToSideStarted(mTranslation < 0, mTranslation, vel); + startFinishingCircleAnimation(vel * 0.375f, mAnimationEndRunnable, right); + mCallback.onAnimationToSideStarted(right, mTranslation, vel); } else { reset(true); } @@ -364,8 +367,9 @@ public class KeyguardAffordanceHelper { } } - private void startFinishingCircleAnimation(float velocity, Runnable mAnimationEndRunnable) { - KeyguardAffordanceView targetView = mTranslation > 0 ? mLeftIcon : mRightIcon; + private void startFinishingCircleAnimation(float velocity, Runnable mAnimationEndRunnable, + boolean right) { + KeyguardAffordanceView targetView = right ? mRightIcon : mLeftIcon; targetView.finishAnimation(velocity, mAnimationEndRunnable); } @@ -383,19 +387,20 @@ public class KeyguardAffordanceHelper { fadeOutAlpha = Math.max(fadeOutAlpha, 0.0f); boolean animateIcons = isReset && animateReset; + boolean forceNoCircleAnimation = isReset && !animateReset; float radius = getRadiusFromTranslation(absTranslation); boolean slowAnimation = isReset && isBelowFalsingThreshold(); if (!isReset) { updateIcon(targetView, radius, alpha + fadeOutAlpha * targetView.getRestingAlpha(), - false, false, false); + false, false, false, false); } else { updateIcon(targetView, 0.0f, fadeOutAlpha * targetView.getRestingAlpha(), - animateIcons, slowAnimation, false); + animateIcons, slowAnimation, false, forceNoCircleAnimation); } updateIcon(otherView, 0.0f, fadeOutAlpha * otherView.getRestingAlpha(), - animateIcons, slowAnimation, false); + animateIcons, slowAnimation, false, forceNoCircleAnimation); updateIcon(mCenterIcon, 0.0f, fadeOutAlpha * mCenterIcon.getRestingAlpha(), - animateIcons, slowAnimation, false); + animateIcons, slowAnimation, false, forceNoCircleAnimation); mTranslation = translation; } @@ -431,16 +436,21 @@ public class KeyguardAffordanceHelper { public void animateHideLeftRightIcon() { cancelAnimation(); - updateIcon(mRightIcon, 0f, 0f, true, false, false); - updateIcon(mLeftIcon, 0f, 0f, true, false, false); + updateIcon(mRightIcon, 0f, 0f, true, false, false, false); + updateIcon(mLeftIcon, 0f, 0f, true, false, false, false); } private void updateIcon(KeyguardAffordanceView view, float circleRadius, float alpha, - boolean animate, boolean slowRadiusAnimation, boolean force) { + boolean animate, boolean slowRadiusAnimation, boolean force, + boolean forceNoCircleAnimation) { if (view.getVisibility() != View.VISIBLE && !force) { return; } - view.setCircleRadius(circleRadius, slowRadiusAnimation); + if (forceNoCircleAnimation) { + view.setCircleRadiusWithoutAnimation(circleRadius); + } else { + view.setCircleRadius(circleRadius, slowRadiusAnimation); + } updateIconAlpha(view, alpha, animate); } @@ -503,8 +513,36 @@ public class KeyguardAffordanceHelper { mMotionCancelled = true; if (mSwipingInProgress) { mCallback.onSwipingAborted(); + mSwipingInProgress = false; + } + } + + public boolean isSwipingInProgress() { + return mSwipingInProgress; + } + + public void launchAffordance(boolean animate, boolean left) { + if (mSwipingInProgress) { + // We don't want to mess with the state if the user is actually swiping already. + return; + } + KeyguardAffordanceView targetView = left ? mLeftIcon : mRightIcon; + KeyguardAffordanceView otherView = left ? mRightIcon : mLeftIcon; + startSwiping(targetView); + if (animate) { + fling(0, false, !left); + updateIcon(otherView, 0.0f, 0, true, false, true, false); + updateIcon(mCenterIcon, 0.0f, 0, true, false, true, false); + } else { + mCallback.onAnimationToSideStarted(!left, mTranslation, 0); + mTranslation = left ? mCallback.getMaxTranslationDistance() + : mCallback.getMaxTranslationDistance(); + updateIcon(mCenterIcon, 0.0f, 0.0f, false, false, true, false); + updateIcon(otherView, 0.0f, 0.0f, false, false, true, false); + targetView.instantFinishAnimation(); + mFlingEndListener.onAnimationEnd(null); + mAnimationEndRunnable.run(); } - mSwipingInProgress = false; } public interface Callback { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java index 1a2fa9726414..14176a6f5b3c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java @@ -29,7 +29,6 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; -import android.hardware.fingerprint.FingerprintManager; import android.os.AsyncTask; import android.os.Bundle; import android.os.IBinder; @@ -78,15 +77,21 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL final static String TAG = "PhoneStatusBar/KeyguardBottomAreaView"; + public static final String CAMERA_LAUNCH_SOURCE_AFFORDANCE = "lockscreen_affordance"; + public static final String CAMERA_LAUNCH_SOURCE_WIGGLE = "wiggle_gesture"; + public static final String CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP = "power_double_tap"; + + public static final String EXTRA_CAMERA_LAUNCH_SOURCE + = "com.android.systemui.camera_launch_source"; + private static final Intent SECURE_CAMERA_INTENT = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE) .addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - private static final Intent INSECURE_CAMERA_INTENT = + public static final Intent INSECURE_CAMERA_INTENT = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); private static final Intent PHONE_INTENT = new Intent(Intent.ACTION_DIAL); private static final int DOZE_ANIMATION_STAGGER_DELAY = 48; private static final int DOZE_ANIMATION_ELEMENT_DURATION = 250; - private static final long TRANSIENT_FP_ERROR_TIMEOUT = 1300; private KeyguardAffordanceView mCameraImageView; private KeyguardAffordanceView mLeftAffordanceView; @@ -172,7 +177,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, true /* force */); return true; } else if (host == mCameraImageView) { - launchCamera(); + launchCamera(CAMERA_LAUNCH_SOURCE_AFFORDANCE); return true; } else if (host == mLeftAffordanceView) { launchLeftAffordance(); @@ -264,14 +269,21 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL return (secure && !canSkipBouncer) ? SECURE_CAMERA_INTENT : INSECURE_CAMERA_INTENT; } + /** + * Resolves the intent to launch the camera application. + */ + public ResolveInfo resolveCameraIntent() { + return mContext.getPackageManager().resolveActivityAsUser(getCameraIntent(), + PackageManager.MATCH_DEFAULT_ONLY, + KeyguardUpdateMonitor.getCurrentUser()); + } + private void updateCameraVisibility() { if (mCameraImageView == null) { // Things are not set up yet; reply hazy, ask again later return; } - ResolveInfo resolved = mContext.getPackageManager().resolveActivityAsUser(getCameraIntent(), - PackageManager.MATCH_DEFAULT_ONLY, - KeyguardUpdateMonitor.getCurrentUser()); + ResolveInfo resolved = resolveCameraIntent(); boolean visible = !isCameraDisabledByDpm() && resolved != null && getResources().getBoolean(R.bool.config_keyguardShowCameraAffordance) && mUserSetupComplete; @@ -344,7 +356,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL @Override public void onClick(View v) { if (v == mCameraImageView) { - launchCamera(); + launchCamera(CAMERA_LAUNCH_SOURCE_AFFORDANCE); } else if (v == mLeftAffordanceView) { launchLeftAffordance(); } if (v == mLockIcon) { @@ -385,7 +397,8 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL serviceIntent.setAction(CameraPrewarmService.ACTION_PREWARM); try { if (getContext().bindServiceAsUser(serviceIntent, mPrewarmConnection, - Context.BIND_AUTO_CREATE, new UserHandle(UserHandle.USER_CURRENT))) { + Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE, + new UserHandle(UserHandle.USER_CURRENT))) { mPrewarmBound = true; } } catch (SecurityException e) { @@ -411,8 +424,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL } } - public void launchCamera() { + public void launchCamera(String source) { final Intent intent = getCameraIntent(); + intent.putExtra(EXTRA_CAMERA_LAUNCH_SOURCE, source); boolean wouldLaunchResolverActivity = PreviewInflater.wouldLaunchResolverActivity( mContext, intent, KeyguardUpdateMonitor.getCurrentUser()); if (intent == SECURE_CAMERA_INTENT && !wouldLaunchResolverActivity) { @@ -528,7 +542,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL return mCameraPreview; } - public KeyguardAffordanceView getLockIcon() { + public LockIcon getLockIcon() { return mLockIcon; } @@ -613,21 +627,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL } }; - private final Runnable mTransientFpErrorClearRunnable = new Runnable() { - @Override - public void run() { - mLockIcon.setTransientFpError(false); - mIndicationController.hideTransientIndication(); - } - }; - - private final Runnable mHideTransientIndicationRunnable = new Runnable() { - @Override - public void run() { - mIndicationController.hideTransientIndication(); - } - }; - private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { @Override @@ -646,42 +645,28 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL } @Override - public void onKeyguardVisibilityChanged(boolean showing) { - mLockIcon.update(); + public void onScreenTurnedOn() { + mLockIcon.setScreenOn(true); } @Override - public void onFingerprintAuthenticated(int userId, boolean wakeAndUnlocking) { + public void onScreenTurnedOff() { + mLockIcon.setScreenOn(false); } @Override - public void onFingerprintRunningStateChanged(boolean running) { + public void onKeyguardVisibilityChanged(boolean showing) { mLockIcon.update(); } @Override - public void onFingerprintHelp(int msgId, String helpString) { - if (!KeyguardUpdateMonitor.getInstance(mContext).isUnlockingWithFingerprintAllowed()) { - return; - } - mLockIcon.setTransientFpError(true); - mIndicationController.showTransientIndication(helpString, - getResources().getColor(R.color.system_warning_color, null)); - removeCallbacks(mTransientFpErrorClearRunnable); - postDelayed(mTransientFpErrorClearRunnable, TRANSIENT_FP_ERROR_TIMEOUT); + public void onFingerprintRunningStateChanged(boolean running) { + mLockIcon.update(); } @Override - public void onFingerprintError(int msgId, String errString) { - if (!KeyguardUpdateMonitor.getInstance(mContext).isUnlockingWithFingerprintAllowed() - || msgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) { - return; - } - // TODO: Go to bouncer if this is "too many attempts" (lockout) error. - mIndicationController.showTransientIndication(errString, - getResources().getColor(R.color.system_warning_color, null)); - removeCallbacks(mHideTransientIndicationRunnable); - postDelayed(mHideTransientIndicationRunnable, 5000); + public void onStrongAuthStateChanged(int userId) { + mLockIcon.update(); } }; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java index e9b2c611ae34..893b352f479b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java @@ -17,7 +17,6 @@ package com.android.systemui.statusbar.phone; import android.content.Context; -import android.view.Choreographer; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; @@ -27,6 +26,8 @@ import android.view.accessibility.AccessibilityEvent; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardHostView; import com.android.keyguard.KeyguardSecurityView; +import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.R; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.DejankUtils; @@ -48,6 +49,13 @@ public class KeyguardBouncer { private ViewGroup mRoot; private boolean mShowingSoon; private int mBouncerPromptReason; + private KeyguardUpdateMonitorCallback mUpdateMonitorCallback = + new KeyguardUpdateMonitorCallback() { + @Override + public void onStrongAuthStateChanged(int userId) { + mBouncerPromptReason = mCallback.getBouncerPromptReason(); + } + }; public KeyguardBouncer(Context context, ViewMediatorCallback callback, LockPatternUtils lockPatternUtils, StatusBarWindowManager windowManager, @@ -57,6 +65,7 @@ public class KeyguardBouncer { mLockPatternUtils = lockPatternUtils; mContainer = container; mWindowManager = windowManager; + KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateMonitorCallback); } public void show(boolean resetSecuritySelection) { @@ -103,6 +112,10 @@ public class KeyguardBouncer { mKeyguardView.showPromptReason(reason); } + public void showMessage(String message, int color) { + mKeyguardView.showMessage(message, color); + } + private void cancelShowRunnable() { DejankUtils.removeCallbacks(mShowRunnable); mShowingSoon = false; @@ -244,8 +257,8 @@ public class KeyguardBouncer { return mKeyguardView.interceptMediaKey(event); } - public void notifyKeyguardAuthenticated() { + public void notifyKeyguardAuthenticated(boolean strongAuth) { ensureView(); - mKeyguardView.finish(); + mKeyguardView.finish(strongAuth); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java index 06d2fca442f0..8e58d14a6e14 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -34,12 +34,6 @@ import com.android.systemui.statusbar.policy.AccessibilityController; */ public class LockIcon extends KeyguardAffordanceView { - /** - * Delay animations a bit when the screen just turned on as a heuristic to start them after - * the screen has actually turned on. - */ - private static final long ANIM_DELAY_AFTER_SCREEN_ON = 250; - private static final int STATE_LOCKED = 0; private static final int STATE_LOCK_OPEN = 1; private static final int STATE_FACE_UNLOCK = 2; @@ -50,6 +44,8 @@ public class LockIcon extends KeyguardAffordanceView { private boolean mLastDeviceInteractive; private boolean mTransientFpError; private boolean mDeviceInteractive; + private boolean mScreenOn; + private boolean mLastScreenOn; private final TrustDrawable mTrustDrawable; private final UnlockMethodCache mUnlockMethodCache; private AccessibilityController mAccessibilityController; @@ -88,6 +84,11 @@ public class LockIcon extends KeyguardAffordanceView { update(); } + public void setScreenOn(boolean screenOn) { + mScreenOn = screenOn; + update(); + } + public void update() { boolean visible = isShown() && KeyguardUpdateMonitor.getInstance(mContext).isDeviceInteractive(); @@ -96,20 +97,32 @@ public class LockIcon extends KeyguardAffordanceView { } else { mTrustDrawable.stop(); } - if (!visible) { - return; - } // TODO: Real icon for facelock. int state = getState(); boolean anyFingerprintIcon = state == STATE_FINGERPRINT || state == STATE_FINGERPRINT_ERROR; - if (state != mLastState || mDeviceInteractive != mLastDeviceInteractive) { + boolean useAdditionalPadding = anyFingerprintIcon; + boolean trustHidden = anyFingerprintIcon; + if (state != mLastState || mDeviceInteractive != mLastDeviceInteractive + || mScreenOn != mLastScreenOn) { + boolean isAnim = true; int iconRes = getAnimationResForTransition(mLastState, state, mLastDeviceInteractive, - mDeviceInteractive); + mDeviceInteractive, mLastScreenOn, mScreenOn); if (iconRes == R.drawable.lockscreen_fingerprint_draw_off_animation) { anyFingerprintIcon = true; + useAdditionalPadding = true; + trustHidden = true; + } else if (iconRes == R.drawable.trusted_state_to_error_animation) { + anyFingerprintIcon = true; + useAdditionalPadding = false; + trustHidden = true; + } else if (iconRes == R.drawable.error_to_trustedstate_animation) { + anyFingerprintIcon = true; + useAdditionalPadding = false; + trustHidden = false; } if (iconRes == -1) { - iconRes = getIconForState(state); + iconRes = getIconForState(state, mScreenOn, mDeviceInteractive); + isAnim = false; } Drawable icon = mContext.getDrawable(iconRes); final AnimatedVectorDrawable animation = icon instanceof AnimatedVectorDrawable @@ -123,7 +136,7 @@ public class LockIcon extends KeyguardAffordanceView { || icon.getIntrinsicWidth() != iconWidth)) { icon = new IntrinsicSizeDrawable(icon, iconWidth, iconHeight); } - setPaddingRelative(0, 0, 0, anyFingerprintIcon + setPaddingRelative(0, 0, 0, useAdditionalPadding ? getResources().getDimensionPixelSize( R.dimen.fingerprint_icon_additional_padding) : 0); @@ -135,27 +148,16 @@ public class LockIcon extends KeyguardAffordanceView { : R.string.accessibility_unlock_button); setContentDescription(contentDescription); mHasFingerPrintIcon = anyFingerprintIcon; - if (animation != null) { - - // If we play the draw on animation, delay it by one frame when the screen is - // actually turned on. - if (iconRes == R.drawable.lockscreen_fingerprint_draw_on_animation) { - postOnAnimationDelayed(new Runnable() { - @Override - public void run() { - animation.start(); - } - }, ANIM_DELAY_AFTER_SCREEN_ON); - } else { - animation.start(); - } + if (animation != null && isAnim) { + animation.start(); } mLastState = state; mLastDeviceInteractive = mDeviceInteractive; + mLastScreenOn = mScreenOn; } // Hide trust circle when fingerprint is running. - boolean trustManaged = mUnlockMethodCache.isTrustManaged() && !anyFingerprintIcon; + boolean trustManaged = mUnlockMethodCache.isTrustManaged() && !trustHidden; mTrustDrawable.setTrustManaged(trustManaged); updateClickability(); } @@ -192,7 +194,7 @@ public class LockIcon extends KeyguardAffordanceView { mAccessibilityController = accessibilityController; } - private int getIconForState(int state) { + private int getIconForState(int state, boolean screenOn, boolean deviceInteractive) { switch (state) { case STATE_LOCKED: return R.drawable.ic_lock_24dp; @@ -201,7 +203,11 @@ public class LockIcon extends KeyguardAffordanceView { case STATE_FACE_UNLOCK: return com.android.internal.R.drawable.ic_account_circle; case STATE_FINGERPRINT: - return R.drawable.ic_fingerprint; + // If screen is off and device asleep, use the draw on animation so the first frame + // gets drawn. + return screenOn && deviceInteractive + ? R.drawable.ic_fingerprint + : R.drawable.lockscreen_fingerprint_draw_on_animation; case STATE_FINGERPRINT_ERROR: return R.drawable.ic_fingerprint_error; default: @@ -209,16 +215,22 @@ public class LockIcon extends KeyguardAffordanceView { } } - private int getAnimationResForTransition(int oldState, int newState, boolean oldScreenOn, - boolean screenOn) { + private int getAnimationResForTransition(int oldState, int newState, + boolean oldDeviceInteractive, boolean deviceInteractive, + boolean oldScreenOn, boolean screenOn) { if (oldState == STATE_FINGERPRINT && newState == STATE_FINGERPRINT_ERROR) { return R.drawable.lockscreen_fingerprint_fp_to_error_state_animation; + } else if (oldState == STATE_LOCK_OPEN && newState == STATE_FINGERPRINT_ERROR) { + return R.drawable.trusted_state_to_error_animation; + } else if (oldState == STATE_FINGERPRINT_ERROR && newState == STATE_LOCK_OPEN) { + return R.drawable.error_to_trustedstate_animation; } else if (oldState == STATE_FINGERPRINT_ERROR && newState == STATE_FINGERPRINT) { return R.drawable.lockscreen_fingerprint_error_state_to_fp_animation; } else if (oldState == STATE_FINGERPRINT && newState == STATE_LOCK_OPEN && !mUnlockMethodCache.isTrusted()) { return R.drawable.lockscreen_fingerprint_draw_off_animation; - } else if (newState == STATE_FINGERPRINT && !oldScreenOn && screenOn) { + } else if (newState == STATE_FINGERPRINT && (!oldScreenOn && screenOn && deviceInteractive + || screenOn && !oldDeviceInteractive && deviceInteractive)) { return R.drawable.lockscreen_fingerprint_draw_on_animation; } else { return -1; @@ -229,14 +241,14 @@ public class LockIcon extends KeyguardAffordanceView { KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(mContext); boolean fingerprintRunning = updateMonitor.isFingerprintDetectionRunning(); boolean unlockingAllowed = updateMonitor.isUnlockingWithFingerprintAllowed(); - if (mUnlockMethodCache.canSkipBouncer()) { - return STATE_LOCK_OPEN; - } else if (mTransientFpError) { + if (mTransientFpError) { return STATE_FINGERPRINT_ERROR; - } else if (fingerprintRunning && unlockingAllowed) { - return STATE_FINGERPRINT; + } else if (mUnlockMethodCache.canSkipBouncer()) { + return STATE_LOCK_OPEN; } else if (mUnlockMethodCache.isFaceUnlockRunning()) { return STATE_FACE_UNLOCK; + } else if (fingerprintRunning && unlockingAllowed) { + return STATE_FINGERPRINT; } else { return STATE_LOCKED; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 059ecee833a1..8046eb5ebfb8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -91,7 +91,8 @@ public class NavigationBarView extends LinearLayout { private OnVerticalChangedListener mOnVerticalChangedListener; private boolean mIsLayoutRtl; - private boolean mLayoutTransitionsEnabled; + private boolean mLayoutTransitionsEnabled = true; + private boolean mWakeAndUnlocking; private class NavTransitionListener implements TransitionListener { private boolean mBackTransitioning; @@ -256,11 +257,11 @@ public class NavigationBarView extends LinearLayout { private void getIcons(Resources res) { mBackIcon = res.getDrawable(R.drawable.ic_sysbar_back); - mBackLandIcon = res.getDrawable(R.drawable.ic_sysbar_back_land); + mBackLandIcon = mBackIcon; mBackAltIcon = res.getDrawable(R.drawable.ic_sysbar_back_ime); - mBackAltLandIcon = res.getDrawable(R.drawable.ic_sysbar_back_ime_land); + mBackAltLandIcon = mBackAltIcon; mRecentIcon = res.getDrawable(R.drawable.ic_sysbar_recent); - mRecentLandIcon = res.getDrawable(R.drawable.ic_sysbar_recent_land); + mRecentLandIcon = mRecentIcon; } @Override @@ -361,13 +362,19 @@ public class NavigationBarView extends LinearLayout { } } + public void setLayoutTransitionsEnabled(boolean enabled) { + mLayoutTransitionsEnabled = enabled; + updateLayoutTransitionsEnabled(); + } + public void setWakeAndUnlocking(boolean wakeAndUnlocking) { setUseFadingAnimations(wakeAndUnlocking); - setLayoutTransitionsEnabled(!wakeAndUnlocking); + mWakeAndUnlocking = wakeAndUnlocking; + updateLayoutTransitionsEnabled(); } - private void setLayoutTransitionsEnabled(boolean enabled) { - mLayoutTransitionsEnabled = enabled; + private void updateLayoutTransitionsEnabled() { + boolean enabled = !mWakeAndUnlocking && mLayoutTransitionsEnabled; ViewGroup navButtons = (ViewGroup) mCurrentView.findViewById(R.id.nav_buttons); LayoutTransition lt = navButtons.getLayoutTransition(); if (lt != null) { @@ -459,7 +466,7 @@ public class NavigationBarView extends LinearLayout { } mCurrentView = mRotatedViews[rot]; mCurrentView.setVisibility(View.VISIBLE); - setLayoutTransitionsEnabled(mLayoutTransitionsEnabled); + updateLayoutTransitionsEnabled(); getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java index 950b1627475d..310625e78288 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationGroupManager.java @@ -78,6 +78,13 @@ public class NotificationGroupManager { Notification notif = sbn.getNotification(); String groupKey = sbn.getGroupKey(); final NotificationGroup group = mGroupMap.get(groupKey); + if (group == null) { + // When an app posts 2 different notifications as summary of the same group, then a + // cancellation of the first notification removes this group. + // This situation is not supported and we will not allow such notifications anymore in + // the close future. See b/23676310 for reference. + return; + } if (notif.isGroupSummary()) { group.summary = null; } else { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 373abe5cc00b..bdd2c73bd674 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -21,7 +21,10 @@ import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.PropertyValuesHolder; import android.animation.ValueAnimator; +import android.app.ActivityManager; +import android.app.StatusBarManager; import android.content.Context; +import android.content.pm.ResolveInfo; import android.content.res.Configuration; import android.graphics.Canvas; import android.graphics.Color; @@ -61,6 +64,8 @@ import com.android.systemui.statusbar.policy.KeyguardUserSwitcher; import com.android.systemui.statusbar.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.stack.StackStateAnimator; +import java.util.List; + public class NotificationPanelView extends PanelView implements ExpandableView.OnHeightChangedListener, ObservableScrollView.Listener, View.OnClickListener, NotificationStackScrollLayout.OnOverscrollTopChangedListener, @@ -106,12 +111,6 @@ public class NotificationPanelView extends PanelView implements private boolean mQsTracking; /** - * Handles launching the secure camera properly even when other applications may be using the - * camera hardware. - */ - private SecureCameraLaunchManager mSecureCameraLaunchManager; - - /** * If set, the ongoing touch gesture might both trigger the expansion in {@link PanelView} and * the expansion for quick settings. */ @@ -203,6 +202,8 @@ public class NotificationPanelView extends PanelView implements private int mLastOrientation = -1; private boolean mClosingWithAlphaFadeOut; private boolean mHeadsUpAnimatingAway; + private boolean mLaunchingAffordance; + private String mLastCameraLaunchSource = KeyguardBottomAreaView.CAMERA_LAUNCH_SOURCE_AFFORDANCE; private Runnable mHeadsUpExistenceChangedRunnable = new Runnable() { @Override @@ -256,8 +257,6 @@ public class NotificationPanelView extends PanelView implements mKeyguardBottomArea = (KeyguardBottomAreaView) findViewById(R.id.keyguard_bottom_area); mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim); mAfforanceHelper = new KeyguardAffordanceHelper(this, getContext()); - mSecureCameraLaunchManager = - new SecureCameraLaunchManager(getContext(), mKeyguardBottomArea); mLastOrientation = getResources().getConfiguration().orientation; // recompute internal state when qspanel height changes @@ -362,16 +361,6 @@ public class NotificationPanelView extends PanelView implements updateMaxHeadsUpTranslation(); } - @Override - public void onAttachedToWindow() { - mSecureCameraLaunchManager.create(); - } - - @Override - public void onDetachedFromWindow() { - mSecureCameraLaunchManager.destroy(); - } - private void startQsSizeChangeAnimation(int oldHeight, final int newHeight) { if (mQsSizeChangeAnimator != null) { oldHeight = (int) mQsSizeChangeAnimator.getAnimatedValue(); @@ -488,7 +477,10 @@ public class NotificationPanelView extends PanelView implements mIsLaunchTransitionFinished = false; mBlockTouches = false; mUnlockIconActive = false; - mAfforanceHelper.reset(true); + if (!mLaunchingAffordance) { + mAfforanceHelper.reset(false); + mLastCameraLaunchSource = KeyguardBottomAreaView.CAMERA_LAUNCH_SOURCE_AFFORDANCE; + } closeQs(); mStatusBar.dismissPopups(); mNotificationStackScroller.setOverScrollAmount(0f, true /* onTop */, false /* animate */, @@ -918,7 +910,7 @@ public class NotificationPanelView extends PanelView implements } private int getFalsingThreshold() { - float factor = mStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + float factor = mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; return (int) (mQsFalsingThreshold * factor); } @@ -1953,9 +1945,13 @@ public class NotificationPanelView extends PanelView implements EventLogConstants.SYSUI_LOCKSCREEN_GESTURE_SWIPE_DIALER, lengthDp, velocityDp); mKeyguardBottomArea.launchLeftAffordance(); } else { - EventLogTags.writeSysuiLockscreenGesture( - EventLogConstants.SYSUI_LOCKSCREEN_GESTURE_SWIPE_CAMERA, lengthDp, velocityDp); - mSecureCameraLaunchManager.startSecureCameraLaunch(); + if (KeyguardBottomAreaView.CAMERA_LAUNCH_SOURCE_AFFORDANCE.equals( + mLastCameraLaunchSource)) { + EventLogTags.writeSysuiLockscreenGesture( + EventLogConstants.SYSUI_LOCKSCREEN_GESTURE_SWIPE_CAMERA, + lengthDp, velocityDp); + } + mKeyguardBottomArea.launchCamera(mLastCameraLaunchSource); } mStatusBar.startLaunchTransitionTimeout(); mBlockTouches = true; @@ -2002,7 +1998,6 @@ public class NotificationPanelView extends PanelView implements boolean camera = getLayoutDirection() == LAYOUT_DIRECTION_RTL ? !rightIcon : rightIcon; if (camera) { - mSecureCameraLaunchManager.onSwipingStarted(); mKeyguardBottomArea.bindCameraPrewarmService(); } requestDisallowInterceptTouchEvent(true); @@ -2075,7 +2070,7 @@ public class NotificationPanelView extends PanelView implements @Override public float getAffordanceFalsingFactor() { - return mStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + return mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; } @Override @@ -2388,4 +2383,72 @@ public class NotificationPanelView extends PanelView implements protected boolean isPanelVisibleBecauseOfHeadsUp() { return mHeadsUpManager.hasPinnedHeadsUp() || mHeadsUpAnimatingAway; } + + @Override + public boolean hasOverlappingRendering() { + return !mDozing; + } + + public void launchCamera(boolean animate, int source) { + if (source == StatusBarManager.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP) { + mLastCameraLaunchSource = KeyguardBottomAreaView.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP; + } else if (source == StatusBarManager.CAMERA_LAUNCH_SOURCE_WIGGLE) { + mLastCameraLaunchSource = KeyguardBottomAreaView.CAMERA_LAUNCH_SOURCE_WIGGLE; + } else { + + // Default. + mLastCameraLaunchSource = KeyguardBottomAreaView.CAMERA_LAUNCH_SOURCE_AFFORDANCE; + } + + // If we are launching it when we are occluded already we don't want it to animate, + // nor setting these flags, since the occluded state doesn't change anymore, hence it's + // never reset. + if (!isFullyCollapsed()) { + mLaunchingAffordance = true; + setLaunchingAffordance(true); + } else { + animate = false; + } + mAfforanceHelper.launchAffordance(animate, getLayoutDirection() == LAYOUT_DIRECTION_RTL); + } + + public void onAffordanceLaunchEnded() { + mLaunchingAffordance = false; + setLaunchingAffordance(false); + } + + /** + * Set whether we are currently launching an affordance. This is currently only set when + * launched via a camera gesture. + */ + private void setLaunchingAffordance(boolean launchingAffordance) { + getLeftIcon().setLaunchingAffordance(launchingAffordance); + getRightIcon().setLaunchingAffordance(launchingAffordance); + getCenterIcon().setLaunchingAffordance(launchingAffordance); + } + + /** + * Whether the camera application can be launched for the camera launch gesture. + * + * @param keyguardIsShowing whether keyguard is being shown + */ + public boolean canCameraGestureBeLaunched(boolean keyguardIsShowing) { + ResolveInfo resolveInfo = mKeyguardBottomArea.resolveCameraIntent(); + String packageToLaunch = (resolveInfo == null || resolveInfo.activityInfo == null) + ? null : resolveInfo.activityInfo.packageName; + return packageToLaunch != null && + (keyguardIsShowing || !isForegroundApp(packageToLaunch)) && + !mAfforanceHelper.isSwipingInProgress(); + } + + /** + * Return true if the applications with the package name is running in foreground. + * + * @param pkgName application package name. + */ + private boolean isForegroundApp(String pkgName) { + ActivityManager am = getContext().getSystemService(ActivityManager.class); + List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1); + return !tasks.isEmpty() && pkgName.equals(tasks.get(0).topActivity.getPackageName()); + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java index 8b25e0814cb5..c6743e772be9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -382,7 +382,7 @@ public abstract class PanelView extends FrameLayout { || forceCancel; DozeLog.traceFling(expand, mTouchAboveFalsingThreshold, mStatusBar.isFalsingThresholdNeeded(), - mStatusBar.isScreenOnComingFromTouch()); + mStatusBar.isWakeUpComingFromTouch()); // Log collapse gesture if on lock screen. if (!expand && mStatusBar.getBarState() == StatusBarState.KEYGUARD) { float displayDensity = mStatusBar.getDisplayDensity(); @@ -411,7 +411,7 @@ public abstract class PanelView extends FrameLayout { } private int getFalsingThreshold() { - float factor = mStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + float factor = mStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; return (int) (mUnlockFalsingThreshold * factor); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 18cf95b31757..8465101fd0d1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -66,6 +66,7 @@ import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserManager; +import android.os.Vibrator; import android.provider.Settings; import android.service.notification.NotificationListenerService; import android.service.notification.NotificationListenerService.RankingMap; @@ -99,6 +100,7 @@ import com.android.internal.statusbar.NotificationVisibility; import com.android.internal.statusbar.StatusBarIcon; import com.android.keyguard.KeyguardHostView.OnDismissAction; import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.BatteryMeterView; import com.android.systemui.DemoMode; @@ -153,6 +155,7 @@ import com.android.systemui.statusbar.policy.UserSwitcherController; import com.android.systemui.statusbar.policy.ZenModeController; import com.android.systemui.statusbar.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.stack.NotificationStackScrollLayout.OnChildLocationsChangedListener; +import com.android.systemui.statusbar.stack.StackStateAnimator; import com.android.systemui.statusbar.stack.StackViewState; import com.android.systemui.volume.VolumeComponent; @@ -230,6 +233,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public static final int FADE_KEYGUARD_START_DELAY = 100; public static final int FADE_KEYGUARD_DURATION = 300; + public static final int FADE_KEYGUARD_DURATION_PULSING = 96; /** Allow some time inbetween the long press for back and recents. */ private static final int LOCK_TO_APP_GESTURE_TOLERENCE = 200; @@ -270,6 +274,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, KeyguardMonitor mKeyguardMonitor; BrightnessMirrorController mBrightnessMirrorController; AccessibilityController mAccessibilityController; + FingerprintUnlockController mFingerprintUnlockController; int mNaturalBarHeight = -1; @@ -282,8 +287,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private StatusBarWindowManager mStatusBarWindowManager; private UnlockMethodCache mUnlockMethodCache; private DozeServiceHost mDozeServiceHost; - private boolean mScreenOnComingFromTouch; - private PointF mScreenOnTouchLocation; + private boolean mWakeUpComingFromTouch; + private PointF mWakeUpTouchLocation; + private boolean mScreenTurningOn; int mPixelFormat; Object mQueueLock = new Object(); @@ -306,6 +312,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, boolean mLeaveOpenOnKeyguardHide; KeyguardIndicationController mKeyguardIndicationController; + // Keyguard is going away soon. + private boolean mKeyguardGoingAway; + // Keyguard is actually fading away now. private boolean mKeyguardFadingAway; private long mKeyguardFadingAwayDelay; private long mKeyguardFadingAwayDuration; @@ -478,10 +487,20 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private Runnable mLaunchTransitionEndRunnable; private boolean mLaunchTransitionFadingAway; private ExpandableNotificationRow mDraggedDownRow; + private boolean mLaunchCameraOnScreenTurningOn; + private boolean mLaunchCameraOnFinishedGoingToSleep; + private int mLastCameraLaunchSource; + private PowerManager.WakeLock mGestureWakeLock; + private Vibrator mVibrator; // Fingerprint (as computed by getLoggingFingerprint() of the last logged state. private int mLastLoggedStateFingerprint; + /** + * If set, the device has started going to sleep but isn't fully non-interactive yet. + */ + protected boolean mStartedGoingToSleep; + private static final int VISIBLE_LOCATIONS = StackViewState.LOCATION_FIRST_CARD | StackViewState.LOCATION_MAIN_AREA; @@ -621,6 +640,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, startKeyguard(); mDozeServiceHost = new DozeServiceHost(); + KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mDozeServiceHost); putComponent(DozeHost.class, mDozeServiceHost); putComponent(PhoneStatusBar.class, this); @@ -780,7 +800,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mKeyguardBottomArea.setAssistManager(mAssistManager); mKeyguardIndicationController = new KeyguardIndicationController(mContext, (KeyguardIndicationTextView) mStatusBarWindow.findViewById( - R.id.keyguard_indication_text)); + R.id.keyguard_indication_text), + mKeyguardBottomArea.getLockIcon()); mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController); // set the inital view visibility @@ -897,7 +918,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mBroadcastReceiver.onReceive(mContext, new Intent(pm.isScreenOn() ? Intent.ACTION_SCREEN_ON : Intent.ACTION_SCREEN_OFF)); - + mGestureWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, + "GestureWakeLock"); + mVibrator = mContext.getSystemService(Vibrator.class); // receive broadcasts IntentFilter filter = new IntentFilter(); @@ -1009,8 +1032,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void startKeyguard() { KeyguardViewMediator keyguardViewMediator = getComponent(KeyguardViewMediator.class); + mFingerprintUnlockController = new FingerprintUnlockController(mContext, + mStatusBarWindowManager, mDozeScrimController, keyguardViewMediator, + mScrimController, this); mStatusBarKeyguardViewManager = keyguardViewMediator.registerStatusBar(this, - mStatusBarWindow, mStatusBarWindowManager, mScrimController); + mStatusBarWindow, mStatusBarWindowManager, mScrimController, + mFingerprintUnlockController); + mKeyguardIndicationController.setStatusBarKeyguardViewManager( + mStatusBarKeyguardViewManager); + mFingerprintUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback(); } @@ -1681,7 +1711,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, final boolean hasArtwork = artworkBitmap != null; if ((hasArtwork || DEBUG_MEDIA_FAKE_ARTWORK) - && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) { + && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) + && mFingerprintUnlockController.getMode() + != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING) { // time to show some art! if (mBackdrop.getVisibility() != View.VISIBLE) { mBackdrop.setVisibility(View.VISIBLE); @@ -1736,31 +1768,40 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (DEBUG_MEDIA) { Log.v(TAG, "DEBUG_MEDIA: Fading out album artwork"); } - mBackdrop.animate() - // Never let the alpha become zero - otherwise the RenderNode - // won't draw anything and uninitialized memory will show through - // if mScrimSrcModeEnabled. Note that 0.001 is rounded down to 0 in libhwui. - .alpha(0.002f) - .setInterpolator(mBackdropInterpolator) - .setDuration(300) - .setStartDelay(0) - .withEndAction(new Runnable() { - @Override - public void run() { - mBackdrop.setVisibility(View.GONE); - mBackdropFront.animate().cancel(); - mBackdropBack.animate().cancel(); - mHandler.post(mHideBackdropFront); - } - }); - if (mKeyguardFadingAway) { - mBackdrop.animate() + if (mFingerprintUnlockController.getMode() + == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING) { - // Make it disappear faster, as the focus should be on the activity behind. - .setDuration(mKeyguardFadingAwayDuration / 2) - .setStartDelay(mKeyguardFadingAwayDelay) - .setInterpolator(mLinearInterpolator) - .start(); + // We are unlocking directly - no animation! + mBackdrop.setVisibility(View.GONE); + } else { + mBackdrop.animate() + // Never let the alpha become zero - otherwise the RenderNode + // won't draw anything and uninitialized memory will show through + // if mScrimSrcModeEnabled. Note that 0.001 is rounded down to 0 in + // libhwui. + .alpha(0.002f) + .setInterpolator(mBackdropInterpolator) + .setDuration(300) + .setStartDelay(0) + .withEndAction(new Runnable() { + @Override + public void run() { + mBackdrop.setVisibility(View.GONE); + mBackdropFront.animate().cancel(); + mBackdropBack.animate().cancel(); + mHandler.post(mHideBackdropFront); + } + }); + if (mKeyguardFadingAway) { + mBackdrop.animate() + + // Make it disappear faster, as the focus should be on the activity + // behind. + .setDuration(mKeyguardFadingAwayDuration / 2) + .setStartDelay(mKeyguardFadingAwayDelay) + .setInterpolator(mLinearInterpolator) + .start(); + } } } } @@ -1910,8 +1951,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mNotificationPanel.isQsExpanded(); } - public boolean isScreenOnComingFromTouch() { - return mScreenOnComingFromTouch; + public boolean isWakeUpComingFromTouch() { + return mWakeUpComingFromTouch; } public boolean isFalsingThresholdNeeded() { @@ -2423,8 +2464,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, || mStatusBarMode == MODE_LIGHTS_OUT_TRANSPARENT); boolean allowLight = isTransparentBar && !mBatteryController.isPowerSave(); boolean light = (vis & View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) != 0; - - mIconController.setIconsDark(allowLight && light); + boolean animate = mFingerprintUnlockController == null + || (mFingerprintUnlockController.getMode() + != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING + && mFingerprintUnlockController.getMode() + != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK); + mIconController.setIconsDark(allowLight && light, animate); } // restore the recents bit if (wasRecentsVisible) { @@ -2471,7 +2516,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void checkBarMode(int mode, int windowState, BarTransitions transitions, boolean noAnimation) { final boolean powerSave = mBatteryController.isPowerSave(); - final boolean anim = !noAnimation && (mScreenOn == null || mScreenOn) + final boolean anim = !noAnimation && mDeviceInteractive && windowState != WINDOW_STATE_HIDDEN && !powerSave; if (powerSave && getBarState() == StatusBarState.SHADE) { mode = MODE_WARNING; @@ -2879,14 +2924,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } else if (Intent.ACTION_SCREEN_OFF.equals(action)) { - mScreenOn = false; notifyNavigationBarScreenOn(false); notifyHeadsUpScreenOff(); finishBarAnimations(); resetUserExpandedStates(); } else if (Intent.ACTION_SCREEN_ON.equals(action)) { - mScreenOn = true; notifyNavigationBarScreenOn(true); } } @@ -3340,7 +3383,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mHandler.removeMessages(MSG_LAUNCH_TRANSITION_TIMEOUT); setBarState(StatusBarState.KEYGUARD); updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */); - if (!mScreenOnFromKeyguard) { + if (!mDeviceInteractive) { // If the screen is off already, we need to disable touch events because these might // collapse the panel after we expanded it, and thus we would end up with a blank @@ -3359,6 +3402,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void onLaunchTransitionFadingEnded() { mNotificationPanel.setAlpha(1.0f); + mNotificationPanel.onAffordanceLaunchEnded(); + releaseGestureWakeLock(); runLaunchTransitionEndRunnable(); mLaunchTransitionFadingAway = false; mScrimController.forceHideScrims(false /* hide */); @@ -3422,6 +3467,19 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } /** + * Fades the content of the Keyguard while we are dozing and makes it invisible when finished + * fading. + */ + public void fadeKeyguardWhilePulsing() { + mNotificationPanel.animate() + .alpha(0f) + .setStartDelay(0) + .setDuration(FADE_KEYGUARD_DURATION_PULSING) + .setInterpolator(ScrimController.KEYGUARD_FADE_OUT_INTERPOLATOR) + .start(); + } + + /** * Starts the timeout when we try to start the affordances on Keyguard. We usually rely that * Keyguard goes away via fadeKeyguardAfterLaunchTransition, however, that might not happen * because the launched app crashed or something else went wrong. @@ -3433,6 +3491,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void onLaunchTransitionTimeout() { Log.w(TAG, "Launch transition: Timeout!"); + mNotificationPanel.onAffordanceLaunchEnded(); + releaseGestureWakeLock(); mNotificationPanel.resetViews(); } @@ -3455,11 +3515,24 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, setBarState(StatusBarState.SHADE); if (mLeaveOpenOnKeyguardHide) { mLeaveOpenOnKeyguardHide = false; - mNotificationPanel.animateToFullShade(calculateGoingToFullShadeDelay()); + long delay = calculateGoingToFullShadeDelay(); + mNotificationPanel.animateToFullShade(delay); if (mDraggedDownRow != null) { mDraggedDownRow.setUserLocked(false); mDraggedDownRow = null; } + + // Disable layout transitions in navbar for this transition because the load is just + // too heavy for the CPU and GPU on any device. + if (mNavigationBarView != null) { + mNavigationBarView.setLayoutTransitionsEnabled(false); + mNavigationBarView.postDelayed(new Runnable() { + @Override + public void run() { + mNavigationBarView.setLayoutTransitionsEnabled(true); + } + }, delay + StackStateAnimator.ANIMATION_DURATION_GO_TO_FULL_SHADE); + } } else { instantCollapseNotificationPanel(); } @@ -3471,9 +3544,19 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mQSPanel.refreshAllTiles(); } mHandler.removeMessages(MSG_LAUNCH_TRANSITION_TIMEOUT); + releaseGestureWakeLock(); + mNotificationPanel.onAffordanceLaunchEnded(); + mNotificationPanel.animate().cancel(); + mNotificationPanel.setAlpha(1f); return staying; } + private void releaseGestureWakeLock() { + if (mGestureWakeLock.isHeld()) { + mGestureWakeLock.release(); + } + } + public long calculateGoingToFullShadeDelay() { return mKeyguardFadingAwayDelay + mKeyguardFadingAwayDuration; } @@ -3485,6 +3568,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // Treat Keyguard exit animation as an app transition to achieve nice transition for status // bar. + mKeyguardGoingAway = true; mIconController.appTransitionPending(); } @@ -3516,6 +3600,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, */ public void finishKeyguardFadingAway() { mKeyguardFadingAway = false; + mKeyguardGoingAway = false; } public void stopWaitingForKeyguardExit() { @@ -3560,9 +3645,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void updateDozingState() { boolean animate = !mDozing && mDozeScrimController.isPulsing(); mNotificationPanel.setDozing(mDozing, animate); - mStackScroller.setDark(mDozing, animate, mScreenOnTouchLocation); + mStackScroller.setDark(mDozing, animate, mWakeUpTouchLocation); mScrimController.setDozing(mDozing); - mDozeScrimController.setDozing(mDozing, animate); + + // Immediately abort the dozing from the doze scrim controller in case of wake-and-unlock + // for pulsing so the Keyguard fade-out animation scrim can take over. + mDozeScrimController.setDozing(mDozing && + mFingerprintUnlockController.getMode() + != FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING, animate); } public void updateStackScrollerState(boolean goingToFullShade) { @@ -3593,6 +3683,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mState == StatusBarState.KEYGUARD && mStatusBarKeyguardViewManager.onMenuPressed(); } + public void endAffordanceLaunch() { + releaseGestureWakeLock(); + mNotificationPanel.onAffordanceLaunchEnded(); + } + public boolean onBackPressed() { if (mStatusBarKeyguardViewManager.onBackPressed()) { return true; @@ -3613,7 +3708,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } public boolean onSpacePressed() { - if (mScreenOn != null && mScreenOn + if (mDeviceInteractive && (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) { animateCollapsePanels( CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL /* flags */, true /* force */); @@ -3661,12 +3756,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // down on the lockscreen), clear notification LED, vibration, // ringing. // Other transitions are covered in handleVisibleToUserChanged(). - if (state != mState && mVisible && state == StatusBarState.SHADE_LOCKED) { - try { - mBarService.clearNotificationEffects(); - } catch (RemoteException e) { - // Ignore. - } + if (state != mState && mVisible && (state == StatusBarState.SHADE_LOCKED + || (state == StatusBarState.SHADE && isGoingToNotificationShade()))) { + clearNotificationEffects(); } mState = state; mGroupManager.setStatusBarState(state); @@ -3823,23 +3915,58 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, disable(mDisabledUnmodified1, mDisabledUnmodified2, true /* animate */); } - public void onScreenTurnedOff() { - mScreenOnFromKeyguard = false; - mScreenOnComingFromTouch = false; - mScreenOnTouchLocation = null; + public void onStartedGoingToSleep() { + mStartedGoingToSleep = true; + } + + public void onFinishedGoingToSleep() { + mNotificationPanel.onAffordanceLaunchEnded(); + releaseGestureWakeLock(); + mLaunchCameraOnScreenTurningOn = false; + mStartedGoingToSleep = false; + mDeviceInteractive = false; + mWakeUpComingFromTouch = false; + mWakeUpTouchLocation = null; mStackScroller.setAnimationsEnabled(false); updateVisibleToUser(); + if (mLaunchCameraOnFinishedGoingToSleep) { + mLaunchCameraOnFinishedGoingToSleep = false; + + // This gets executed before we will show Keyguard, so post it in order that the state + // is correct. + mHandler.post(new Runnable() { + @Override + public void run() { + onCameraLaunchGestureDetected(mLastCameraLaunchSource); + } + }); + } } - public void onScreenTurnedOn() { - mScreenOnFromKeyguard = true; + public void onStartedWakingUp() { + mDeviceInteractive = true; mStackScroller.setAnimationsEnabled(true); mNotificationPanel.setTouchDisabled(false); updateVisibleToUser(); } public void onScreenTurningOn() { + mScreenTurningOn = true; mNotificationPanel.onScreenTurningOn(); + if (mLaunchCameraOnScreenTurningOn) { + mNotificationPanel.launchCamera(false, mLastCameraLaunchSource); + mLaunchCameraOnScreenTurningOn = false; + } + } + + private void vibrateForCameraGesture() { + // Make sure to pass -1 for repeat so VibratorService doesn't stop us when going to sleep. + mVibrator.vibrate(new long[] { 0, 750L }, -1 /* repeat */); + } + + public void onScreenTurnedOn() { + mScreenTurningOn = false; + mDozeScrimController.onScreenTurnedOn(); } /** @@ -3956,8 +4083,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mDozing && mDozeScrimController.isPulsing()) { PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); pm.wakeUp(time, "com.android.systemui:NODOZE"); - mScreenOnComingFromTouch = true; - mScreenOnTouchLocation = new PointF(event.getX(), event.getY()); + mWakeUpComingFromTouch = true; + mWakeUpTouchLocation = new PointF(event.getX(), event.getY()); mNotificationPanel.setTouchDisabled(false); mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested(); } @@ -3982,8 +4109,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void appTransitionStarting(long startTime, long duration) { // Use own timings when Keyguard is going away, see keyguardGoingAway and - // setKeyguardFadingAway - if (!mKeyguardFadingAway) { + // setKeyguardFadingAway. + if (!mKeyguardGoingAway) { mIconController.appTransitionStarting(startTime, duration); } if (mIconPolicy != null) { @@ -3991,8 +4118,54 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } + @Override + public void onCameraLaunchGestureDetected(int source) { + mLastCameraLaunchSource = source; + if (mStartedGoingToSleep) { + mLaunchCameraOnFinishedGoingToSleep = true; + return; + } + if (!mNotificationPanel.canCameraGestureBeLaunched( + mStatusBarKeyguardViewManager.isShowing() && mExpandedVisible)) { + return; + } + if (!mDeviceInteractive) { + PowerManager pm = mContext.getSystemService(PowerManager.class); + pm.wakeUp(SystemClock.uptimeMillis(), "com.android.systemui:CAMERA_GESTURE"); + mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested(); + } + vibrateForCameraGesture(); + if (!mStatusBarKeyguardViewManager.isShowing()) { + startActivity(KeyguardBottomAreaView.INSECURE_CAMERA_INTENT, + true /* dismissShade */); + } else { + if (!mDeviceInteractive) { + // Avoid flickering of the scrim when we instant launch the camera and the bouncer + // comes on. + mScrimController.dontAnimateBouncerChangesUntilNextFrame(); + mGestureWakeLock.acquire(LAUNCH_TRANSITION_TIMEOUT_MS + 1000L); + } + if (mScreenTurningOn || mStatusBarKeyguardViewManager.isScreenTurnedOn()) { + mNotificationPanel.launchCamera(mDeviceInteractive /* animate */, source); + } else { + // We need to defer the camera launch until the screen comes on, since otherwise + // we will dismiss us too early since we are waiting on an activity to be drawn and + // incorrectly get notified because of the screen on event (which resumes and pauses + // some activities) + mLaunchCameraOnScreenTurningOn = true; + } + } + } + + public void notifyFpAuthModeChanged() { + updateDozing(); + } + private void updateDozing() { - mDozing = mDozingRequested && mState == StatusBarState.KEYGUARD; + // When in wake-and-unlock while pulsing, keep dozing state until fully unlocked. + mDozing = mDozingRequested && mState == StatusBarState.KEYGUARD + || mFingerprintUnlockController.getMode() + == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING; updateDozingState(); } @@ -4022,7 +4195,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } - private final class DozeServiceHost implements DozeHost { + private final class DozeServiceHost extends KeyguardUpdateMonitorCallback implements DozeHost { // Amount of time to allow to update the time shown on the screen before releasing // the wakelock. This timeout is design to compensate for the fact that we don't // currently have a way to know when time display contents have actually been @@ -4096,6 +4269,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } @Override + public boolean isPulsingBlocked() { + return mFingerprintUnlockController.getMode() + == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK; + } + + @Override public boolean isNotificationLightOn() { return mNotificationLightOn; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index 1a35500abac2..b9e92928992f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -22,7 +22,6 @@ import android.animation.PropertyValuesHolder; import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Color; -import android.util.Log; import android.view.View; import android.view.ViewTreeObserver; import android.view.animation.DecelerateInterpolator; @@ -44,12 +43,15 @@ import com.android.systemui.statusbar.stack.StackStateAnimator; public class ScrimController implements ViewTreeObserver.OnPreDrawListener, HeadsUpManager.OnHeadsUpChangedListener { public static final long ANIMATION_DURATION = 220; + public static final Interpolator KEYGUARD_FADE_OUT_INTERPOLATOR + = new PathInterpolator(0f, 0, 0.7f, 1f); private static final float SCRIM_BEHIND_ALPHA = 0.62f; private static final float SCRIM_BEHIND_ALPHA_KEYGUARD = 0.45f; private static final float SCRIM_BEHIND_ALPHA_UNLOCKING = 0.2f; private static final float SCRIM_IN_FRONT_ALPHA = 0.75f; private static final int TAG_KEY_ANIM = R.id.scrim; + private static final int TAG_KEY_ANIM_TARGET = R.id.scrim_target; private static final int TAG_HUN_START_ALPHA = R.id.hun_scrim_alpha_start; private static final int TAG_HUN_END_ALPHA = R.id.hun_scrim_alpha_end; @@ -71,9 +73,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private long mDurationOverride = -1; private long mAnimationDelay; private Runnable mOnAnimationFinished; - private boolean mAnimationStarted; private final Interpolator mInterpolator = new DecelerateInterpolator(); - private final Interpolator mKeyguardFadeOutInterpolator = new PathInterpolator(0f, 0, 0.7f, 1f); private BackDropView mBackDropView; private boolean mScrimSrcEnabled; private boolean mDozing; @@ -86,6 +86,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, private float mTopHeadsUpDragAmount; private View mDraggedHeadsUpView; private boolean mForceHideScrims; + private boolean mSkipFirstFrame; + private boolean mDontAnimateBouncerChanges; public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront, View headsUpScrim, boolean scrimSrcEnabled) { @@ -124,7 +126,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, public void setBouncerShowing(boolean showing) { mBouncerShowing = showing; - mAnimateChange = !mExpanding; + mAnimateChange = !mExpanding && !mDontAnimateBouncerChanges; scheduleUpdate(); } @@ -133,19 +135,25 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, scheduleUpdate(); } - public void animateKeyguardFadingOut(long delay, long duration, Runnable onAnimationFinished) { + public void animateKeyguardFadingOut(long delay, long duration, Runnable onAnimationFinished, + boolean skipFirstFrame) { mWakeAndUnlocking = false; mAnimateKeyguardFadingOut = true; mDurationOverride = duration; mAnimationDelay = delay; mAnimateChange = true; + mSkipFirstFrame = skipFirstFrame; mOnAnimationFinished = onAnimationFinished; scheduleUpdate(); + + // No need to wait for the next frame to be drawn for this case - onPreDraw will execute + // the changes we just scheduled. + onPreDraw(); } public void abortKeyguardFadingOut() { if (mAnimateKeyguardFadingOut) { - endAnimateKeyguardFadingOut(); + endAnimateKeyguardFadingOut(true /* force */); } } @@ -198,8 +206,13 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, // During wake and unlock, we first hide everything behind a black scrim, which then // gets faded out from animateKeyguardFadingOut. - setScrimInFrontColor(1f); - setScrimBehindColor(0f); + if (mDozing) { + setScrimInFrontColor(0f); + setScrimBehindColor(1f); + } else { + setScrimInFrontColor(1f); + setScrimBehindColor(0f); + } } else if (!mKeyguardShowing && !mBouncerShowing) { updateScrimNormal(); setScrimInFrontColor(0); @@ -258,10 +271,14 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, } private void setScrimColor(View scrim, float alpha) { - Object runningAnim = scrim.getTag(TAG_KEY_ANIM); - if (runningAnim instanceof ValueAnimator) { - ((ValueAnimator) runningAnim).cancel(); - scrim.setTag(TAG_KEY_ANIM, null); + ValueAnimator runningAnim = (ValueAnimator) scrim.getTag(TAG_KEY_ANIM); + Float target = (Float) scrim.getTag(TAG_KEY_ANIM_TARGET); + if (runningAnim != null && target != null) { + if (alpha != target) { + runningAnim.cancel(); + } else { + return; + } } if (mAnimateChange) { startScrimAnimation(scrim, alpha); @@ -325,39 +342,51 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mOnAnimationFinished = null; } scrim.setTag(TAG_KEY_ANIM, null); + scrim.setTag(TAG_KEY_ANIM_TARGET, null); } }); anim.start(); + if (mSkipFirstFrame) { + anim.setCurrentPlayTime(16); + } scrim.setTag(TAG_KEY_ANIM, anim); - mAnimationStarted = true; + scrim.setTag(TAG_KEY_ANIM_TARGET, target); } private Interpolator getInterpolator() { - return mAnimateKeyguardFadingOut ? mKeyguardFadeOutInterpolator : mInterpolator; + return mAnimateKeyguardFadingOut ? KEYGUARD_FADE_OUT_INTERPOLATOR : mInterpolator; } @Override public boolean onPreDraw() { mScrimBehind.getViewTreeObserver().removeOnPreDrawListener(this); mUpdatePending = false; + if (mDontAnimateBouncerChanges) { + mDontAnimateBouncerChanges = false; + } updateScrims(); mDurationOverride = -1; mAnimationDelay = 0; + mSkipFirstFrame = false; // Make sure that we always call the listener even if we didn't start an animation. - endAnimateKeyguardFadingOut(); - mAnimationStarted = false; + endAnimateKeyguardFadingOut(false /* force */); return true; } - private void endAnimateKeyguardFadingOut() { + private void endAnimateKeyguardFadingOut(boolean force) { mAnimateKeyguardFadingOut = false; - if (!mAnimationStarted && mOnAnimationFinished != null) { + if ((force || (!isAnimating(mScrimInFront) && !isAnimating(mScrimBehind))) + && mOnAnimationFinished != null) { mOnAnimationFinished.run(); mOnAnimationFinished = null; } } + private boolean isAnimating(View scrim) { + return scrim.getTag(TAG_KEY_ANIM) != null; + } + public void setBackDropView(BackDropView backDropView) { mBackDropView = backDropView; mBackDropView.setOnVisibilityChangedRunnable(new Runnable() { @@ -471,4 +500,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, mAnimateChange = false; scheduleUpdate(); } + + public void dontAnimateBouncerChangesUntilNextFrame() { + mDontAnimateBouncerChanges = true; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SecureCameraLaunchManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SecureCameraLaunchManager.java deleted file mode 100644 index 45c893849262..000000000000 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SecureCameraLaunchManager.java +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (C) 2014 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.statusbar.phone; - -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.hardware.camera2.CameraManager; -import android.os.AsyncTask; -import android.os.Handler; -import android.provider.MediaStore; -import android.util.Log; - -import com.android.internal.widget.LockPatternUtils; -import com.android.keyguard.KeyguardUpdateMonitor; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Handles launching the secure camera properly even when other applications may be using the camera - * hardware. - * - * When other applications (e.g., Face Unlock) are using the camera, they must close the camera to - * allow the secure camera to open it. Since we want to minimize the delay when opening the secure - * camera, other apps should close the camera at the first possible opportunity (i.e., as soon as - * the user begins swiping to go to the secure camera). - * - * If the camera is unavailable when the user begins to swipe, the SecureCameraLaunchManager sends a - * broadcast to tell other apps to close the camera. When and if the user completes their swipe to - * launch the secure camera, the SecureCameraLaunchManager delays launching the secure camera until - * a callback indicates that the camera has become available. If it doesn't receive that callback - * within a specified timeout period, the secure camera is launched anyway. - * - * Ideally, the secure camera would handle waiting for the camera to become available. This allows - * some of the time necessary to close the camera to happen in parallel with starting the secure - * camera app. We can't rely on all third-party camera apps to handle this. However, an app can - * put com.android.systemui.statusbar.phone.will_wait_for_camera_available in its meta-data to - * indicate that it will be responsible for waiting for the camera to become available. - * - * It is assumed that the functions in this class, including the constructor, will be called from - * the UI thread. - */ -public class SecureCameraLaunchManager { - private static final boolean DEBUG = false; - private static final String TAG = "SecureCameraLaunchManager"; - - // Action sent as a broadcast to tell other apps to stop using the camera. Other apps that use - // the camera from keyguard (e.g., Face Unlock) should listen for this broadcast and close the - // camera as soon as possible after receiving it. - private static final String CLOSE_CAMERA_ACTION_NAME = - "com.android.systemui.statusbar.phone.CLOSE_CAMERA"; - - // Apps should put this field in their meta-data to indicate that they will take on the - // responsibility of waiting for the camera to become available. If this field is present, the - // SecureCameraLaunchManager launches the secure camera even if the camera hardware has not - // become available. Having the secure camera app do the waiting is the optimal approach, but - // without this field, the SecureCameraLaunchManager doesn't launch the secure camera until the - // camera hardware is available. - private static final String META_DATA_WILL_WAIT_FOR_CAMERA_AVAILABLE = - "com.android.systemui.statusbar.phone.will_wait_for_camera_available"; - - // If the camera hardware hasn't become available after this period of time, the - // SecureCameraLaunchManager launches the secure camera anyway. - private static final int CAMERA_AVAILABILITY_TIMEOUT_MS = 1000; - - private Context mContext; - private Handler mHandler; - private LockPatternUtils mLockPatternUtils; - private KeyguardBottomAreaView mKeyguardBottomArea; - - private CameraManager mCameraManager; - private CameraAvailabilityCallback mCameraAvailabilityCallback; - private Map<String, Boolean> mCameraAvailabilityMap; - private boolean mWaitingToLaunchSecureCamera; - private Runnable mLaunchCameraRunnable; - - private class CameraAvailabilityCallback extends CameraManager.AvailabilityCallback { - @Override - public void onCameraUnavailable(String cameraId) { - if (DEBUG) Log.d(TAG, "onCameraUnavailble(" + cameraId + ")"); - mCameraAvailabilityMap.put(cameraId, false); - } - - @Override - public void onCameraAvailable(String cameraId) { - if (DEBUG) Log.d(TAG, "onCameraAvailable(" + cameraId + ")"); - mCameraAvailabilityMap.put(cameraId, true); - - // If we were waiting for the camera hardware to become available to launch the - // secure camera, we can launch it now if all cameras are available. If one or more - // cameras are still not available, we will get this callback again for those - // cameras. - if (mWaitingToLaunchSecureCamera && areAllCamerasAvailable()) { - mKeyguardBottomArea.launchCamera(); - mWaitingToLaunchSecureCamera = false; - - // We no longer need to launch the camera after the timeout hits. - mHandler.removeCallbacks(mLaunchCameraRunnable); - } - } - } - - public SecureCameraLaunchManager(Context context, KeyguardBottomAreaView keyguardBottomArea) { - mContext = context; - mHandler = new Handler(); - mLockPatternUtils = new LockPatternUtils(context); - mKeyguardBottomArea = keyguardBottomArea; - - mCameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE); - mCameraAvailabilityCallback = new CameraAvailabilityCallback(); - - // An onCameraAvailable() or onCameraUnavailable() callback will be received for each camera - // when the availability callback is registered, thus initializing the map. - // - // Keeping track of the state of all cameras using the onCameraAvailable() and - // onCameraUnavailable() callbacks can get messy when dealing with hot-pluggable cameras. - // However, we have a timeout in place such that we will never hang waiting for cameras. - mCameraAvailabilityMap = new HashMap<String, Boolean>(); - - mWaitingToLaunchSecureCamera = false; - mLaunchCameraRunnable = new Runnable() { - @Override - public void run() { - if (mWaitingToLaunchSecureCamera) { - Log.w(TAG, "Timeout waiting for camera availability"); - mKeyguardBottomArea.launchCamera(); - mWaitingToLaunchSecureCamera = false; - } - } - }; - } - - /** - * Initializes the SecureCameraManager and starts listening for camera availability. - */ - public void create() { - mCameraManager.registerAvailabilityCallback(mCameraAvailabilityCallback, mHandler); - } - - /** - * Stops listening for camera availability and cleans up the SecureCameraManager. - */ - public void destroy() { - mCameraManager.unregisterAvailabilityCallback(mCameraAvailabilityCallback); - } - - /** - * Called when the user is starting to swipe horizontally, possibly to start the secure camera. - * Although this swipe ultimately may not result in the secure camera opening, we need to stop - * all other camera usage (e.g., Face Unlock) as soon as possible. We send out a broadcast to - * notify other apps that they should close the camera immediately. The broadcast is sent even - * if the camera appears to be available, because there could be an app that is about to open - * the camera. - */ - public void onSwipingStarted() { - if (DEBUG) Log.d(TAG, "onSwipingStarted"); - AsyncTask.execute(new Runnable() { - @Override - public void run() { - Intent intent = new Intent(); - intent.setAction(CLOSE_CAMERA_ACTION_NAME); - intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); - mContext.sendBroadcast(intent); - } - }); - } - - /** - * Called when the secure camera should be started. If the camera is available or the secure - * camera app has indicated that it will wait for camera availability, the secure camera app is - * launched immediately. Otherwise, we wait for the camera to become available (or timeout) - * before launching the secure camera. - */ - public void startSecureCameraLaunch() { - if (DEBUG) Log.d(TAG, "startSecureCameraLunch"); - if (areAllCamerasAvailable() || targetWillWaitForCameraAvailable()) { - mKeyguardBottomArea.launchCamera(); - } else { - mWaitingToLaunchSecureCamera = true; - mHandler.postDelayed(mLaunchCameraRunnable, CAMERA_AVAILABILITY_TIMEOUT_MS); - } - } - - /** - * Returns true if all of the cameras we are tracking are currently available. - */ - private boolean areAllCamerasAvailable() { - for (boolean cameraAvailable: mCameraAvailabilityMap.values()) { - if (!cameraAvailable) { - return false; - } - } - return true; - } - - /** - * Determines if the secure camera app will wait for the camera hardware to become available - * before trying to open the camera. If so, we can fire off an intent to start the secure - * camera app before the camera is available. Otherwise, it is our responsibility to wait for - * the camera hardware to become available before firing off the intent to start the secure - * camera. - * - * Ideally we are able to fire off the secure camera intent as early as possibly so that, if the - * camera is closing, it can continue to close while the secure camera app is opening. This - * improves secure camera startup time. - */ - private boolean targetWillWaitForCameraAvailable() { - // Create intent that would launch the secure camera. - Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE) - .addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - PackageManager packageManager = mContext.getPackageManager(); - - // Get the list of applications that can handle the intent. - final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser( - intent, PackageManager.MATCH_DEFAULT_ONLY, KeyguardUpdateMonitor.getCurrentUser()); - if (appList.size() == 0) { - if (DEBUG) Log.d(TAG, "No targets found for secure camera intent"); - return false; - } - - // Get the application that the intent resolves to. - ResolveInfo resolved = packageManager.resolveActivityAsUser(intent, - PackageManager.MATCH_DEFAULT_ONLY | PackageManager.GET_META_DATA, - KeyguardUpdateMonitor.getCurrentUser()); - - if (resolved == null || resolved.activityInfo == null) { - return false; - } - - // If we would need to launch the resolver activity, then we can't assume that the target - // is one that would wait for the camera. - if (wouldLaunchResolverActivity(resolved, appList)) { - if (DEBUG) Log.d(TAG, "Secure camera intent would launch resolver"); - return false; - } - - // If the target doesn't have meta-data we must assume it won't wait for the camera. - if (resolved.activityInfo.metaData == null || resolved.activityInfo.metaData.isEmpty()) { - if (DEBUG) Log.d(TAG, "No meta-data found for secure camera application"); - return false; - } - - // Check the secure camera app meta-data to see if it indicates that it will wait for the - // camera to become available. - boolean willWaitForCameraAvailability = - resolved.activityInfo.metaData.getBoolean(META_DATA_WILL_WAIT_FOR_CAMERA_AVAILABLE); - - if (DEBUG) Log.d(TAG, "Target will wait for camera: " + willWaitForCameraAvailability); - - return willWaitForCameraAvailability; - } - - /** - * Determines if the activity that would be launched by the intent is the ResolverActivity. - */ - private boolean wouldLaunchResolverActivity(ResolveInfo resolved, List<ResolveInfo> appList) { - // If the list contains the resolved activity, then it can't be the ResolverActivity itself. - for (int i = 0; i < appList.size(); i++) { - ResolveInfo tmp = appList.get(i); - if (tmp.activityInfo.name.equals(resolved.activityInfo.name) - && tmp.activityInfo.packageName.equals(resolved.activityInfo.packageName)) { - return false; - } - } - return true; - } -} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SettingsButton.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SettingsButton.java index a1e9ece5a783..18db5b84f34b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/SettingsButton.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/SettingsButton.java @@ -19,6 +19,7 @@ import android.animation.Animator; import android.animation.Animator.AnimatorListener; import android.animation.ObjectAnimator; import android.content.Context; +import android.graphics.drawable.RippleDrawable; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java index 7ee47dff37e6..e9c4e49d7b11 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java @@ -26,6 +26,7 @@ import android.graphics.Outline; import android.graphics.Rect; import android.graphics.drawable.Animatable; import android.graphics.drawable.Drawable; +import android.graphics.drawable.RippleDrawable; import android.util.AttributeSet; import android.util.MathUtils; import android.util.TypedValue; @@ -184,6 +185,12 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL } }); requestCaptureValues(); + + // RenderThread is doing more harm than good when touching the header (to expand quick + // settings), so disable it for this view + ((RippleDrawable) getBackground()).setForceSoftware(true); + ((RippleDrawable) mSettingsButton.getBackground()).setForceSoftware(true); + ((RippleDrawable) mSystemIconsSuperContainer.getBackground()).setForceSoftware(true); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java index 067e50ee9d9b..5de1c1342197 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarIconController.java @@ -335,8 +335,10 @@ public class StatusBarIconController implements Tunable { } } - public void setIconsDark(boolean dark) { - if (mTransitionPending) { + public void setIconsDark(boolean dark, boolean animate) { + if (!animate) { + setIconTintInternal(dark ? 1.0f : 0.0f); + } else if (mTransitionPending) { deferIconTintChange(dark ? 1.0f : 0.0f); } else if (mTransitionDeferring) { animateIconTint(dark ? 1.0f : 0.0f, 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 7dd3e7c60bfe..05f6e57d9199 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java @@ -24,6 +24,7 @@ import android.os.Trace; import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; +import android.view.ViewRootImpl; import android.view.WindowManagerGlobal; import com.android.internal.widget.LockPatternUtils; @@ -48,6 +49,8 @@ public class StatusBarKeyguardViewManager { // with the appear animations of the PIN/pattern/password views. private static final long NAV_BAR_SHOW_DELAY_BOUNCER = 320; + private static final long WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS = 200; + private static String TAG = "StatusBarKeyguardViewManager"; private final Context mContext; @@ -56,6 +59,7 @@ public class StatusBarKeyguardViewManager { private ViewMediatorCallback mViewMediatorCallback; private PhoneStatusBar mPhoneStatusBar; private ScrimController mScrimController; + private FingerprintUnlockController mFingerprintUnlockController; private ViewGroup mContainer; private StatusBarWindowManager mStatusBarWindowManager; @@ -71,10 +75,8 @@ public class StatusBarKeyguardViewManager { private boolean mLastOccluded; private boolean mLastBouncerShowing; private boolean mLastBouncerDismissible; - private boolean mLastDeferScrimFadeOut; private OnDismissAction mAfterKeyguardGoneAction; private boolean mDeviceWillWakeUp; - private boolean mWakeAndUnlocking; private boolean mDeferScrimFadeOut; public StatusBarKeyguardViewManager(Context context, ViewMediatorCallback callback, @@ -86,11 +88,13 @@ public class StatusBarKeyguardViewManager { public void registerStatusBar(PhoneStatusBar phoneStatusBar, ViewGroup container, StatusBarWindowManager statusBarWindowManager, - ScrimController scrimController) { + ScrimController scrimController, + FingerprintUnlockController fingerprintUnlockController) { mPhoneStatusBar = phoneStatusBar; mContainer = container; mStatusBarWindowManager = statusBarWindowManager; mScrimController = scrimController; + mFingerprintUnlockController = fingerprintUnlockController; mBouncer = new KeyguardBouncer(mContext, mViewMediatorCallback, mLockPatternUtils, mStatusBarWindowManager, container); } @@ -160,30 +164,39 @@ public class StatusBarKeyguardViewManager { } } + public void onStartedGoingToSleep() { + mPhoneStatusBar.onStartedGoingToSleep(); + } + public void onFinishedGoingToSleep() { mDeviceInteractive = false; - mPhoneStatusBar.onScreenTurnedOff(); + mPhoneStatusBar.onFinishedGoingToSleep(); mBouncer.onScreenTurnedOff(); } public void onStartedWakingUp() { mDeviceInteractive = true; mDeviceWillWakeUp = false; - mPhoneStatusBar.onScreenTurnedOn(); + mPhoneStatusBar.onStartedWakingUp(); } public void onScreenTurningOn() { mPhoneStatusBar.onScreenTurningOn(); } + public boolean isScreenTurnedOn() { + return mScreenTurnedOn; + } + public void onScreenTurnedOn() { mScreenTurnedOn = true; - mWakeAndUnlocking = false; if (mDeferScrimFadeOut) { mDeferScrimFadeOut = false; - animateScrimControllerKeyguardFadingOut(0, 200); + animateScrimControllerKeyguardFadingOut(0, WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS, + true /* skipFirstFrame */); updateStates(); } + mPhoneStatusBar.onScreenTurnedOn(); } public void onScreenTurnedOff() { @@ -260,7 +273,8 @@ public class StatusBarKeyguardViewManager { updateStates(); mScrimController.animateKeyguardFadingOut( PhoneStatusBar.FADE_KEYGUARD_START_DELAY, - PhoneStatusBar.FADE_KEYGUARD_DURATION, null); + PhoneStatusBar.FADE_KEYGUARD_DURATION, null, + false /* skipFirstFrame */); } }, new Runnable() { @Override @@ -272,18 +286,43 @@ public class StatusBarKeyguardViewManager { } }); } else { - mPhoneStatusBar.setKeyguardFadingAway(startTime, delay, fadeoutDuration); - boolean staying = mPhoneStatusBar.hideKeyguard(); - if (!staying) { + if (mFingerprintUnlockController.getMode() + == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK_PULSING) { + mFingerprintUnlockController.startKeyguardFadingAway(); + mPhoneStatusBar.setKeyguardFadingAway(startTime, 0, 240); mStatusBarWindowManager.setKeyguardFadingAway(true); - if (mWakeAndUnlocking && !mScreenTurnedOn) { - mDeferScrimFadeOut = true; + mPhoneStatusBar.fadeKeyguardWhilePulsing(); + animateScrimControllerKeyguardFadingOut(0, 240, new Runnable() { + @Override + public void run() { + mPhoneStatusBar.hideKeyguard(); + } + }, false /* skipFirstFrame */); + } else { + mFingerprintUnlockController.startKeyguardFadingAway(); + mPhoneStatusBar.setKeyguardFadingAway(startTime, delay, fadeoutDuration); + boolean staying = mPhoneStatusBar.hideKeyguard(); + if (!staying) { + mStatusBarWindowManager.setKeyguardFadingAway(true); + if (mFingerprintUnlockController.getMode() + == FingerprintUnlockController.MODE_WAKE_AND_UNLOCK) { + if (!mScreenTurnedOn) { + mDeferScrimFadeOut = true; + } else { + + // Screen is already on, don't defer with fading out. + animateScrimControllerKeyguardFadingOut(0, + WAKE_AND_UNLOCK_SCRIM_FADEOUT_DURATION_MS, + true /* skipFirstFrame */); + } + } else { + animateScrimControllerKeyguardFadingOut(delay, fadeoutDuration, + false /* skipFirstFrame */); + } } else { - animateScrimControllerKeyguardFadingOut(delay, fadeoutDuration); + mScrimController.animateGoingToFullShade(delay, fadeoutDuration); + mPhoneStatusBar.finishKeyguardFadingAway(); } - } else { - mScrimController.animateGoingToFullShade(delay, fadeoutDuration); - mPhoneStatusBar.finishKeyguardFadingAway(); } mStatusBarWindowManager.setKeyguardShowing(false); mBouncer.hide(true /* destroyView */); @@ -291,24 +330,31 @@ public class StatusBarKeyguardViewManager { executeAfterKeyguardGoneAction(); updateStates(); } + } + private void animateScrimControllerKeyguardFadingOut(long delay, long duration, + boolean skipFirstFrame) { + animateScrimControllerKeyguardFadingOut(delay, duration, null /* endRunnable */, + skipFirstFrame); } - private void animateScrimControllerKeyguardFadingOut(long delay, long duration) { + private void animateScrimControllerKeyguardFadingOut(long delay, long duration, + final Runnable endRunnable, boolean skipFirstFrame) { Trace.asyncTraceBegin(Trace.TRACE_TAG_VIEW, "Fading out", 0); mScrimController.animateKeyguardFadingOut(delay, duration, new Runnable() { @Override public void run() { + if (endRunnable != null) { + endRunnable.run(); + } mStatusBarWindowManager.setKeyguardFadingAway(false); mPhoneStatusBar.finishKeyguardFadingAway(); - if (mPhoneStatusBar.getNavigationBarView() != null) { - mPhoneStatusBar.getNavigationBarView().setWakeAndUnlocking(false); - } + mFingerprintUnlockController.finishKeyguardFadingAway(); WindowManagerGlobal.getInstance().trimMemory( ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN); Trace.asyncTraceEnd(Trace.TRACE_TAG_VIEW, "Fading out", 0); } - }); + }, skipFirstFrame); } private void executeAfterKeyguardGoneAction() { @@ -348,6 +394,7 @@ public class StatusBarKeyguardViewManager { */ public boolean onBackPressed() { if (mBouncer.isShowing()) { + mPhoneStatusBar.endAffordanceLaunch(); reset(); return true; } @@ -382,7 +429,6 @@ public class StatusBarKeyguardViewManager { boolean occluded = mOccluded; boolean bouncerShowing = mBouncer.isShowing(); boolean bouncerDismissible = !mBouncer.isFullscreenBouncer(); - boolean deferScrimFadeOut = mDeferScrimFadeOut; if ((bouncerDismissible || !showing) != (mLastBouncerDismissible || !mLastShowing) || mFirstUpdate) { @@ -393,16 +439,18 @@ public class StatusBarKeyguardViewManager { } } - // Hide navigation bar on Keyguard but not on bouncer and also if we are deferring a scrim - // fade out, i.e. we are waiting for the screen to have turned on. - boolean navBarVisible = !deferScrimFadeOut && (!(showing && !occluded) || bouncerShowing); - boolean lastNavBarVisible = !mLastDeferScrimFadeOut && (!(mLastShowing && !mLastOccluded) - || mLastBouncerShowing); + boolean navBarVisible = (!(showing && !occluded) || bouncerShowing); + boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); if (navBarVisible != lastNavBarVisible || mFirstUpdate) { if (mPhoneStatusBar.getNavigationBarView() != null) { if (navBarVisible) { - mContainer.postOnAnimationDelayed(mMakeNavigationBarVisibleRunnable, - getNavBarShowDelay()); + long delay = getNavBarShowDelay(); + if (delay == 0) { + mMakeNavigationBarVisibleRunnable.run(); + } else { + mContainer.postOnAnimationDelayed(mMakeNavigationBarVisibleRunnable, + delay); + } } else { mContainer.removeCallbacks(mMakeNavigationBarVisibleRunnable); mPhoneStatusBar.getNavigationBarView().setVisibility(View.GONE); @@ -418,7 +466,7 @@ public class StatusBarKeyguardViewManager { KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(mContext); if ((showing && !occluded) != (mLastShowing && !mLastOccluded) || mFirstUpdate) { - updateMonitor.sendKeyguardVisibilityChanged(showing && !occluded); + updateMonitor.onKeyguardVisibilityChanged(showing && !occluded); } if (bouncerShowing != mLastBouncerShowing || mFirstUpdate) { updateMonitor.sendKeyguardBouncerChanged(bouncerShowing); @@ -427,7 +475,6 @@ public class StatusBarKeyguardViewManager { mFirstUpdate = false; mLastShowing = showing; mLastOccluded = occluded; - mLastDeferScrimFadeOut = deferScrimFadeOut; mLastBouncerShowing = bouncerShowing; mLastBouncerDismissible = bouncerDismissible; @@ -484,15 +531,15 @@ public class StatusBarKeyguardViewManager { * Notifies that the user has authenticated by other means than using the bouncer, for example, * fingerprint. */ - public void notifyKeyguardAuthenticated() { - mBouncer.notifyKeyguardAuthenticated(); + public void notifyKeyguardAuthenticated(boolean strongAuth) { + mBouncer.notifyKeyguardAuthenticated(strongAuth); } - public void setWakeAndUnlocking() { - mWakeAndUnlocking = true; - mScrimController.setWakeAndUnlocking(); - if (mPhoneStatusBar.getNavigationBarView() != null) { - mPhoneStatusBar.getNavigationBarView().setWakeAndUnlocking(true); - } + public void showBouncerMessage(String message, int color) { + mBouncer.showMessage(message, color); + } + + public ViewRootImpl getViewRootImpl() { + return mPhoneStatusBar.getStatusBarView().getViewRootImpl(); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java index 038fefb7cd3a..ccfa0dd058de 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java @@ -24,6 +24,7 @@ import android.os.SystemProperties; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; +import android.view.Window; import android.view.WindowManager; import com.android.keyguard.R; @@ -47,13 +48,15 @@ public class StatusBarWindowManager { private WindowManager.LayoutParams mLpChanged; private int mBarHeight; private final boolean mKeyguardScreenRotation; - + private final float mScreenBrightnessDoze; private final State mCurrentState = new State(); public StatusBarWindowManager(Context context) { mContext = context; mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); mKeyguardScreenRotation = shouldEnableKeyguardScreenRotation(); + mScreenBrightnessDoze = mContext.getResources().getInteger( + com.android.internal.R.integer.config_screenBrightnessDoze) / 255f; } private boolean shouldEnableKeyguardScreenRotation() { @@ -182,6 +185,7 @@ public class StatusBarWindowManager { applyInputFeatures(state); applyFitsSystemWindows(state); applyModalFlag(state); + applyBrightness(state); if (mLp.copyFrom(mLpChanged) != 0) { mWindowManager.updateViewLayout(mStatusBarView, mLp); } @@ -205,6 +209,14 @@ public class StatusBarWindowManager { } } + private void applyBrightness(State state) { + if (state.forceDozeBrightness) { + mLpChanged.screenBrightness = mScreenBrightnessDoze; + } else { + mLpChanged.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE; + } + } + public void setKeyguardShowing(boolean showing) { mCurrentState.keyguardShowing = showing; apply(mCurrentState); @@ -279,6 +291,15 @@ public class StatusBarWindowManager { apply(mCurrentState); } + /** + * Set whether the screen brightness is forced to the value we use for doze mode by the status + * bar window. + */ + public void setForceDozeBrightness(boolean forceDozeBrightness) { + mCurrentState.forceDozeBrightness = forceDozeBrightness; + apply(mCurrentState); + } + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println("StatusBarWindowManager state:"); pw.println(mCurrentState); @@ -297,6 +318,7 @@ public class StatusBarWindowManager { boolean headsUpShowing; boolean forceStatusBarVisible; boolean forceCollapsed; + boolean forceDozeBrightness; /** * The {@link BaseStatusBar} state from the status bar. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java index bd537f7c816d..a91cd5177cfd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/UnlockMethodCache.java @@ -132,7 +132,7 @@ public class UnlockMethodCache { } @Override - public void onFingerprintAuthenticated(int userId, boolean wakeAndUnlocking) { + public void onFingerprintAuthenticated(int userId) { if (!mKeyguardUpdateMonitor.isUnlockingWithFingerprintAllowed()) { return; } @@ -143,6 +143,11 @@ public class UnlockMethodCache { public void onFaceUnlockStateChanged(boolean running, int userId) { update(false /* updateAlways */); } + + @Override + public void onStrongAuthStateChanged(int userId) { + update(false /* updateAlways */); + } }; public boolean isTrustManaged() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java index 6af98543b214..1595d0df056c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SecurityControllerImpl.java @@ -36,6 +36,7 @@ import android.text.TextUtils; import android.util.Log; import android.util.SparseArray; +import com.android.internal.annotations.GuardedBy; import com.android.internal.net.LegacyVpnInfo; import com.android.internal.net.VpnConfig; import com.android.internal.net.VpnInfo; @@ -62,8 +63,9 @@ public class SecurityControllerImpl implements SecurityController { private final IConnectivityManager mConnectivityManagerService; private final DevicePolicyManager mDevicePolicyManager; private final UserManager mUserManager; - private final ArrayList<SecurityControllerCallback> mCallbacks - = new ArrayList<SecurityControllerCallback>(); + + @GuardedBy("mCallbacks") + private final ArrayList<SecurityControllerCallback> mCallbacks = new ArrayList<>(); private SparseArray<VpnConfig> mCurrentVpns = new SparseArray<>(); private int mCurrentUserId; @@ -161,16 +163,20 @@ public class SecurityControllerImpl implements SecurityController { @Override public void removeCallback(SecurityControllerCallback callback) { - if (callback == null) return; - if (DEBUG) Log.d(TAG, "removeCallback " + callback); - mCallbacks.remove(callback); + synchronized (mCallbacks) { + if (callback == null) return; + if (DEBUG) Log.d(TAG, "removeCallback " + callback); + mCallbacks.remove(callback); + } } @Override public void addCallback(SecurityControllerCallback callback) { - if (callback == null || mCallbacks.contains(callback)) return; - if (DEBUG) Log.d(TAG, "addCallback " + callback); - mCallbacks.add(callback); + synchronized (mCallbacks) { + if (callback == null || mCallbacks.contains(callback)) return; + if (DEBUG) Log.d(TAG, "addCallback " + callback); + mCallbacks.add(callback); + } } @Override @@ -202,8 +208,10 @@ public class SecurityControllerImpl implements SecurityController { } private void fireCallbacks() { - for (SecurityControllerCallback callback : mCallbacks) { - callback.onStateChanged(); + synchronized (mCallbacks) { + for (SecurityControllerCallback callback : mCallbacks) { + callback.onStateChanged(); + } } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AnimationFilter.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AnimationFilter.java index 753a7f76ed3d..56f65645bafc 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AnimationFilter.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AnimationFilter.java @@ -34,6 +34,7 @@ public class AnimationFilter { boolean hasDelays; boolean hasGoToFullShadeEvent; boolean hasDarkEvent; + boolean hasHeadsUpDisappearClickEvent; int darkAnimationOriginIndex; public AnimationFilter animateAlpha() { @@ -106,6 +107,10 @@ public class AnimationFilter { hasDarkEvent = true; darkAnimationOriginIndex = ev.darkAnimationOriginIndex; } + if (ev.animationType == NotificationStackScrollLayout.AnimationEvent + .ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK) { + hasHeadsUpDisappearClickEvent = true; + } } } @@ -135,6 +140,7 @@ public class AnimationFilter { hasDelays = false; hasGoToFullShadeEvent = false; hasDarkEvent = false; + hasHeadsUpDisappearClickEvent = false; darkAnimationOriginIndex = NotificationStackScrollLayout.AnimationEvent.DARK_ANIMATION_ORIGIN_INDEX_ABOVE; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 7aac3f1fdd18..ae086d4ab12f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -653,7 +653,7 @@ public class NotificationStackScrollLayout extends ViewGroup @Override public float getFalsingThresholdFactor() { - return mPhoneStatusBar.isScreenOnComingFromTouch() ? 1.5f : 1.0f; + return mPhoneStatusBar.isWakeUpComingFromTouch() ? 1.5f : 1.0f; } public View getChildAtPosition(MotionEvent ev) { @@ -1915,7 +1915,9 @@ public class NotificationStackScrollLayout extends ViewGroup boolean onBottom = false; boolean pinnedAndClosed = row.isPinned() && !mIsExpanded; if (!mIsExpanded && !isHeadsUp) { - type = AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR; + type = row.wasJustClicked() + ? AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK + : AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR; } else { StackViewState viewState = mCurrentStackScrollState.getViewStateForView(row); if (viewState == null) { @@ -3016,6 +3018,15 @@ public class NotificationStackScrollLayout extends ViewGroup .animateY() .animateZ(), + // ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK + new AnimationFilter() + .animateAlpha() + .animateHeight() + .animateTopInset() + .animateY() + .animateZ() + .hasDelays(), + // ANIMATION_TYPE_HEADS_UP_OTHER new AnimationFilter() .animateAlpha() @@ -3087,6 +3098,9 @@ public class NotificationStackScrollLayout extends ViewGroup // ANIMATION_TYPE_HEADS_UP_DISAPPEAR StackStateAnimator.ANIMATION_DURATION_HEADS_UP_DISAPPEAR, + // ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK + StackStateAnimator.ANIMATION_DURATION_HEADS_UP_DISAPPEAR, + // ANIMATION_TYPE_HEADS_UP_OTHER StackStateAnimator.ANIMATION_DURATION_STANDARD, @@ -3110,8 +3124,9 @@ public class NotificationStackScrollLayout extends ViewGroup static final int ANIMATION_TYPE_GROUP_EXPANSION_CHANGED = 13; static final int ANIMATION_TYPE_HEADS_UP_APPEAR = 14; static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR = 15; - static final int ANIMATION_TYPE_HEADS_UP_OTHER = 16; - static final int ANIMATION_TYPE_EVERYTHING = 17; + static final int ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK = 16; + static final int ANIMATION_TYPE_HEADS_UP_OTHER = 17; + static final int ANIMATION_TYPE_EVERYTHING = 18; static final int DARK_ANIMATION_ORIGIN_INDEX_ABOVE = -1; static final int DARK_ANIMATION_ORIGIN_INDEX_BELOW = -2; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java index 82064a7c9c27..cf696a1208c9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java @@ -127,7 +127,7 @@ public class StackScrollAlgorithm { mCollapseSecondCardPadding = context.getResources().getDimensionPixelSize( R.dimen.notification_collapse_second_card_padding); mScaleDimmed = context.getResources().getDisplayMetrics().densityDpi - >= DisplayMetrics.DENSITY_XXHIGH; + >= DisplayMetrics.DENSITY_420; } public boolean shouldScaleDimmed() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java index 97c7d301bd44..b4ab48a77ac8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackStateAnimator.java @@ -54,6 +54,7 @@ public class StackStateAnimator { public static final int ANIMATION_DELAY_PER_ELEMENT_DARK = 24; public static final int DELAY_EFFECT_MAX_INDEX_DIFFERENCE = 2; public static final int DELAY_EFFECT_MAX_INDEX_DIFFERENCE_CHILDREN = 3; + public static final int ANIMATION_DELAY_HEADS_UP = 120; private static final int TAG_ANIMATOR_TRANSLATION_Y = R.id.translation_y_animator_tag; private static final int TAG_ANIMATOR_TRANSLATION_Z = R.id.translation_z_animator_tag; @@ -320,6 +321,9 @@ public class StackStateAnimator { if (mAnimationFilter.hasGoToFullShadeEvent) { return calculateDelayGoToFullShade(viewState); } + if (mAnimationFilter.hasHeadsUpDisappearClickEvent) { + return ANIMATION_DELAY_HEADS_UP; + } long minDelay = 0; for (NotificationStackScrollLayout.AnimationEvent event : mNewEvents) { long delayPerElement = ANIMATION_DELAY_PER_ELEMENT_INTERRUPTING; @@ -890,7 +894,9 @@ public class StackStateAnimator { mHeadsUpAppearChildren.add(changingView); finalState.applyState(changingView, mTmpState); } else if (event.animationType == NotificationStackScrollLayout - .AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR) { + .AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR || + event.animationType == NotificationStackScrollLayout + .AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK) { mHeadsUpDisappearChildren.add(changingView); if (mHostLayout.indexOfChild(changingView) == -1) { // This notification was actually removed, so we need to add it to the overlay @@ -900,7 +906,11 @@ public class StackStateAnimator { // We temporarily enable Y animations, the real filter will be combined // afterwards anyway mAnimationFilter.animateY = true; - startViewAnimations(changingView, mTmpState, 0, + startViewAnimations(changingView, mTmpState, + event.animationType == NotificationStackScrollLayout + .AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK + ? ANIMATION_DELAY_HEADS_UP + : 0, ANIMATION_DURATION_HEADS_UP_DISAPPEAR); mChildrenToClearFromOverlay.add(changingView); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java index 920b682bc7a5..bbe5dd90d11f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -171,6 +171,10 @@ public class TvStatusBar extends BaseStatusBar { } @Override + public void onCameraLaunchGestureDetected(int source) { + } + + @Override protected void updateHeadsUp(String key, NotificationData.Entry entry, boolean shouldInterrupt, boolean alertAgain) { } diff --git a/packages/VpnDialogs/res/values-nl/strings.xml b/packages/VpnDialogs/res/values-nl/strings.xml index ae789b2a05e4..0f28016d952e 100644 --- a/packages/VpnDialogs/res/values-nl/strings.xml +++ b/packages/VpnDialogs/res/values-nl/strings.xml @@ -17,7 +17,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="prompt" msgid="3183836924226407828">"Verbindingsverzoek"</string> - <string name="warning" msgid="809658604548412033">"<xliff:g id="APP">%s</xliff:g> wil een VPN-verbinding opzetten om netwerkverkeer te controleren. Accepteer het verzoek alleen als je de bron vertrouwt. <br /> <br /> <img src=vpn_icon /> wordt boven aan je scherm weergegeven wanneer VPN actief is."</string> + <string name="warning" msgid="809658604548412033">"<xliff:g id="APP">%s</xliff:g> wil een VPN-verbinding opzetten om netwerkverkeer te controleren. Accepteer het verzoek alleen als u de bron vertrouwt. <br /> <br /> <img src=vpn_icon /> wordt boven aan uw scherm weergegeven wanneer VPN actief is."</string> <string name="legacy_title" msgid="192936250066580964">"Verbinding met VPN"</string> <string name="configure" msgid="4905518375574791375">"Configureren"</string> <string name="disconnect" msgid="971412338304200056">"Verbinding verbreken"</string> diff --git a/packages/VpnDialogs/res/values-pt-rBR/strings.xml b/packages/VpnDialogs/res/values-pt-rBR/strings.xml deleted file mode 100644 index e4154bc802a4..000000000000 --- a/packages/VpnDialogs/res/values-pt-rBR/strings.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright (C) 2011 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<resources xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="prompt" msgid="3183836924226407828">"Solicitação de conexão"</string> - <string name="warning" msgid="809658604548412033">"<xliff:g id="APP">%s</xliff:g> quer configurar uma conexão VPN que permite monitorar o tráfego da rede. Aceite se confiar na origem. <br /> <br /> <img src=vpn_icon /> é exibido na parte superior da tela quando a VPN estiver ativa."</string> - <string name="legacy_title" msgid="192936250066580964">"O VPN está conectado"</string> - <string name="configure" msgid="4905518375574791375">"Configurar"</string> - <string name="disconnect" msgid="971412338304200056">"Desconectar"</string> - <string name="session" msgid="6470628549473641030">"Sessão:"</string> - <string name="duration" msgid="3584782459928719435">"Duração:"</string> - <string name="data_transmitted" msgid="7988167672982199061">"Enviado:"</string> - <string name="data_received" msgid="4062776929376067820">"Recebido:"</string> - <string name="data_value_format" msgid="2192466557826897580">"<xliff:g id="NUMBER_0">%1$s</xliff:g> bytes/<xliff:g id="NUMBER_1">%2$s</xliff:g> pacotes"</string> -</resources> diff --git a/packages/VpnDialogs/res/values-sk/strings.xml b/packages/VpnDialogs/res/values-sk/strings.xml index b7ce96642719..7a06554e854c 100644 --- a/packages/VpnDialogs/res/values-sk/strings.xml +++ b/packages/VpnDialogs/res/values-sk/strings.xml @@ -17,7 +17,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="prompt" msgid="3183836924226407828">"Žiadosť o pripojenie"</string> - <string name="warning" msgid="809658604548412033">"<xliff:g id="APP">%s</xliff:g> žiada o nastavenie pripojenia VPN, pomocou ktorého bude môcť sledovať sieťové prenosy. Povoľte iba v prípade, že zdroju dôverujete. <br /> <br /> <img src=vpn_icon /> sa zobrazuje v hornej časti obrazovky, keď je pripojenie VPN aktívne."</string> + <string name="warning" msgid="809658604548412033">"Aplikácia <xliff:g id="APP">%s</xliff:g> žiada o nastavenie pripojenia VPN, pomocou ktorého bude môcť sledovať návštevnosť siete. Povoľte iba v prípade, že zdroju dôverujete. <br /> <br /> <img src=vpn_icon /> – keď je sieť VPN aktívna, zobrazuje sa v hornej časti obrazovky."</string> <string name="legacy_title" msgid="192936250066580964">"Sieť VPN je pripojená"</string> <string name="configure" msgid="4905518375574791375">"Konfigurovať"</string> <string name="disconnect" msgid="971412338304200056">"Odpojiť"</string> diff --git a/services/backup/java/com/android/server/backup/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java index 7c74a300e56c..12003e2e673b 100644 --- a/services/backup/java/com/android/server/backup/BackupManagerService.java +++ b/services/backup/java/com/android/server/backup/BackupManagerService.java @@ -1955,10 +1955,12 @@ public class BackupManagerService { .setPackage(pkgInfo.packageName); List<ResolveInfo> hosts = mPackageManager.queryIntentServicesAsUser( intent, 0, UserHandle.USER_OWNER); - final int N = hosts.size(); - for (int i = 0; i < N; i++) { - final ServiceInfo info = hosts.get(i).serviceInfo; - tryBindTransport(info); + if (hosts != null) { + final int N = hosts.size(); + for (int i = 0; i < N; i++) { + final ServiceInfo info = hosts.get(i).serviceInfo; + tryBindTransport(info); + } } } diff --git a/services/core/Android.mk b/services/core/Android.mk index 64b6134870de..666f2ff4d836 100644 --- a/services/core/Android.mk +++ b/services/core/Android.mk @@ -9,7 +9,7 @@ LOCAL_SRC_FILES += \ java/com/android/server/EventLogTags.logtags \ java/com/android/server/am/EventLogTags.logtags -LOCAL_JAVA_LIBRARIES := telephony-common +LOCAL_JAVA_LIBRARIES := services.net telephony-common LOCAL_STATIC_JAVA_LIBRARIES := tzdata_update include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java index 4288fa2668dc..882899e4fe96 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/services/core/java/com/android/server/AlarmManagerService.java @@ -177,7 +177,7 @@ class AlarmManagerService extends SystemService { private static final long DEFAULT_MIN_FUTURITY = 5 * 1000; private static final long DEFAULT_MIN_INTERVAL = 60 * 1000; - private static final long DEFAULT_ALLOW_WHILE_IDLE_SHORT_TIME = 60*1000; + private static final long DEFAULT_ALLOW_WHILE_IDLE_SHORT_TIME = DEFAULT_MIN_FUTURITY; private static final long DEFAULT_ALLOW_WHILE_IDLE_LONG_TIME = 15*60*1000; private static final long DEFAULT_ALLOW_WHILE_IDLE_WHITELIST_DURATION = 10*1000; diff --git a/services/core/java/com/android/server/AnyMotionDetector.java b/services/core/java/com/android/server/AnyMotionDetector.java index 6a673164b1b4..a0b5c154c13f 100644 --- a/services/core/java/com/android/server/AnyMotionDetector.java +++ b/services/core/java/com/android/server/AnyMotionDetector.java @@ -58,9 +58,6 @@ public class AnyMotionDetector { /** Current measurement state. */ private int mState; - /** Threshold angle in degrees beyond which the device is considered moving. */ - private final float THRESHOLD_ANGLE = 2f; - /** Threshold energy above which the device is considered moving. */ private final float THRESHOLD_ENERGY = 5f; @@ -88,6 +85,9 @@ public class AnyMotionDetector { private SensorManager mSensorManager; private PowerManager.WakeLock mWakeLock; + /** Threshold angle in degrees beyond which the device is considered moving. */ + private final float mThresholdAngle; + /** The minimum number of samples required to detect AnyMotion. */ private int mNumSufficientSamples; @@ -106,7 +106,7 @@ public class AnyMotionDetector { private DeviceIdleCallback mCallback = null; public AnyMotionDetector(PowerManager pm, Handler handler, SensorManager sm, - DeviceIdleCallback callback) { + DeviceIdleCallback callback, float thresholdAngle) { if (DEBUG) Slog.d(TAG, "AnyMotionDetector instantiated."); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); mWakeLock.setReferenceCounted(false); @@ -116,6 +116,7 @@ public class AnyMotionDetector { mMeasurementInProgress = false; mState = STATE_INACTIVE; mCallback = callback; + mThresholdAngle = thresholdAngle; mRunningStats = new RunningSignalStats(); mNumSufficientSamples = (int) Math.ceil( ((double)ORIENTATION_MEASUREMENT_DURATION_MILLIS / SAMPLING_INTERVAL_MILLIS)); @@ -224,8 +225,9 @@ public class AnyMotionDetector { Vector3 previousGravityVectorNormalized = mPreviousGravityVector.normalized(); Vector3 currentGravityVectorNormalized = mCurrentGravityVector.normalized(); float angle = previousGravityVectorNormalized.angleBetween(currentGravityVectorNormalized); - if (DEBUG) Slog.d(TAG, "getStationaryStatus: angle = " + angle); - if ((angle < THRESHOLD_ANGLE) && (mRunningStats.getEnergy() < THRESHOLD_ENERGY)) { + if (DEBUG) Slog.d(TAG, "getStationaryStatus: angle = " + angle + + " energy = " + mRunningStats.getEnergy()); + if ((angle < mThresholdAngle) && (mRunningStats.getEnergy() < THRESHOLD_ENERGY)) { return RESULT_STATIONARY; } else if (Float.isNaN(angle)) { /** diff --git a/services/core/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java index b3b46513ec6a..2eeaec96b581 100644 --- a/services/core/java/com/android/server/BatteryService.java +++ b/services/core/java/com/android/server/BatteryService.java @@ -120,6 +120,7 @@ public final class BatteryService extends SystemService { private int mLastBatteryVoltage; private int mLastBatteryTemperature; private boolean mLastBatteryLevelCritical; + private int mLastMaxChargingCurrent; private int mInvalidCharger; private int mLastInvalidCharger; @@ -323,6 +324,7 @@ public final class BatteryService extends SystemService { + "chargerAcOnline=" + mBatteryProps.chargerAcOnline + ", chargerUsbOnline=" + mBatteryProps.chargerUsbOnline + ", chargerWirelessOnline=" + mBatteryProps.chargerWirelessOnline + + ", maxChargingCurrent" + mBatteryProps.maxChargingCurrent + ", batteryStatus=" + mBatteryProps.batteryStatus + ", batteryHealth=" + mBatteryProps.batteryHealth + ", batteryPresent=" + mBatteryProps.batteryPresent @@ -353,6 +355,7 @@ public final class BatteryService extends SystemService { mPlugType != mLastPlugType || mBatteryProps.batteryVoltage != mLastBatteryVoltage || mBatteryProps.batteryTemperature != mLastBatteryTemperature || + mBatteryProps.maxChargingCurrent != mLastMaxChargingCurrent || mInvalidCharger != mLastInvalidCharger)) { if (mPlugType != mLastPlugType) { @@ -479,6 +482,7 @@ public final class BatteryService extends SystemService { mLastPlugType = mPlugType; mLastBatteryVoltage = mBatteryProps.batteryVoltage; mLastBatteryTemperature = mBatteryProps.batteryTemperature; + mLastMaxChargingCurrent = mBatteryProps.maxChargingCurrent; mLastBatteryLevelCritical = mBatteryLevelCritical; mLastInvalidCharger = mInvalidCharger; } @@ -503,17 +507,21 @@ public final class BatteryService extends SystemService { intent.putExtra(BatteryManager.EXTRA_TEMPERATURE, mBatteryProps.batteryTemperature); intent.putExtra(BatteryManager.EXTRA_TECHNOLOGY, mBatteryProps.batteryTechnology); intent.putExtra(BatteryManager.EXTRA_INVALID_CHARGER, mInvalidCharger); + intent.putExtra(BatteryManager.EXTRA_MAX_CHARGING_CURRENT, mBatteryProps.maxChargingCurrent); if (DEBUG) { Slog.d(TAG, "Sending ACTION_BATTERY_CHANGED. level:" + mBatteryProps.batteryLevel + ", scale:" + BATTERY_SCALE + ", status:" + mBatteryProps.batteryStatus + - ", health:" + mBatteryProps.batteryHealth + ", present:" + mBatteryProps.batteryPresent + + ", health:" + mBatteryProps.batteryHealth + + ", present:" + mBatteryProps.batteryPresent + ", voltage: " + mBatteryProps.batteryVoltage + ", temperature: " + mBatteryProps.batteryTemperature + ", technology: " + mBatteryProps.batteryTechnology + - ", AC powered:" + mBatteryProps.chargerAcOnline + ", USB powered:" + mBatteryProps.chargerUsbOnline + + ", AC powered:" + mBatteryProps.chargerAcOnline + + ", USB powered:" + mBatteryProps.chargerUsbOnline + ", Wireless powered:" + mBatteryProps.chargerWirelessOnline + - ", icon:" + icon + ", invalid charger:" + mInvalidCharger); + ", icon:" + icon + ", invalid charger:" + mInvalidCharger + + ", maxChargingCurrent:" + mBatteryProps.maxChargingCurrent); } mHandler.post(new Runnable() { @@ -618,6 +626,7 @@ public final class BatteryService extends SystemService { pw.println(" AC powered: " + mBatteryProps.chargerAcOnline); pw.println(" USB powered: " + mBatteryProps.chargerUsbOnline); pw.println(" Wireless powered: " + mBatteryProps.chargerWirelessOnline); + pw.println(" Max charging current: " + mBatteryProps.maxChargingCurrent); pw.println(" status: " + mBatteryProps.batteryStatus); pw.println(" health: " + mBatteryProps.batteryHealth); pw.println(" present: " + mBatteryProps.batteryPresent); diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index 50bd544a308f..d5c4a41f07b2 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -273,7 +273,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub { sysUiUid = mContext.getPackageManager().getPackageUid("com.android.systemui", UserHandle.USER_OWNER); } catch (PackageManager.NameNotFoundException e) { - Log.wtf(TAG, "Unable to resolve SystemUI's UID.", e); + // Some platforms, such as wearables do not have a system ui. + Log.w(TAG, "Unable to resolve SystemUI's UID.", e); } mSystemUiUid = sysUiUid; } diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 4919bed4cf11..6190a5ab357e 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -47,6 +47,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.database.ContentObserver; import android.net.ConnectivityManager; +import android.net.ConnectivityManager.PacketKeepalive; import android.net.IConnectivityManager; import android.net.INetworkManagementEventObserver; import android.net.INetworkPolicyListener; @@ -117,6 +118,7 @@ import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.XmlUtils; import com.android.server.am.BatteryStatsService; import com.android.server.connectivity.DataConnectionStats; +import com.android.server.connectivity.KeepaliveTracker; import com.android.server.connectivity.NetworkDiagnostics; import com.android.server.connectivity.Nat464Xlat; import com.android.server.connectivity.NetworkAgentInfo; @@ -148,6 +150,8 @@ import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; +import java.util.SortedSet; +import java.util.TreeSet; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -355,6 +359,9 @@ public class ConnectivityService extends IConnectivityManager.Stub */ private static final int EVENT_REGISTER_NETWORK_LISTENER_WITH_INTENT = 31; + /** Handler thread used for both of the handlers below. */ + @VisibleForTesting + protected final HandlerThread mHandlerThread; /** Handler used for internal events. */ final private InternalHandler mHandler; /** Handler used for incoming {@link NetworkStateTracker} events. */ @@ -399,6 +406,8 @@ public class ConnectivityService extends IConnectivityManager.Stub TelephonyManager mTelephonyManager; + private KeepaliveTracker mKeepaliveTracker; + // sequence number for Networks; keep in sync with system/netd/NetworkController.cpp private final static int MIN_NET_ID = 100; // some reserved marks private final static int MAX_NET_ID = 65535; @@ -505,7 +514,6 @@ public class ConnectivityService extends IConnectivityManager.Stub ArrayList<NetworkAgentInfo> list = mTypeLists[type]; if (list.contains(nai)) { - loge("Attempting to register duplicate agent for type " + type + ": " + nai); return; } @@ -609,6 +617,11 @@ public class ConnectivityService extends IConnectivityManager.Stub } private LegacyTypeTracker mLegacyTypeTracker = new LegacyTypeTracker(); + @VisibleForTesting + protected HandlerThread createHandlerThread() { + return new HandlerThread("ConnectivityServiceThread"); + } + public ConnectivityService(Context context, INetworkManagementService netManager, INetworkStatsService statsService, INetworkPolicyManager policyManager) { if (DBG) log("ConnectivityService starting up"); @@ -622,10 +635,10 @@ public class ConnectivityService extends IConnectivityManager.Stub mDefaultMobileDataRequest = createInternetRequestForTransport( NetworkCapabilities.TRANSPORT_CELLULAR); - HandlerThread handlerThread = new HandlerThread("ConnectivityServiceThread"); - handlerThread.start(); - mHandler = new InternalHandler(handlerThread.getLooper()); - mTrackerHandler = new NetworkStateTrackerHandler(handlerThread.getLooper()); + mHandlerThread = createHandlerThread(); + mHandlerThread.start(); + mHandler = new InternalHandler(mHandlerThread.getLooper()); + mTrackerHandler = new NetworkStateTrackerHandler(mHandlerThread.getLooper()); // setup our unique device name if (TextUtils.isEmpty(SystemProperties.get("net.hostname"))) { @@ -764,6 +777,8 @@ public class ConnectivityService extends IConnectivityManager.Stub mPacManager = new PacManager(mContext, mHandler, EVENT_PROXY_HAS_CHANGED); mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + + mKeepaliveTracker = new KeepaliveTracker(mHandler); } private NetworkRequest createInternetRequestForTransport(int transportType) { @@ -1450,6 +1465,10 @@ public class ConnectivityService extends IConnectivityManager.Stub "ConnectivityService"); } + private void enforceKeepalivePermission() { + mContext.enforceCallingOrSelfPermission(KeepaliveTracker.PERMISSION, "ConnectivityService"); + } + public void sendConnectedBroadcast(NetworkInfo info) { enforceConnectivityInternalPermission(); sendGeneralBroadcast(info, CONNECTIVITY_ACTION); @@ -1512,10 +1531,14 @@ public class ConnectivityService extends IConnectivityManager.Stub final long ident = Binder.clearCallingIdentity(); if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) { + final NetworkInfo ni = intent.getParcelableExtra( + ConnectivityManager.EXTRA_NETWORK_INFO); + if (ni.getType() == ConnectivityManager.TYPE_MOBILE_SUPL) { + intent.setAction(ConnectivityManager.CONNECTIVITY_ACTION_SUPL); + intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); + } final IBatteryStats bs = BatteryStatsService.getService(); try { - NetworkInfo ni = intent.getParcelableExtra( - ConnectivityManager.EXTRA_NETWORK_INFO); bs.noteConnectivityChanged(intent.getIntExtra( ConnectivityManager.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_NONE), ni != null ? ni.getState().toString() : "?"); @@ -1841,10 +1864,13 @@ public class ConnectivityService extends IConnectivityManager.Stub pw.println(", last requested never"); } } - pw.println(); + pw.println(); mTethering.dump(fd, pw, args); + pw.println(); + mKeepaliveTracker.dump(pw); + if (mInetLog != null && mInetLog.size() > 0) { pw.println(); pw.println("Inet condition reports:"); @@ -1922,7 +1948,12 @@ public class ConnectivityService extends IConnectivityManager.Stub (NetworkCapabilities)msg.obj; if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL) || networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED)) { - Slog.wtf(TAG, "BUG: " + nai + " has stateful capability."); + Slog.wtf(TAG, "BUG: " + nai + " has CS-managed capability."); + } + if (nai.created && !nai.networkCapabilities.equalImmutableCapabilities( + networkCapabilities)) { + Slog.wtf(TAG, "BUG: " + nai + " changed immutable capabilities: " + + nai.networkCapabilities + " -> " + networkCapabilities); } updateCapabilities(nai, networkCapabilities); } @@ -2006,6 +2037,15 @@ public class ConnectivityService extends IConnectivityManager.Stub nai.networkMisc.acceptUnvalidated = (boolean) msg.obj; break; } + case NetworkAgent.EVENT_PACKET_KEEPALIVE: { + NetworkAgentInfo nai = mNetworkAgentInfos.get(msg.replyTo); + if (nai == null) { + loge("EVENT_PACKET_KEEPALIVE from unknown NetworkAgent"); + break; + } + mKeepaliveTracker.handleEventPacketKeepalive(nai, msg); + break; + } case NetworkMonitor.EVENT_NETWORK_TESTED: { NetworkAgentInfo nai = (NetworkAgentInfo)msg.obj; if (isLiveNetworkAgent(nai, "EVENT_NETWORK_TESTED")) { @@ -2148,6 +2188,8 @@ public class ConnectivityService extends IConnectivityManager.Stub // sending all CALLBACK_LOST messages (for requests, not listens) at the end // of rematchAllNetworksAndRequests notifyNetworkCallbacks(nai, ConnectivityManager.CALLBACK_LOST); + mKeepaliveTracker.handleStopAllKeepalives(nai, + ConnectivityManager.PacketKeepalive.ERROR_INVALID_NETWORK); nai.networkMonitor.sendMessage(NetworkMonitor.CMD_NETWORK_DISCONNECTED); mNetworkAgentInfos.remove(msg.replyTo); updateClat(null, nai.linkProperties, nai); @@ -2226,6 +2268,14 @@ public class ConnectivityService extends IConnectivityManager.Stub private void handleRegisterNetworkRequest(NetworkRequestInfo nri) { mNetworkRequests.put(nri.request, nri); mNetworkRequestInfoLogs.log("REGISTER " + nri); + if (!nri.isRequest) { + for (NetworkAgentInfo network : mNetworkAgentInfos.values()) { + if (nri.request.networkCapabilities.hasSignalStrength() && + network.satisfiesImmutableCapabilitiesOf(nri.request)) { + updateSignalStrengthThresholds(network, "REGISTER", nri.request); + } + } + } rematchAllNetworksAndRequests(null, 0); if (nri.isRequest && mNetworkForRequestId.get(nri.request.requestId) == null) { sendUpdatedScoreToFactories(nri.request, 0); @@ -2339,6 +2389,10 @@ public class ConnectivityService extends IConnectivityManager.Stub // if this listen request applies and remove it. for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) { nai.networkRequests.remove(nri.request.requestId); + if (nri.request.networkCapabilities.hasSignalStrength() && + nai.satisfiesImmutableCapabilitiesOf(nri.request)) { + updateSignalStrengthThresholds(nai, "RELEASE", nri.request); + } } } callCallbackForRequest(nri, null, ConnectivityManager.CALLBACK_RELEASED); @@ -2505,6 +2559,19 @@ public class ConnectivityService extends IConnectivityManager.Stub handleMobileDataAlwaysOn(); break; } + // Sent by KeepaliveTracker to process an app request on the state machine thread. + case NetworkAgent.CMD_START_PACKET_KEEPALIVE: { + mKeepaliveTracker.handleStartKeepalive(msg); + break; + } + // Sent by KeepaliveTracker to process an app request on the state machine thread. + case NetworkAgent.CMD_STOP_PACKET_KEEPALIVE: { + NetworkAgentInfo nai = getNetworkAgentInfoForNetwork((Network) msg.obj); + int slot = msg.arg1; + int reason = msg.arg2; + mKeepaliveTracker.handleStopKeepalive(nai, slot, reason); + break; + } case EVENT_SYSTEM_READY: { for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) { nai.networkMonitor.systemReady = true; @@ -3554,15 +3621,47 @@ public class ConnectivityService extends IConnectivityManager.Stub } } - private void ensureImmutableCapabilities(NetworkCapabilities networkCapabilities) { - if (networkCapabilities.hasCapability(NET_CAPABILITY_VALIDATED)) { - throw new IllegalArgumentException( - "Cannot request network with NET_CAPABILITY_VALIDATED"); + private void ensureRequestableCapabilities(NetworkCapabilities networkCapabilities) { + final String badCapability = networkCapabilities.describeFirstNonRequestableCapability(); + if (badCapability != null) { + throw new IllegalArgumentException("Cannot request network with " + badCapability); + } + } + + private ArrayList<Integer> getSignalStrengthThresholds(NetworkAgentInfo nai) { + final SortedSet<Integer> thresholds = new TreeSet(); + synchronized (nai) { + for (NetworkRequestInfo nri : mNetworkRequests.values()) { + if (nri.request.networkCapabilities.hasSignalStrength() && + nai.satisfiesImmutableCapabilitiesOf(nri.request)) { + thresholds.add(nri.request.networkCapabilities.getSignalStrength()); + } + } } - if (networkCapabilities.hasCapability(NET_CAPABILITY_CAPTIVE_PORTAL)) { - throw new IllegalArgumentException( - "Cannot request network with NET_CAPABILITY_CAPTIVE_PORTAL"); + return new ArrayList<Integer>(thresholds); + } + + private void updateSignalStrengthThresholds( + NetworkAgentInfo nai, String reason, NetworkRequest request) { + ArrayList<Integer> thresholdsArray = getSignalStrengthThresholds(nai); + Bundle thresholds = new Bundle(); + thresholds.putIntegerArrayList("thresholds", thresholdsArray); + + // TODO: Switch to VDBG. + if (DBG) { + String detail; + if (request != null && request.networkCapabilities.hasSignalStrength()) { + detail = reason + " " + request.networkCapabilities.getSignalStrength(); + } else { + detail = reason; + } + log(String.format("updateSignalStrengthThresholds: %s, sending %s to %s", + detail, Arrays.toString(thresholdsArray.toArray()), nai.name())); } + + nai.asyncChannel.sendMessage( + android.net.NetworkAgent.CMD_SET_SIGNAL_STRENGTH_THRESHOLDS, + 0, 0, thresholds); } @Override @@ -3571,7 +3670,7 @@ public class ConnectivityService extends IConnectivityManager.Stub networkCapabilities = new NetworkCapabilities(networkCapabilities); enforceNetworkRequestPermissions(networkCapabilities); enforceMeteredApnPolicy(networkCapabilities); - ensureImmutableCapabilities(networkCapabilities); + ensureRequestableCapabilities(networkCapabilities); if (timeoutMs < 0 || timeoutMs > ConnectivityManager.MAX_NETWORK_REQUEST_TIMEOUT_MS) { throw new IllegalArgumentException("Bad timeout specified"); @@ -3640,7 +3739,7 @@ public class ConnectivityService extends IConnectivityManager.Stub networkCapabilities = new NetworkCapabilities(networkCapabilities); enforceNetworkRequestPermissions(networkCapabilities); enforceMeteredApnPolicy(networkCapabilities); - ensureImmutableCapabilities(networkCapabilities); + ensureRequestableCapabilities(networkCapabilities); NetworkRequest networkRequest = new NetworkRequest(networkCapabilities, TYPE_NONE, nextNetworkRequestId()); @@ -3866,6 +3965,8 @@ public class ConnectivityService extends IConnectivityManager.Stub notifyIfacesChanged(); notifyNetworkCallbacks(networkAgent, ConnectivityManager.CALLBACK_IP_CHANGED); } + + mKeepaliveTracker.handleCheckKeepalivesStillValid(networkAgent); } private void updateClat(LinkProperties newLp, LinkProperties oldLp, NetworkAgentInfo nai) { @@ -4203,7 +4304,7 @@ public class ConnectivityService extends IConnectivityManager.Stub boolean keep = newNetwork.isVPN(); boolean isNewDefault = false; NetworkAgentInfo oldDefaultNetwork = null; - if (DBG) log("rematching " + newNetwork.name()); + if (VDBG) log("rematching " + newNetwork.name()); // Find and migrate to this Network any NetworkRequests for // which this network is now the best. ArrayList<NetworkAgentInfo> affectedNetworks = new ArrayList<NetworkAgentInfo>(); @@ -4240,6 +4341,7 @@ public class ConnectivityService extends IConnectivityManager.Stub } if (currentNetwork == null || currentNetwork.getCurrentScore() < newNetwork.getCurrentScore()) { + if (DBG) log("rematch for " + newNetwork.name()); if (currentNetwork != null) { if (DBG) log(" accepting network in place of " + currentNetwork.name()); currentNetwork.networkRequests.remove(nri.request.requestId); @@ -4532,6 +4634,15 @@ public class ConnectivityService extends IConnectivityManager.Stub // TODO: support proxy per network. } + // Whether a particular NetworkRequest listen should cause signal strength thresholds to + // be communicated to a particular NetworkAgent depends only on the network's immutable, + // capabilities, so it only needs to be done once on initial connect, not every time the + // network's capabilities change. Note that we do this before rematching the network, + // so we could decide to tear it down immediately afterwards. That's fine though - on + // disconnection NetworkAgents should stop any signal strength monitoring they have been + // doing. + updateSignalStrengthThresholds(networkAgent, "CONNECT", null); + // Consider network even though it is not yet validated. rematchNetworkAndRequests(networkAgent, ReapUnvalidatedNetworks.REAP); @@ -4711,6 +4822,22 @@ public class ConnectivityService extends IConnectivityManager.Stub } @Override + public void startNattKeepalive(Network network, int intervalSeconds, Messenger messenger, + IBinder binder, String srcAddr, int srcPort, String dstAddr) { + enforceKeepalivePermission(); + mKeepaliveTracker.startNattKeepalive( + getNetworkAgentInfoForNetwork(network), + intervalSeconds, messenger, binder, + srcAddr, srcPort, dstAddr, ConnectivityManager.PacketKeepalive.NATT_PORT); + } + + @Override + public void stopKeepalive(Network network, int slot) { + mHandler.sendMessage(mHandler.obtainMessage( + NetworkAgent.CMD_STOP_PACKET_KEEPALIVE, slot, PacketKeepalive.SUCCESS, network)); + } + + @Override public void factoryReset() { enforceConnectivityInternalPermission(); diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java index 80fd4419a821..5239ede18408 100644 --- a/services/core/java/com/android/server/DeviceIdleController.java +++ b/services/core/java/com/android/server/DeviceIdleController.java @@ -31,6 +31,8 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.database.ContentObserver; import android.hardware.Sensor; import android.hardware.SensorManager; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; import android.hardware.TriggerEvent; import android.hardware.TriggerEventListener; import android.hardware.display.DisplayManager; @@ -111,7 +113,7 @@ public class DeviceIdleController extends SystemService private INetworkPolicyManager mNetworkPolicyManager; private DisplayManager mDisplayManager; private SensorManager mSensorManager; - private Sensor mSigMotionSensor; + private Sensor mMotionSensor; private LocationManager mLocationManager; private LocationRequest mLocationRequest; private PendingIntent mSensingAlarmIntent; @@ -123,12 +125,12 @@ public class DeviceIdleController extends SystemService private boolean mForceIdle; private boolean mScreenOn; private boolean mCharging; - private boolean mSigMotionActive; private boolean mSensing; private boolean mNotMoving; private boolean mLocating; private boolean mLocated; - private boolean mHaveGps; + private boolean mHasGps; + private boolean mHasNetworkLocation; private Location mLastGenericLocation; private Location mLastGpsLocation; @@ -267,13 +269,57 @@ public class DeviceIdleController extends SystemService } }; - private final TriggerEventListener mSigMotionListener = new TriggerEventListener() { - @Override public void onTrigger(TriggerEvent event) { + private final class MotionListener extends TriggerEventListener + implements SensorEventListener { + + boolean active = false; + + @Override + public void onTrigger(TriggerEvent event) { synchronized (DeviceIdleController.this) { - significantMotionLocked(); + active = false; + motionLocked(); } } - }; + + @Override + public void onSensorChanged(SensorEvent event) { + synchronized (DeviceIdleController.this) { + mSensorManager.unregisterListener(this, mMotionSensor); + active = false; + motionLocked(); + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) {} + + public boolean registerLocked() { + boolean success = false; + if (mMotionSensor.getReportingMode() == Sensor.REPORTING_MODE_ONE_SHOT) { + success = mSensorManager.requestTriggerSensor(mMotionListener, mMotionSensor); + } else { + success = mSensorManager.registerListener( + mMotionListener, mMotionSensor, SensorManager.SENSOR_DELAY_NORMAL); + } + if (success) { + active = true; + } else { + Slog.e(TAG, "Unable to register for " + mMotionSensor); + } + return success; + } + + public void unregisterLocked() { + if (mMotionSensor.getReportingMode() == Sensor.REPORTING_MODE_ONE_SHOT) { + mSensorManager.cancelTriggerSensor(mMotionListener, mMotionSensor); + } else { + mSensorManager.unregisterListener(mMotionListener); + } + active = false; + } + } + private final MotionListener mMotionListener = new MotionListener(); private final LocationListener mGenericLocationListener = new LocationListener() { @Override @@ -348,7 +394,7 @@ public class DeviceIdleController extends SystemService * This is the time, after becoming inactive, at which we start looking at the * motion sensor to determine if the device is being left alone. We don't do this * immediately after going inactive just because we don't want to be continually running - * the significant motion sensor whenever the screen is off. + * the motion sensor whenever the screen is off. * @see Settings.Global#DEVICE_IDLE_CONSTANTS * @see #KEY_INACTIVE_TIMEOUT */ @@ -391,7 +437,7 @@ public class DeviceIdleController extends SystemService /** * This is the time, after the inactive timeout elapses, that we will wait looking - * for significant motion until we truly consider the device to be idle. + * for motion until we truly consider the device to be idle. * @see Settings.Global#DEVICE_IDLE_CONSTANTS * @see #KEY_IDLE_AFTER_INACTIVE_TIMEOUT */ @@ -882,17 +928,38 @@ public class DeviceIdleController extends SystemService mDisplayManager = (DisplayManager) getContext().getSystemService( Context.DISPLAY_SERVICE); mSensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE); - mSigMotionSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION); - mLocationManager = (LocationManager) getContext().getSystemService( - Context.LOCATION_SERVICE); - mLocationRequest = new LocationRequest() - .setQuality(LocationRequest.ACCURACY_FINE) - .setInterval(0) - .setFastestInterval(0) - .setNumUpdates(1); + int sigMotionSensorId = getContext().getResources().getInteger( + com.android.internal.R.integer.config_autoPowerModeAnyMotionSensor); + if (sigMotionSensorId > 0) { + mMotionSensor = mSensorManager.getDefaultSensor(sigMotionSensorId, true); + } + if (mMotionSensor == null && getContext().getResources().getBoolean( + com.android.internal.R.bool.config_autoPowerModePreferWristTilt)) { + mMotionSensor = mSensorManager.getDefaultSensor( + Sensor.TYPE_WRIST_TILT_GESTURE, true); + } + if (mMotionSensor == null) { + // As a last ditch, fall back to SMD. + mMotionSensor = mSensorManager.getDefaultSensor( + Sensor.TYPE_SIGNIFICANT_MOTION, true); + } + + if (getContext().getResources().getBoolean( + com.android.internal.R.bool.config_autoPowerModePrefetchLocation)) { + mLocationManager = (LocationManager) getContext().getSystemService( + Context.LOCATION_SERVICE); + mLocationRequest = new LocationRequest() + .setQuality(LocationRequest.ACCURACY_FINE) + .setInterval(0) + .setFastestInterval(0) + .setNumUpdates(1); + } + + float angleThreshold = getContext().getResources().getInteger( + com.android.internal.R.integer.config_autoPowerModeThresholdAngle) / 100f; mAnyMotionDetector = new AnyMotionDetector( (PowerManager) getContext().getSystemService(Context.POWER_SERVICE), - mHandler, mSensorManager, this); + mHandler, mSensorManager, this, angleThreshold); Intent intent = new Intent(ACTION_STEP_IDLE_STATE) .setPackage("android") @@ -1221,7 +1288,7 @@ public class DeviceIdleController extends SystemService cancelAlarmLocked(); cancelSensingAlarmLocked(); cancelLocatingLocked(); - stopMonitoringSignificantMotion(); + stopMonitoringMotionLocked(); mAnyMotionDetector.stop(); } @@ -1250,8 +1317,8 @@ public class DeviceIdleController extends SystemService switch (mState) { case STATE_INACTIVE: // We have now been inactive long enough, it is time to start looking - // for significant motion and sleep some more while doing so. - startMonitoringSignificantMotion(); + // for motion and sleep some more while doing so. + startMonitoringMotionLocked(); scheduleAlarmLocked(mConstants.IDLE_AFTER_INACTIVE_TIMEOUT, false); // Reset the upcoming idle delays. mNextIdlePendingDelay = mConstants.IDLE_PENDING_TIMEOUT; @@ -1279,17 +1346,30 @@ public class DeviceIdleController extends SystemService EventLogTags.writeDeviceIdle(mState, "step"); cancelSensingAlarmLocked(); scheduleSensingAlarmLocked(mConstants.LOCATING_TIMEOUT); - mLocating = true; - mLocationManager.requestLocationUpdates(mLocationRequest, mGenericLocationListener, - mHandler.getLooper()); - if (mLocationManager.getProvider(LocationManager.GPS_PROVIDER) != null) { - mHaveGps = true; + if (mLocationManager != null + && mLocationManager.getProvider(LocationManager.NETWORK_PROVIDER) != null) { + mLocationManager.requestLocationUpdates(mLocationRequest, + mGenericLocationListener, mHandler.getLooper()); + mLocating = true; + } else { + mHasNetworkLocation = false; + } + if (mLocationManager != null + && mLocationManager.getProvider(LocationManager.GPS_PROVIDER) != null) { + mHasGps = true; mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 5, mGpsLocationListener, mHandler.getLooper()); + mLocating = true; } else { - mHaveGps = false; + mHasGps = false; } - break; + // If we have a location provider, we're all set, the listeners will move state + // forward. + if (mLocating) { + break; + } + + // Otherwise, we have to move from locating into idle maintenance. case STATE_LOCATING: cancelSensingAlarmLocked(); cancelLocatingLocked(); @@ -1319,17 +1399,16 @@ public class DeviceIdleController extends SystemService } } - void significantMotionLocked() { - if (DEBUG) Slog.d(TAG, "significantMotionLocked()"); - // When the sensor goes off, its trigger is automatically removed. - mSigMotionActive = false; + void motionLocked() { + if (DEBUG) Slog.d(TAG, "motionLocked()"); + // The motion sensor will have been disabled at this point handleMotionDetectedLocked(mConstants.MOTION_INACTIVE_TIMEOUT, "motion"); } void handleMotionDetectedLocked(long timeout, String type) { // The device is not yet active, so we want to go back to the pending idle - // state to wait again for no motion. Note that we only monitor for significant - // motion after moving out of the inactive state, so no need to worry about that. + // state to wait again for no motion. Note that we only monitor for motion + // after moving out of the inactive state, so no need to worry about that. if (mState != STATE_ACTIVE) { scheduleReportActiveLocked(type, Process.myUid()); mState = STATE_ACTIVE; @@ -1346,7 +1425,7 @@ public class DeviceIdleController extends SystemService } if (DEBUG) Slog.d(TAG, "Generic location: " + location); mLastGenericLocation = new Location(location); - if (location.getAccuracy() > mConstants.LOCATION_ACCURACY && mHaveGps) { + if (location.getAccuracy() > mConstants.LOCATION_ACCURACY && mHasGps) { return; } mLocated = true; @@ -1371,19 +1450,17 @@ public class DeviceIdleController extends SystemService } } - void startMonitoringSignificantMotion() { - if (DEBUG) Slog.d(TAG, "startMonitoringSignificantMotion()"); - if (mSigMotionSensor != null && !mSigMotionActive) { - mSensorManager.requestTriggerSensor(mSigMotionListener, mSigMotionSensor); - mSigMotionActive = true; + void startMonitoringMotionLocked() { + if (DEBUG) Slog.d(TAG, "startMonitoringMotionLocked()"); + if (mMotionSensor != null && !mMotionListener.active) { + mMotionListener.registerLocked(); } } - void stopMonitoringSignificantMotion() { - if (DEBUG) Slog.d(TAG, "stopMonitoringSignificantMotion()"); - if (mSigMotionActive) { - mSensorManager.cancelTriggerSensor(mSigMotionListener, mSigMotionSensor); - mSigMotionActive = false; + void stopMonitoringMotionLocked() { + if (DEBUG) Slog.d(TAG, "stopMonitoringMotionLocked()"); + if (mMotionSensor != null && mMotionListener.active) { + mMotionListener.unregisterLocked(); } } @@ -1412,10 +1489,10 @@ public class DeviceIdleController extends SystemService void scheduleAlarmLocked(long delay, boolean idleUntil) { if (DEBUG) Slog.d(TAG, "scheduleAlarmLocked(" + delay + ", " + idleUntil + ")"); - if (mSigMotionSensor == null) { - // If there is no significant motion sensor on this device, then we won't schedule + if (mMotionSensor == null) { + // If there is no motion sensor on this device, then we won't schedule // alarms, because we can't determine if the device is not moving. This effectively - // turns off normal exeuction of device idling, although it is still possible to + // turns off normal execution of device idling, although it is still possible to // manually poke it by pretending like the alarm is going off. return; } @@ -1895,15 +1972,16 @@ public class DeviceIdleController extends SystemService pw.print(" mEnabled="); pw.println(mEnabled); pw.print(" mForceIdle="); pw.println(mForceIdle); - pw.print(" mSigMotionSensor="); pw.println(mSigMotionSensor); + pw.print(" mMotionSensor="); pw.println(mMotionSensor); pw.print(" mCurDisplay="); pw.println(mCurDisplay); pw.print(" mScreenOn="); pw.println(mScreenOn); pw.print(" mCharging="); pw.println(mCharging); - pw.print(" mSigMotionActive="); pw.println(mSigMotionActive); + pw.print(" mMotionActive="); pw.println(mMotionListener.active); pw.print(" mSensing="); pw.print(mSensing); pw.print(" mNotMoving="); pw.println(mNotMoving); - pw.print(" mLocating="); pw.print(mLocating); pw.print(" mHaveGps="); - pw.print(mHaveGps); pw.print(" mLocated="); pw.println(mLocated); + pw.print(" mLocating="); pw.print(mLocating); pw.print(" mHasGps="); + pw.print(mHasGps); pw.print(" mHasNetwork="); + pw.print(mHasNetworkLocation); pw.print(" mLocated="); pw.println(mLocated); if (mLastGenericLocation != null) { pw.print(" mLastGenericLocation="); pw.println(mLastGenericLocation); } diff --git a/services/core/java/com/android/server/EventLogTags.logtags b/services/core/java/com/android/server/EventLogTags.logtags index 7aebc1ac4b77..5b1f2f222ec9 100644 --- a/services/core/java/com/android/server/EventLogTags.logtags +++ b/services/core/java/com/android/server/EventLogTags.logtags @@ -29,6 +29,9 @@ option java_package com.android.server # This is logged when the partial wake lock (keeping the device awake # regardless of whether the screen is off) is acquired or released. 2729 power_partial_wake_state (releasedorAcquired|1|5),(tag|3) +# The device is being asked to go into a soft sleep (typically by the ungaze gesture). +# It logs the time remaining before the device would've normally gone to sleep without the request. +2731 power_soft_sleep_requested (savedwaketimems|2) # # Leave IDs through 2739 for more power logs (2730 used by battery_discharge above) @@ -244,3 +247,8 @@ option java_package com.android.server # --------------------------- 40000 volume_changed (stream|1), (prev_level|1), (level|1), (max_level|1), (caller|3) 40001 stream_devices_changed (stream|1), (prev_devices|1), (devices|1) + +# --------------------------- +# GestureLauncherService.java +# --------------------------- +40100 camera_gesture_triggered (gesture_on_time|2|3), (sensor1_on_time|2|3), (sensor2_on_time|2|3), (event_extra|1|1) diff --git a/services/core/java/com/android/server/GestureLauncherService.java b/services/core/java/com/android/server/GestureLauncherService.java new file mode 100644 index 000000000000..f2459852d706 --- /dev/null +++ b/services/core/java/com/android/server/GestureLauncherService.java @@ -0,0 +1,398 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server; + +import android.app.ActivityManager; +import android.app.StatusBarManager; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.res.Resources; +import android.database.ContentObserver; +import android.hardware.Sensor; +import android.hardware.SensorEvent; +import android.hardware.SensorEventListener; +import android.hardware.SensorManager; +import android.os.Handler; +import android.os.PowerManager; +import android.os.PowerManager.WakeLock; +import android.os.SystemClock; +import android.os.SystemProperties; +import android.provider.Settings; +import android.util.Slog; +import android.view.KeyEvent; + +import com.android.internal.logging.MetricsLogger; +import com.android.server.statusbar.StatusBarManagerInternal; + +/** + * The service that listens for gestures detected in sensor firmware and starts the intent + * accordingly. + * <p>For now, only camera launch gesture is supported, and in the future, more gestures can be + * added.</p> + * @hide + */ +public class GestureLauncherService extends SystemService { + private static final boolean DBG = false; + private static final String TAG = "GestureLauncherService"; + + /** + * Time in milliseconds in which the power button must be pressed twice so it will be considered + * as a camera launch. + */ + private static final long CAMERA_POWER_DOUBLE_TAP_TIME_MS = 300; + + /** The listener that receives the gesture event. */ + private final GestureEventListener mGestureListener = new GestureEventListener(); + + private Sensor mCameraLaunchSensor; + private Context mContext; + + /** The wake lock held when a gesture is detected. */ + private WakeLock mWakeLock; + private boolean mRegistered; + private int mUserId; + + // Below are fields used for event logging only. + /** Elapsed real time when the camera gesture is turned on. */ + private long mCameraGestureOnTimeMs = 0L; + + /** Elapsed real time when the last camera gesture was detected. */ + private long mCameraGestureLastEventTime = 0L; + + /** + * How long the sensor 1 has been turned on since camera launch sensor was + * subscribed to and when the last camera launch gesture was detected. + * <p>Sensor 1 is the main sensor used to detect camera launch gesture.</p> + */ + private long mCameraGestureSensor1LastOnTimeMs = 0L; + + /** + * If applicable, how long the sensor 2 has been turned on since camera + * launch sensor was subscribed to and when the last camera launch + * gesture was detected. + * <p>Sensor 2 is the secondary sensor used to detect camera launch gesture. + * This is optional and if only sensor 1 is used for detect camera launch + * gesture, this value would always be 0.</p> + */ + private long mCameraGestureSensor2LastOnTimeMs = 0L; + + /** + * Extra information about the event when the last camera launch gesture + * was detected. + */ + private int mCameraLaunchLastEventExtra = 0; + + /** + * Whether camera double tap power button gesture is currently enabled; + */ + private boolean mCameraDoubleTapPowerEnabled; + private long mLastPowerDown; + + public GestureLauncherService(Context context) { + super(context); + mContext = context; + } + + public void onStart() { + LocalServices.addService(GestureLauncherService.class, this); + } + + public void onBootPhase(int phase) { + if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { + Resources resources = mContext.getResources(); + if (!isGestureLauncherEnabled(resources)) { + if (DBG) Slog.d(TAG, "Gesture launcher is disabled in system properties."); + return; + } + + PowerManager powerManager = (PowerManager) mContext.getSystemService( + Context.POWER_SERVICE); + mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, + "GestureLauncherService"); + updateCameraRegistered(); + updateCameraDoubleTapPowerEnabled(); + + mUserId = ActivityManager.getCurrentUser(); + mContext.registerReceiver(mUserReceiver, new IntentFilter(Intent.ACTION_USER_SWITCHED)); + registerContentObservers(); + } + } + + private void registerContentObservers() { + mContext.getContentResolver().registerContentObserver( + Settings.Secure.getUriFor(Settings.Secure.CAMERA_GESTURE_DISABLED), + false, mSettingObserver, mUserId); + mContext.getContentResolver().registerContentObserver( + Settings.Secure.getUriFor(Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED), + false, mSettingObserver, mUserId); + } + + private void updateCameraRegistered() { + Resources resources = mContext.getResources(); + if (isCameraLaunchSettingEnabled(mContext, mUserId)) { + registerCameraLaunchGesture(resources); + } else { + unregisterCameraLaunchGesture(); + } + } + + private void updateCameraDoubleTapPowerEnabled() { + boolean enabled = isCameraDoubleTapPowerSettingEnabled(mContext, mUserId); + synchronized (this) { + mCameraDoubleTapPowerEnabled = enabled; + } + } + + private void unregisterCameraLaunchGesture() { + if (mRegistered) { + mRegistered = false; + mCameraGestureOnTimeMs = 0L; + mCameraGestureLastEventTime = 0L; + mCameraGestureSensor1LastOnTimeMs = 0; + mCameraGestureSensor2LastOnTimeMs = 0; + mCameraLaunchLastEventExtra = 0; + + SensorManager sensorManager = (SensorManager) mContext.getSystemService( + Context.SENSOR_SERVICE); + sensorManager.unregisterListener(mGestureListener); + } + } + + /** + * Registers for the camera launch gesture. + */ + private void registerCameraLaunchGesture(Resources resources) { + if (mRegistered) { + return; + } + mCameraGestureOnTimeMs = SystemClock.elapsedRealtime(); + mCameraGestureLastEventTime = mCameraGestureOnTimeMs; + SensorManager sensorManager = (SensorManager) mContext.getSystemService( + Context.SENSOR_SERVICE); + int cameraLaunchGestureId = resources.getInteger( + com.android.internal.R.integer.config_cameraLaunchGestureSensorType); + if (cameraLaunchGestureId != -1) { + mRegistered = false; + String sensorName = resources.getString( + com.android.internal.R.string.config_cameraLaunchGestureSensorStringType); + mCameraLaunchSensor = sensorManager.getDefaultSensor( + cameraLaunchGestureId, + true /*wakeUp*/); + + // Compare the camera gesture string type to that in the resource file to make + // sure we are registering the correct sensor. This is redundant check, it + // makes the code more robust. + if (mCameraLaunchSensor != null) { + if (sensorName.equals(mCameraLaunchSensor.getStringType())) { + mRegistered = sensorManager.registerListener(mGestureListener, + mCameraLaunchSensor, 0); + } else { + String message = String.format("Wrong configuration. Sensor type and sensor " + + "string type don't match: %s in resources, %s in the sensor.", + sensorName, mCameraLaunchSensor.getStringType()); + throw new RuntimeException(message); + } + } + if (DBG) Slog.d(TAG, "Camera launch sensor registered: " + mRegistered); + } else { + if (DBG) Slog.d(TAG, "Camera launch sensor is not specified."); + } + } + + public static boolean isCameraLaunchSettingEnabled(Context context, int userId) { + return isCameraLaunchEnabled(context.getResources()) + && (Settings.Secure.getIntForUser(context.getContentResolver(), + Settings.Secure.CAMERA_GESTURE_DISABLED, 0, userId) == 0); + } + + public static boolean isCameraDoubleTapPowerSettingEnabled(Context context, int userId) { + return isCameraDoubleTapPowerEnabled(context.getResources()) + && (Settings.Secure.getIntForUser(context.getContentResolver(), + Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0, userId) == 0); + } + + /** + * Whether to enable the camera launch gesture. + */ + public static boolean isCameraLaunchEnabled(Resources resources) { + boolean configSet = resources.getInteger( + com.android.internal.R.integer.config_cameraLaunchGestureSensorType) != -1; + return configSet && + !SystemProperties.getBoolean("gesture.disable_camera_launch", false); + } + + public static boolean isCameraDoubleTapPowerEnabled(Resources resources) { + return resources.getBoolean( + com.android.internal.R.bool.config_cameraDoubleTapPowerGestureEnabled); + } + + /** + * Whether GestureLauncherService should be enabled according to system properties. + */ + public static boolean isGestureLauncherEnabled(Resources resources) { + return isCameraLaunchEnabled(resources) || isCameraDoubleTapPowerEnabled(resources); + } + + public boolean interceptPowerKeyDown(KeyEvent event, boolean interactive) { + boolean launched = false; + boolean intercept = false; + long doubleTapInterval; + synchronized (this) { + doubleTapInterval = event.getEventTime() - mLastPowerDown; + if (mCameraDoubleTapPowerEnabled + && doubleTapInterval < CAMERA_POWER_DOUBLE_TAP_TIME_MS) { + launched = true; + intercept = interactive; + } + mLastPowerDown = event.getEventTime(); + } + if (launched) { + Slog.i(TAG, "Power button double tap gesture detected, launching camera."); + launched = handleCameraLaunchGesture(false /* useWakelock */, + StatusBarManager.CAMERA_LAUNCH_SOURCE_POWER_DOUBLE_TAP); + if (launched) { + MetricsLogger.action(mContext, MetricsLogger.ACTION_DOUBLE_TAP_POWER_CAMERA_GESTURE, + (int) doubleTapInterval); + } + } + MetricsLogger.histogram(mContext, "power_double_tap_interval", (int) doubleTapInterval); + return intercept && launched; + } + + /** + * @return true if camera was launched, false otherwise. + */ + private boolean handleCameraLaunchGesture(boolean useWakelock, int source) { + boolean userSetupComplete = Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.USER_SETUP_COMPLETE, 0) != 0; + if (!userSetupComplete) { + if (DBG) Slog.d(TAG, String.format( + "userSetupComplete = %s, ignoring camera launch gesture.", + userSetupComplete)); + return false; + } + if (DBG) Slog.d(TAG, String.format( + "userSetupComplete = %s, performing camera launch gesture.", + userSetupComplete)); + + if (useWakelock) { + // Make sure we don't sleep too early + mWakeLock.acquire(500L); + } + StatusBarManagerInternal service = LocalServices.getService( + StatusBarManagerInternal.class); + service.onCameraLaunchGestureDetected(source); + return true; + } + + private final BroadcastReceiver mUserReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) { + mUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); + mContext.getContentResolver().unregisterContentObserver(mSettingObserver); + registerContentObservers(); + updateCameraRegistered(); + updateCameraDoubleTapPowerEnabled(); + } + } + }; + + private final ContentObserver mSettingObserver = new ContentObserver(new Handler()) { + public void onChange(boolean selfChange, android.net.Uri uri, int userId) { + if (userId == mUserId) { + updateCameraRegistered(); + updateCameraDoubleTapPowerEnabled(); + } + } + }; + + private final class GestureEventListener implements SensorEventListener { + @Override + public void onSensorChanged(SensorEvent event) { + if (!mRegistered) { + if (DBG) Slog.d(TAG, "Ignoring gesture event because it's unregistered."); + return; + } + if (event.sensor == mCameraLaunchSensor) { + if (DBG) { + float[] values = event.values; + Slog.d(TAG, String.format("Received a camera launch event: " + + "values=[%.4f, %.4f, %.4f].", values[0], values[1], values[2])); + } + if (handleCameraLaunchGesture(true /* useWakelock */, + StatusBarManager.CAMERA_LAUNCH_SOURCE_WIGGLE)) { + MetricsLogger.action(mContext, MetricsLogger.ACTION_WIGGLE_CAMERA_GESTURE); + trackCameraLaunchEvent(event); + } + return; + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { + // Ignored. + } + + private void trackCameraLaunchEvent(SensorEvent event) { + long now = SystemClock.elapsedRealtime(); + long totalDuration = now - mCameraGestureOnTimeMs; + // values[0]: ratio between total time duration when accel is turned on and time + // duration since camera launch gesture is subscribed. + // values[1]: ratio between total time duration when gyro is turned on and time duration + // since camera launch gesture is subscribed. + // values[2]: extra information + float[] values = event.values; + + long sensor1OnTime = (long) (totalDuration * (double) values[0]); + long sensor2OnTime = (long) (totalDuration * (double) values[1]); + int extra = (int) values[2]; + + // We only log the difference in the event log to make aggregation easier. + long gestureOnTimeDiff = now - mCameraGestureLastEventTime; + long sensor1OnTimeDiff = sensor1OnTime - mCameraGestureSensor1LastOnTimeMs; + long sensor2OnTimeDiff = sensor2OnTime - mCameraGestureSensor2LastOnTimeMs; + int extraDiff = extra - mCameraLaunchLastEventExtra; + + // Gating against negative time difference. This doesn't usually happen, but it may + // happen because of numeric errors. + if (gestureOnTimeDiff < 0 || sensor1OnTimeDiff < 0 || sensor2OnTimeDiff < 0) { + if (DBG) Slog.d(TAG, "Skipped event logging because negative numbers."); + return; + } + + if (DBG) Slog.d(TAG, String.format("totalDuration: %d, sensor1OnTime: %s, " + + "sensor2OnTime: %d, extra: %d", + gestureOnTimeDiff, + sensor1OnTimeDiff, + sensor2OnTimeDiff, + extraDiff)); + EventLogTags.writeCameraGestureTriggered( + gestureOnTimeDiff, + sensor1OnTimeDiff, + sensor2OnTimeDiff, + extraDiff); + + mCameraGestureLastEventTime = now; + mCameraGestureSensor1LastOnTimeMs = sensor1OnTime; + mCameraGestureSensor2LastOnTimeMs = sensor2OnTime; + mCameraLaunchLastEventExtra = extra; + } + } +} diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index cae060a8493e..468ead0e9c92 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -542,22 +542,25 @@ public class LocationManagerService extends ILocationManager.Stub { Slog.e(TAG, "Unable to bind FLP Geofence proxy."); } - // bind to the hardware activity recognition if supported - if (ActivityRecognitionHardware.isSupported()) { - ActivityRecognitionProxy proxy = ActivityRecognitionProxy.createAndBind( - mContext, - mLocationHandler, - ActivityRecognitionHardware.getInstance(mContext), - com.android.internal.R.bool.config_enableActivityRecognitionHardwareOverlay, - com.android.internal.R.string.config_activityRecognitionHardwarePackageName, - com.android.internal.R.array.config_locationProviderPackageNames); - - if (proxy == null) { - Slog.e(TAG, "Unable to bind ActivityRecognitionProxy."); - } + // bind to hardware activity recognition + boolean activityRecognitionHardwareIsSupported = ActivityRecognitionHardware.isSupported(); + ActivityRecognitionHardware activityRecognitionHardware = null; + if (activityRecognitionHardwareIsSupported) { + activityRecognitionHardware = ActivityRecognitionHardware.getInstance(mContext); } else { Slog.e(TAG, "Hardware Activity-Recognition not supported."); } + ActivityRecognitionProxy proxy = ActivityRecognitionProxy.createAndBind( + mContext, + mLocationHandler, + activityRecognitionHardwareIsSupported, + activityRecognitionHardware, + com.android.internal.R.bool.config_enableActivityRecognitionHardwareOverlay, + com.android.internal.R.string.config_activityRecognitionHardwarePackageName, + com.android.internal.R.array.config_locationProviderPackageNames); + if (proxy == null) { + Slog.e(TAG, "Unable to bind ActivityRecognitionProxy."); + } String[] testProviderStrings = resources.getStringArray( com.android.internal.R.array.config_testLocationProviders); diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java index 5e2fe5a7c431..f1d7da4ee629 100644 --- a/services/core/java/com/android/server/LockSettingsService.java +++ b/services/core/java/com/android/server/LockSettingsService.java @@ -18,6 +18,7 @@ package com.android.server; import android.app.admin.DevicePolicyManager; import android.app.backup.BackupManager; +import android.app.trust.IStrongAuthTracker; import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; @@ -28,6 +29,8 @@ import android.content.pm.UserInfo; import static android.Manifest.permission.ACCESS_KEYGUARD_SECURE_STORAGE; import static android.content.Context.USER_SERVICE; import static android.Manifest.permission.READ_CONTACTS; +import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; + import android.database.sqlite.SQLiteDatabase; import android.os.Binder; import android.os.IBinder; @@ -70,6 +73,7 @@ public class LockSettingsService extends ILockSettings.Stub { private final Context mContext; private final LockSettingsStorage mStorage; + private final LockSettingsStrongAuth mStrongAuth = new LockSettingsStrongAuth(); private LockPatternUtils mLockPatternUtils; private boolean mFirstCallToVold; @@ -93,6 +97,7 @@ public class LockSettingsService extends ILockSettings.Stub { filter.addAction(Intent.ACTION_USER_ADDED); filter.addAction(Intent.ACTION_USER_STARTING); filter.addAction(Intent.ACTION_USER_REMOVED); + filter.addAction(Intent.ACTION_USER_PRESENT); mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL, filter, null, null); mStorage = new LockSettingsStorage(context, new LockSettingsStorage.Callback() { @@ -122,6 +127,8 @@ public class LockSettingsService extends ILockSettings.Stub { } else if (Intent.ACTION_USER_STARTING.equals(intent.getAction())) { final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); mStorage.prefetchUser(userHandle); + } else if (Intent.ACTION_USER_PRESENT.equals(intent.getAction())) { + mStrongAuth.reportUnlock(getSendingUserId()); } else if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())) { final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); if (userHandle > 0) { @@ -659,6 +666,10 @@ public class LockSettingsService extends ILockSettings.Stub { if (shouldReEnroll) { credentialUtil.setCredential(credential, credential, userId); } + } else if (response.getResponseCode() == VerifyCredentialResponse.RESPONSE_RETRY) { + if (response.getTimeout() > 0) { + requireStrongAuth(STRONG_AUTH_REQUIRED_AFTER_LOCKOUT, userId); + } } return response; @@ -713,6 +724,7 @@ public class LockSettingsService extends ILockSettings.Stub { private void removeUser(int userId) { mStorage.removeUser(userId); + mStrongAuth.removeUser(userId); final KeyStore ks = KeyStore.getInstance(); ks.onUserRemoved(userId); @@ -727,6 +739,24 @@ public class LockSettingsService extends ILockSettings.Stub { } } + @Override + public void registerStrongAuthTracker(IStrongAuthTracker tracker) { + checkPasswordReadPermission(UserHandle.USER_ALL); + mStrongAuth.registerStrongAuthTracker(tracker); + } + + @Override + public void unregisterStrongAuthTracker(IStrongAuthTracker tracker) { + checkPasswordReadPermission(UserHandle.USER_ALL); + mStrongAuth.unregisterStrongAuthTracker(tracker); + } + + @Override + public void requireStrongAuth(int strongAuthReason, int userId) { + checkWritePermission(userId); + mStrongAuth.requireStrongAuth(strongAuthReason, userId); + } + private static final String[] VALID_SETTINGS = new String[] { LockPatternUtils.LOCKOUT_PERMANENT_KEY, LockPatternUtils.LOCKOUT_ATTEMPT_DEADLINE, @@ -797,5 +827,4 @@ public class LockSettingsService extends ILockSettings.Stub { Slog.e(TAG, "Unable to acquire GateKeeperService"); return null; } - } diff --git a/services/core/java/com/android/server/LockSettingsStrongAuth.java b/services/core/java/com/android/server/LockSettingsStrongAuth.java new file mode 100644 index 000000000000..c023f4aa17a0 --- /dev/null +++ b/services/core/java/com/android/server/LockSettingsStrongAuth.java @@ -0,0 +1,167 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.server; + +import com.android.internal.widget.LockPatternUtils; +import com.android.internal.widget.LockPatternUtils.StrongAuthTracker; + +import android.app.trust.IStrongAuthTracker; +import android.os.DeadObjectException; +import android.os.Handler; +import android.os.Message; +import android.os.RemoteException; +import android.os.UserHandle; +import android.util.Slog; +import android.util.SparseIntArray; + +import java.util.ArrayList; + +import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_NOT_REQUIRED; + +/** + * Keeps track of requests for strong authentication. + */ +public class LockSettingsStrongAuth { + + private static final String TAG = "LockSettings"; + + private static final int MSG_REQUIRE_STRONG_AUTH = 1; + private static final int MSG_REGISTER_TRACKER = 2; + private static final int MSG_UNREGISTER_TRACKER = 3; + private static final int MSG_REMOVE_USER = 4; + + private final ArrayList<IStrongAuthTracker> mStrongAuthTrackers = new ArrayList<>(); + private final SparseIntArray mStrongAuthForUser = new SparseIntArray(); + + private void handleAddStrongAuthTracker(IStrongAuthTracker tracker) { + for (int i = 0; i < mStrongAuthTrackers.size(); i++) { + if (mStrongAuthTrackers.get(i).asBinder() == tracker.asBinder()) { + return; + } + } + mStrongAuthTrackers.add(tracker); + + for (int i = 0; i < mStrongAuthForUser.size(); i++) { + int key = mStrongAuthForUser.keyAt(i); + int value = mStrongAuthForUser.valueAt(i); + try { + tracker.onStrongAuthRequiredChanged(value, key); + } catch (RemoteException e) { + Slog.e(TAG, "Exception while adding StrongAuthTracker.", e); + } + } + } + + private void handleRemoveStrongAuthTracker(IStrongAuthTracker tracker) { + for (int i = 0; i < mStrongAuthTrackers.size(); i++) { + if (mStrongAuthTrackers.get(i).asBinder() == tracker.asBinder()) { + mStrongAuthTrackers.remove(i); + return; + } + } + } + + private void handleRequireStrongAuth(int strongAuthReason, int userId) { + if (userId == UserHandle.USER_ALL) { + for (int i = 0; i < mStrongAuthForUser.size(); i++) { + int key = mStrongAuthForUser.keyAt(i); + handleRequireStrongAuthOneUser(strongAuthReason, key); + } + } else { + handleRequireStrongAuthOneUser(strongAuthReason, userId); + } + } + + private void handleRequireStrongAuthOneUser(int strongAuthReason, int userId) { + int oldValue = mStrongAuthForUser.get(userId, LockPatternUtils.StrongAuthTracker.DEFAULT); + int newValue = strongAuthReason == STRONG_AUTH_NOT_REQUIRED + ? STRONG_AUTH_NOT_REQUIRED + : (oldValue | strongAuthReason); + if (oldValue != newValue) { + mStrongAuthForUser.put(userId, newValue); + notifyStrongAuthTrackers(newValue, userId); + } + } + + private void handleRemoveUser(int userId) { + int index = mStrongAuthForUser.indexOfKey(userId); + if (index >= 0) { + mStrongAuthForUser.removeAt(index); + notifyStrongAuthTrackers(StrongAuthTracker.DEFAULT, userId); + } + } + + private void notifyStrongAuthTrackers(int strongAuthReason, int userId) { + for (int i = 0; i < mStrongAuthTrackers.size(); i++) { + try { + mStrongAuthTrackers.get(i).onStrongAuthRequiredChanged(strongAuthReason, userId); + } catch (DeadObjectException e) { + Slog.d(TAG, "Removing dead StrongAuthTracker."); + mStrongAuthTrackers.remove(i); + i--; + } catch (RemoteException e) { + Slog.e(TAG, "Exception while notifying StrongAuthTracker.", e); + } + } + } + + public void registerStrongAuthTracker(IStrongAuthTracker tracker) { + mHandler.obtainMessage(MSG_REGISTER_TRACKER, tracker).sendToTarget(); + } + + public void unregisterStrongAuthTracker(IStrongAuthTracker tracker) { + mHandler.obtainMessage(MSG_UNREGISTER_TRACKER, tracker).sendToTarget(); + } + + public void removeUser(int userId) { + mHandler.obtainMessage(MSG_REMOVE_USER, userId, 0).sendToTarget(); + } + + public void requireStrongAuth(int strongAuthReason, int userId) { + if (userId == UserHandle.USER_ALL || userId >= UserHandle.USER_OWNER) { + mHandler.obtainMessage(MSG_REQUIRE_STRONG_AUTH, strongAuthReason, + userId).sendToTarget(); + } else { + throw new IllegalArgumentException( + "userId must be an explicit user id or USER_ALL"); + } + } + + public void reportUnlock(int userId) { + requireStrongAuth(STRONG_AUTH_NOT_REQUIRED, userId); + } + + private final Handler mHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_REGISTER_TRACKER: + handleAddStrongAuthTracker((IStrongAuthTracker) msg.obj); + break; + case MSG_UNREGISTER_TRACKER: + handleRemoveStrongAuthTracker((IStrongAuthTracker) msg.obj); + break; + case MSG_REQUIRE_STRONG_AUTH: + handleRequireStrongAuth(msg.arg1, msg.arg2); + break; + case MSG_REMOVE_USER: + handleRemoveUser(msg.arg1); + break; + } + } + }; +} diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index d10a457747a3..4e721da3cc65 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -368,11 +368,17 @@ class MountService extends IMountService.Stub private boolean shouldBenchmark() { final long benchInterval = Settings.Global.getLong(mContext.getContentResolver(), Settings.Global.STORAGE_BENCHMARK_INTERVAL, DateUtils.WEEK_IN_MILLIS); + if (benchInterval == -1) { + return false; + } else if (benchInterval == 0) { + return true; + } + synchronized (mLock) { for (int i = 0; i < mVolumes.size(); i++) { final VolumeInfo vol = mVolumes.valueAt(i); final VolumeRecord rec = mRecords.get(vol.fsUuid); - if (vol.isMountedReadable() && rec != null) { + if (vol.isMountedWritable() && rec != null) { final long benchAge = System.currentTimeMillis() - rec.lastBenchMillis; if (benchAge >= benchInterval) { return true; @@ -2582,6 +2588,63 @@ class MountService extends IMountService.Stub } @Override + public void createNewUserDir(int userHandle, String path) { + if (Binder.getCallingUid() != Process.SYSTEM_UID) { + throw new SecurityException("Only SYSTEM_UID can create user directories"); + } + + waitForReady(); + + if (DEBUG_EVENTS) { + Slog.i(TAG, "Creating new user dir"); + } + + try { + NativeDaemonEvent event = mCryptConnector.execute( + "cryptfs", "createnewuserdir", userHandle, path); + if (!"0".equals(event.getMessage())) { + String error = "createnewuserdir sent unexpected message: " + + event.getMessage(); + Slog.e(TAG, error); + // ext4enc:TODO is this the right exception? + throw new RuntimeException(error); + } + } catch (NativeDaemonConnectorException e) { + Slog.e(TAG, "createnewuserdir threw exception", e); + throw new RuntimeException("createnewuserdir threw exception", e); + } + } + + // ext4enc:TODO duplication between this and createNewUserDir is nasty + @Override + public void deleteUserKey(int userHandle) { + if (Binder.getCallingUid() != Process.SYSTEM_UID) { + throw new SecurityException("Only SYSTEM_UID can delete user keys"); + } + + waitForReady(); + + if (DEBUG_EVENTS) { + Slog.i(TAG, "Deleting user key"); + } + + try { + NativeDaemonEvent event = mCryptConnector.execute( + "cryptfs", "deleteuserkey", userHandle); + if (!"0".equals(event.getMessage())) { + String error = "deleteuserkey sent unexpected message: " + + event.getMessage(); + Slog.e(TAG, error); + // ext4enc:TODO is this the right exception? + throw new RuntimeException(error); + } + } catch (NativeDaemonConnectorException e) { + Slog.e(TAG, "deleteuserkey threw exception", e); + throw new RuntimeException("deleteuserkey threw exception", e); + } + } + + @Override public int mkdirs(String callingPkg, String appPath) { final int userId = UserHandle.getUserId(Binder.getCallingUid()); final UserEnvironment userEnv = new UserEnvironment(userId); diff --git a/services/core/java/com/android/server/ThermalObserver.java b/services/core/java/com/android/server/ThermalObserver.java new file mode 100644 index 000000000000..aee28fb6b295 --- /dev/null +++ b/services/core/java/com/android/server/ThermalObserver.java @@ -0,0 +1,146 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ + +package com.android.server; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.os.Binder; +import android.os.Handler; +import android.os.Message; +import android.os.PowerManager; +import android.os.UEventObserver; +import android.os.UserHandle; + +import java.io.FileDescriptor; +import java.io.PrintWriter; + +/** + * ThermalObserver for monitoring temperature changes. + */ +public class ThermalObserver extends SystemService { + private static final String TAG = "ThermalObserver"; + + private static final String CALLSTATE_UEVENT_MATCH = + "DEVPATH=/devices/virtual/switch/thermalstate"; + + private static final int MSG_THERMAL_STATE_CHANGED = 0; + + private static final int SWITCH_STATE_NORMAL = 0; + private static final int SWITCH_STATE_WARNING = 1; + private static final int SWITCH_STATE_EXCEEDED = 2; + + private final PowerManager mPowerManager; + private final PowerManager.WakeLock mWakeLock; + + private final Object mLock = new Object(); + private Integer mLastState; + + private final UEventObserver mThermalWarningObserver = new UEventObserver() { + @Override + public void onUEvent(UEventObserver.UEvent event) { + updateLocked(Integer.parseInt(event.get("SWITCH_STATE"))); + } + }; + + private final Handler mHandler = new Handler(true /*async*/) { + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case MSG_THERMAL_STATE_CHANGED: + handleThermalStateChange(msg.arg1); + mWakeLock.release(); + break; + } + } + }; + + public ThermalObserver(Context context) { + super(context); + mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE); + mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); + + mThermalWarningObserver.startObserving(CALLSTATE_UEVENT_MATCH); + } + + private void updateLocked(int state) { + Message message = new Message(); + message.what = MSG_THERMAL_STATE_CHANGED; + message.arg1 = state; + + mWakeLock.acquire(); + mHandler.sendMessage(message); + } + + private void handleThermalStateChange(int state) { + synchronized (mLock) { + mLastState = state; + Intent intent = new Intent(Intent.ACTION_THERMAL_EVENT); + intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING); + + final int thermalState; + + switch (state) { + case SWITCH_STATE_WARNING: + thermalState = Intent.EXTRA_THERMAL_STATE_WARNING; + break; + case SWITCH_STATE_EXCEEDED: + thermalState = Intent.EXTRA_THERMAL_STATE_EXCEEDED; + break; + case SWITCH_STATE_NORMAL: + default: + thermalState = Intent.EXTRA_THERMAL_STATE_NORMAL; + break; + } + + intent.putExtra(Intent.EXTRA_THERMAL_STATE, thermalState); + + getContext().sendBroadcastAsUser(intent, UserHandle.ALL); + } + } + + @Override + public void onStart() { + publishBinderService(TAG, new BinderService()); + } + + private final class BinderService extends Binder { + @Override + protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP) + != PackageManager.PERMISSION_GRANTED) { + pw.println("Permission Denial: can't dump thermal observer service from from pid=" + + Binder.getCallingPid() + + ", uid=" + Binder.getCallingUid()); + return; + } + + final long ident = Binder.clearCallingIdentity(); + try { + synchronized (mLock) { + if (args == null || args.length == 0 || "-a".equals(args[0])) { + pw.println("Current Thermal Observer Service state:"); + pw.println(" last state change: " + + (mLastState != null ? mLastState : "none")); + } + } + } finally { + Binder.restoreCallingIdentity(ident); + } + } + } +} diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java index 30f4dce310ca..c2284224502d 100644 --- a/services/core/java/com/android/server/VibratorService.java +++ b/services/core/java/com/android/server/VibratorService.java @@ -59,6 +59,7 @@ public class VibratorService extends IVibratorService.Stub implements InputManager.InputDeviceListener { private static final String TAG = "VibratorService"; private static final boolean DEBUG = false; + private static final String SYSTEM_UI_PACKAGE = "com.android.systemui"; private final LinkedList<Vibration> mVibrations; private final LinkedList<VibrationInfo> mPreviousVibrations; @@ -147,7 +148,8 @@ public class VibratorService extends IVibratorService.Stub } public boolean isSystemHapticFeedback() { - return (mUid == Process.SYSTEM_UID || mUid == 0) && mRepeat < 0; + return (mUid == Process.SYSTEM_UID || mUid == 0 || SYSTEM_UI_PACKAGE.equals(mOpPkg)) + && mRepeat < 0; } } diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 8b0e6f2c3fa4..d5e9a320da84 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -32,6 +32,7 @@ import android.accounts.IAccountManagerResponse; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.AppGlobals; +import android.app.AppOpsManager; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; @@ -122,6 +123,7 @@ public class AccountManagerService private final Context mContext; private final PackageManager mPackageManager; + private final AppOpsManager mAppOpsManager; private UserManager mUserManager; private final MessageHandler mMessageHandler; @@ -266,6 +268,7 @@ public class AccountManagerService IAccountAuthenticatorCache authenticatorCache) { mContext = context; mPackageManager = packageManager; + mAppOpsManager = mContext.getSystemService(AppOpsManager.class); mMessageHandler = new MessageHandler(FgThread.get().getLooper()); @@ -510,7 +513,7 @@ public class AccountManagerService // Check if there's a shared account that needs to be created as an account Account[] sharedAccounts = getSharedAccountsAsUser(userId); if (sharedAccounts == null || sharedAccounts.length == 0) return; - Account[] accounts = getAccountsAsUser(null, userId); + Account[] accounts = getAccountsAsUser(null, userId, mContext.getOpPackageName()); for (Account sa : sharedAccounts) { if (ArrayUtils.contains(accounts, sa)) continue; // Account doesn't exist. Copy it now. @@ -868,7 +871,8 @@ public class AccountManagerService // Confirm that the owner's account still exists before this step. UserAccounts owner = getUserAccounts(UserHandle.USER_OWNER); synchronized (owner.cacheLock) { - for (Account acc : getAccounts(UserHandle.USER_OWNER)) { + for (Account acc : getAccounts(UserHandle.USER_OWNER, + mContext.getOpPackageName())) { if (acc.equals(account)) { mAuthenticator.addAccountFromCredentials( this, account, accountCredentials); @@ -988,7 +992,7 @@ public class AccountManagerService @Override public void hasFeatures(IAccountManagerResponse response, - Account account, String[] features) { + Account account, String[] features, String opPackageName) { int callingUid = Binder.getCallingUid(); if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "hasFeatures: " + account @@ -1001,7 +1005,8 @@ public class AccountManagerService if (account == null) throw new IllegalArgumentException("account is null"); if (features == null) throw new IllegalArgumentException("features is null"); int userId = UserHandle.getCallingUserId(); - checkReadAccountsPermitted(callingUid, account.type, userId); + checkReadAccountsPermitted(callingUid, account.type, userId, + opPackageName); long identityToken = clearCallingIdentity(); try { @@ -2507,9 +2512,10 @@ public class AccountManagerService * Returns the accounts visible to the client within the context of a specific user * @hide */ - public Account[] getAccounts(int userId) { + public Account[] getAccounts(int userId, String opPackageName) { int callingUid = Binder.getCallingUid(); - List<String> visibleAccountTypes = getTypesVisibleToCaller(callingUid, userId); + List<String> visibleAccountTypes = getTypesVisibleToCaller(callingUid, userId, + opPackageName); if (visibleAccountTypes.isEmpty()) { return new Account[0]; } @@ -2571,15 +2577,16 @@ public class AccountManagerService } @Override - public Account[] getAccountsAsUser(String type, int userId) { - return getAccountsAsUser(type, userId, null, -1); + public Account[] getAccountsAsUser(String type, int userId, String opPackageName) { + return getAccountsAsUser(type, userId, null, -1, opPackageName); } private Account[] getAccountsAsUser( String type, int userId, String callingPackage, - int packageUid) { + int packageUid, + String opPackageName) { int callingUid = Binder.getCallingUid(); // Only allow the system process to read accounts of other users if (userId != UserHandle.getCallingUserId() @@ -2600,9 +2607,11 @@ public class AccountManagerService // be passed in the original caller's uid here, which is what should be used for filtering. if (packageUid != -1 && UserHandle.isSameApp(callingUid, Process.myUid())) { callingUid = packageUid; + opPackageName = callingPackage; } - List<String> visibleAccountTypes = getTypesVisibleToCaller(callingUid, userId); + List<String> visibleAccountTypes = getTypesVisibleToCaller(callingUid, userId, + opPackageName); if (visibleAccountTypes.isEmpty() || (type != null && !visibleAccountTypes.contains(type))) { return new Account[0]; @@ -2741,22 +2750,24 @@ public class AccountManagerService } @Override - public Account[] getAccounts(String type) { - return getAccountsAsUser(type, UserHandle.getCallingUserId()); + public Account[] getAccounts(String type, String opPackageName) { + return getAccountsAsUser(type, UserHandle.getCallingUserId(), opPackageName); } @Override - public Account[] getAccountsForPackage(String packageName, int uid) { + public Account[] getAccountsForPackage(String packageName, int uid, String opPackageName) { int callingUid = Binder.getCallingUid(); if (!UserHandle.isSameApp(callingUid, Process.myUid())) { throw new SecurityException("getAccountsForPackage() called from unauthorized uid " + callingUid + " with uid=" + uid); } - return getAccountsAsUser(null, UserHandle.getCallingUserId(), packageName, uid); + return getAccountsAsUser(null, UserHandle.getCallingUserId(), packageName, uid, + opPackageName); } @Override - public Account[] getAccountsByTypeForPackage(String type, String packageName) { + public Account[] getAccountsByTypeForPackage(String type, String packageName, + String opPackageName) { int packageUid = -1; try { packageUid = AppGlobals.getPackageManager().getPackageUid( @@ -2765,14 +2776,16 @@ public class AccountManagerService Slog.e(TAG, "Couldn't determine the packageUid for " + packageName + re); return new Account[0]; } - return getAccountsAsUser(type, UserHandle.getCallingUserId(), packageName, packageUid); + return getAccountsAsUser(type, UserHandle.getCallingUserId(), packageName, + packageUid, opPackageName); } @Override public void getAccountsByFeatures( IAccountManagerResponse response, String type, - String[] features) { + String[] features, + String opPackageName) { int callingUid = Binder.getCallingUid(); if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, "getAccounts: accountType " + type @@ -2785,7 +2798,8 @@ public class AccountManagerService if (type == null) throw new IllegalArgumentException("accountType is null"); int userId = UserHandle.getCallingUserId(); - List<String> visibleAccountTypes = getTypesVisibleToCaller(callingUid, userId); + List<String> visibleAccountTypes = getTypesVisibleToCaller(callingUid, userId, + opPackageName); if (!visibleAccountTypes.contains(type)) { Bundle result = new Bundle(); // Need to return just the accounts that are from matching signatures. @@ -3685,31 +3699,22 @@ public class AccountManagerService } } - private boolean isPermitted(int callingUid, String... permissions) { + private boolean isPermitted(String opPackageName, int callingUid, String... permissions) { for (String perm : permissions) { if (mContext.checkCallingOrSelfPermission(perm) == PackageManager.PERMISSION_GRANTED) { if (Log.isLoggable(TAG, Log.VERBOSE)) { Log.v(TAG, " caller uid " + callingUid + " has " + perm); } - return true; + final int opCode = AppOpsManager.permissionToOpCode(perm); + if (opCode == AppOpsManager.OP_NONE || mAppOpsManager.noteOp( + opCode, callingUid, opPackageName) == AppOpsManager.MODE_ALLOWED) { + return true; + } } } return false; } - /** Succeeds if any of the specified permissions are granted. */ - private void checkBinderPermission(String... permissions) { - final int callingUid = Binder.getCallingUid(); - if (isPermitted(callingUid, permissions)) { - String msg = String.format( - "caller uid %s lacks any of %s", - callingUid, - TextUtils.join(",", permissions)); - Log.w(TAG, " " + msg); - throw new SecurityException(msg); - } - } - private int handleIncomingUser(int userId) { try { return ActivityManagerNative.getDefault().handleIncomingUser( @@ -3763,11 +3768,13 @@ public class AccountManagerService return fromAuthenticator || hasExplicitGrants || isPrivileged; } - private boolean isAccountVisibleToCaller(String accountType, int callingUid, int userId) { + private boolean isAccountVisibleToCaller(String accountType, int callingUid, int userId, + String opPackageName) { if (accountType == null) { return false; } else { - return getTypesVisibleToCaller(callingUid, userId).contains(accountType); + return getTypesVisibleToCaller(callingUid, userId, + opPackageName).contains(accountType); } } @@ -3779,9 +3786,10 @@ public class AccountManagerService } } - private List<String> getTypesVisibleToCaller(int callingUid, int userId) { + private List<String> getTypesVisibleToCaller(int callingUid, int userId, + String opPackageName) { boolean isPermitted = - isPermitted(callingUid, Manifest.permission.GET_ACCOUNTS, + isPermitted(opPackageName, callingUid, Manifest.permission.GET_ACCOUNTS, Manifest.permission.GET_ACCOUNTS_PRIVILEGED); Log.i(TAG, String.format("getTypesVisibleToCaller: isPermitted? %s", isPermitted)); return getTypesForCaller(callingUid, userId, isPermitted); @@ -3877,8 +3885,9 @@ public class AccountManagerService private void checkReadAccountsPermitted( int callingUid, String accountType, - int userId) { - if (!isAccountVisibleToCaller(accountType, callingUid, userId)) { + int userId, + String opPackageName) { + if (!isAccountVisibleToCaller(accountType, callingUid, userId, opPackageName)) { String msg = String.format( "caller uid %s cannot access %s accounts", callingUid, diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 899139f7844b..b87e109b549f 100755 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -2085,7 +2085,8 @@ public final class ActiveServices { } private boolean collectPackageServicesLocked(String packageName, Set<String> filterByClasses, - boolean evenPersistent, boolean doit, ArrayMap<ComponentName, ServiceRecord> services) { + boolean evenPersistent, boolean doit, boolean killProcess, + ArrayMap<ComponentName, ServiceRecord> services) { boolean didSomething = false; for (int i = services.size() - 1; i >= 0; i--) { ServiceRecord service = services.valueAt(i); @@ -2101,7 +2102,7 @@ public final class ActiveServices { didSomething = true; Slog.i(TAG, " Force stopping service " + service); if (service.app != null) { - service.app.removed = true; + service.app.removed = killProcess; if (!service.app.persistent) { service.app.services.remove(service); } @@ -2118,7 +2119,7 @@ public final class ActiveServices { } boolean bringDownDisabledPackageServicesLocked(String packageName, Set<String> filterByClasses, - int userId, boolean evenPersistent, boolean doit) { + int userId, boolean evenPersistent, boolean killProcess, boolean doit) { boolean didSomething = false; if (mTmpCollectionResults != null) { @@ -2128,7 +2129,7 @@ public final class ActiveServices { if (userId == UserHandle.USER_ALL) { for (int i = mServiceMap.size() - 1; i >= 0; i--) { didSomething |= collectPackageServicesLocked(packageName, filterByClasses, - evenPersistent, doit, mServiceMap.valueAt(i).mServicesByName); + evenPersistent, doit, killProcess, mServiceMap.valueAt(i).mServicesByName); if (!doit && didSomething) { return true; } @@ -2138,7 +2139,7 @@ public final class ActiveServices { if (smap != null) { ArrayMap<ComponentName, ServiceRecord> items = smap.mServicesByName; didSomething = collectPackageServicesLocked(packageName, filterByClasses, - evenPersistent, doit, items); + evenPersistent, doit, killProcess, items); } } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index adfb46d9c041..31e41c860f44 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -317,6 +317,9 @@ public final class ActivityManagerService extends ActivityManagerNative // How long we wait for a launched process to attach to the activity manager // before we decide it's never going to come up for real. static final int PROC_START_TIMEOUT = 10*1000; + // How long we wait for an attached process to publish its content providers + // before we decide it must be hung. + static final int CONTENT_PROVIDER_PUBLISH_TIMEOUT = 10*1000; // How long we wait for a launched process to attach to the activity manager // before we decide it's never going to come up for real, when the process was @@ -401,6 +404,17 @@ public final class ActivityManagerService extends ActivityManagerNative private static final int PERSISTENT_MASK = ApplicationInfo.FLAG_SYSTEM|ApplicationInfo.FLAG_PERSISTENT; + + // Delay to disable app launch boost + static final int APP_BOOST_MESSAGE_DELAY = 3000; + // Lower delay than APP_BOOST_MESSAGE_DELAY to disable the boost + static final int APP_BOOST_TIMEOUT = 2500; + + private static native int nativeMigrateToBoost(); + private static native int nativeMigrateFromBoost(); + private boolean mIsBoosted = false; + private long mBoostStartTime = 0; + /** All system services */ SystemServiceManager mSystemServiceManager; @@ -1358,6 +1372,8 @@ public final class ActivityManagerService extends ActivityManagerNative static final int REPORT_TIME_TRACKER_MSG = 55; static final int REPORT_USER_SWITCH_COMPLETE_MSG = 56; static final int SHUTDOWN_UI_AUTOMATION_CONNECTION_MSG = 57; + static final int APP_BOOST_DEACTIVATE_MSG = 58; + static final int CONTENT_PROVIDER_PUBLISH_TIMEOUT_MSG = 59; static final int FIRST_ACTIVITY_STACK_MSG = 100; static final int FIRST_BROADCAST_QUEUE_MSG = 200; @@ -1691,6 +1707,12 @@ public final class ActivityManagerService extends ActivityManagerNative processStartTimedOutLocked(app); } } break; + case CONTENT_PROVIDER_PUBLISH_TIMEOUT_MSG: { + ProcessRecord app = (ProcessRecord)msg.obj; + synchronized (ActivityManagerService.this) { + processContentProviderPublishTimedOutLocked(app); + } + } break; case DO_PENDING_ACTIVITY_LAUNCHES_MSG: { synchronized (ActivityManagerService.this) { mStackSupervisor.doPendingActivityLaunchesLocked(true); @@ -2035,6 +2057,20 @@ public final class ActivityManagerService extends ActivityManagerNative // it is finished we make sure it is reset to its default. mUserIsMonkey = false; } break; + case APP_BOOST_DEACTIVATE_MSG : { + synchronized(ActivityManagerService.this) { + if (mIsBoosted) { + if (mBoostStartTime < (SystemClock.uptimeMillis() - APP_BOOST_TIMEOUT)) { + nativeMigrateFromBoost(); + mIsBoosted = false; + mBoostStartTime = 0; + } else { + Message newmsg = mHandler.obtainMessage(APP_BOOST_DEACTIVATE_MSG); + mHandler.sendMessageDelayed(newmsg, APP_BOOST_TIMEOUT); + } + } + } + } break; } } }; @@ -3118,6 +3154,16 @@ public final class ActivityManagerService extends ActivityManagerNative app = null; } + // app launch boost for big.little configurations + // use cpusets to migrate freshly launched tasks to big cores + synchronized(ActivityManagerService.this) { + nativeMigrateToBoost(); + mIsBoosted = true; + mBoostStartTime = SystemClock.uptimeMillis(); + Message msg = mHandler.obtainMessage(APP_BOOST_DEACTIVATE_MSG); + mHandler.sendMessageDelayed(msg, APP_BOOST_MESSAGE_DELAY); + } + // We don't have to do anything more if: // (1) There is an existing application record; and // (2) The caller doesn't think it is dead, OR there is no thread @@ -5549,7 +5595,7 @@ public final class ActivityManagerService extends ActivityManagerNative } private void cleanupDisabledPackageComponentsLocked( - String packageName, int userId, String[] changedClasses) { + String packageName, int userId, boolean killProcess, String[] changedClasses) { Set<String> disabledClasses = null; boolean packageDisabled = false; @@ -5619,7 +5665,7 @@ public final class ActivityManagerService extends ActivityManagerNative // Clean-up disabled services. mServices.bringDownDisabledPackageServicesLocked( - packageName, disabledClasses, userId, false, true); + packageName, disabledClasses, userId, false, killProcess, true); // Clean-up disabled providers. ArrayList<ContentProviderRecord> providers = new ArrayList<>(); @@ -5704,7 +5750,7 @@ public final class ActivityManagerService extends ActivityManagerNative } if (mServices.bringDownDisabledPackageServicesLocked( - packageName, null, userId, evenPersistent, doit)) { + packageName, null, userId, evenPersistent, true, doit)) { if (!doit) { return true; } @@ -5895,6 +5941,11 @@ public final class ActivityManagerService extends ActivityManagerNative return needRestart; } + private final void processContentProviderPublishTimedOutLocked(ProcessRecord app) { + cleanupAppInLaunchingProvidersLocked(app, true); + removeProcessLocked(app, false, true, "timeout publishing content providers"); + } + private final void processStartTimedOutLocked(ProcessRecord app) { final int pid = app.pid; boolean gone = false; @@ -5921,7 +5972,7 @@ public final class ActivityManagerService extends ActivityManagerNative mBatteryStatsService.removeIsolatedUid(app.uid, app.info.uid); } // Take care of any launching providers waiting for this process. - checkAppInLaunchingProvidersLocked(app, true); + cleanupAppInLaunchingProvidersLocked(app, true); // Take care of any services that are waiting for the process. mServices.processStartTimedOutLocked(app); app.kill("start timeout", true); @@ -6017,6 +6068,12 @@ public final class ActivityManagerService extends ActivityManagerNative boolean normalMode = mProcessesReady || isAllowedWhileBooting(app.info); List<ProviderInfo> providers = normalMode ? generateApplicationProvidersLocked(app) : null; + if (providers != null && checkAppInLaunchingProvidersLocked(app)) { + Message msg = mHandler.obtainMessage(CONTENT_PROVIDER_PUBLISH_TIMEOUT_MSG); + msg.obj = app; + mHandler.sendMessageDelayed(msg, CONTENT_PROVIDER_PUBLISH_TIMEOUT); + } + if (!normalMode) { Slog.i(TAG, "Launching preboot mode app: " + app); } @@ -9857,7 +9914,7 @@ public final class ActivityManagerService extends ActivityManagerNative final long origId = Binder.clearCallingIdentity(); final int N = providers.size(); - for (int i=0; i<N; i++) { + for (int i = 0; i < N; i++) { ContentProviderHolder src = providers.get(i); if (src == null || src.info == null || src.provider == null) { continue; @@ -9872,15 +9929,20 @@ public final class ActivityManagerService extends ActivityManagerNative mProviderMap.putProviderByName(names[j], dst); } - int NL = mLaunchingProviders.size(); + int launchingCount = mLaunchingProviders.size(); int j; - for (j=0; j<NL; j++) { + boolean wasInLaunchingProviders = false; + for (j = 0; j < launchingCount; j++) { if (mLaunchingProviders.get(j) == dst) { mLaunchingProviders.remove(j); + wasInLaunchingProviders = true; j--; - NL--; + launchingCount--; } } + if (wasInLaunchingProviders) { + mHandler.removeMessages(CONTENT_PROVIDER_PUBLISH_TIMEOUT_MSG, r); + } synchronized (dst) { dst.provider = src.provider; dst.proc = r; @@ -15513,7 +15575,7 @@ public final class ActivityManagerService extends ActivityManagerNative app.pubProviders.clear(); // Take care of any launching providers waiting for this process. - if (checkAppInLaunchingProvidersLocked(app, false)) { + if (cleanupAppInLaunchingProvidersLocked(app, false)) { restart = true; } @@ -15635,7 +15697,17 @@ public final class ActivityManagerService extends ActivityManagerNative return false; } - boolean checkAppInLaunchingProvidersLocked(ProcessRecord app, boolean alwaysBad) { + boolean checkAppInLaunchingProvidersLocked(ProcessRecord app) { + for (int i = mLaunchingProviders.size() - 1; i >= 0; i--) { + ContentProviderRecord cpr = mLaunchingProviders.get(i); + if (cpr.launchingApp == app) { + return true; + } + } + return false; + } + + boolean cleanupAppInLaunchingProvidersLocked(ProcessRecord app, boolean alwaysBad) { // Look through the content providers we are waiting to have launched, // and if any run in this process then either schedule a restart of // the process or kill the client waiting for it if this process has @@ -16608,7 +16680,9 @@ public final class ActivityManagerService extends ActivityManagerNative boolean removed = Intent.ACTION_PACKAGE_REMOVED.equals(action); boolean fullUninstall = removed && !intent.getBooleanExtra(Intent.EXTRA_REPLACING, false); - if (!intent.getBooleanExtra(Intent.EXTRA_DONT_KILL_APP, false)) { + final boolean killProcess = + !intent.getBooleanExtra(Intent.EXTRA_DONT_KILL_APP, false); + if (killProcess) { forceStopPackageLocked(ssp, UserHandle.getAppId( intent.getIntExtra(Intent.EXTRA_UID, -1)), false, true, true, false, fullUninstall, userId, @@ -16628,7 +16702,7 @@ public final class ActivityManagerService extends ActivityManagerNative mBatteryStatsService.notePackageUninstalled(ssp); } } else { - cleanupDisabledPackageComponentsLocked(ssp, userId, + cleanupDisabledPackageComponentsLocked(ssp, userId, killProcess, intent.getStringArrayExtra( Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST)); } @@ -17170,8 +17244,10 @@ public final class ActivityManagerService extends ActivityManagerNative } // Can't call out of the system process with a lock held, so post a message. - mHandler.obtainMessage(SHUTDOWN_UI_AUTOMATION_CONNECTION_MSG, - app.instrumentationUiAutomationConnection).sendToTarget(); + if (app.instrumentationUiAutomationConnection != null) { + mHandler.obtainMessage(SHUTDOWN_UI_AUTOMATION_CONNECTION_MSG, + app.instrumentationUiAutomationConnection).sendToTarget(); + } app.instrumentationWatcher = null; app.instrumentationUiAutomationConnection = null; diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java index 335288da005b..62768c3b6475 100644 --- a/services/core/java/com/android/server/am/BatteryStatsService.java +++ b/services/core/java/com/android/server/am/BatteryStatsService.java @@ -171,12 +171,11 @@ public final class BatteryStatsService extends IBatteryStats.Stub public void publish(Context context) { mContext = context; - ServiceManager.addService(BatteryStats.SERVICE_NAME, asBinder()); - mStats.setNumSpeedSteps(new PowerProfile(mContext).getNumSpeedSteps()); mStats.setRadioScanningTimeout(mContext.getResources().getInteger( com.android.internal.R.integer.config_radioScanningTimeout) * 1000L); mStats.setPowerProfile(new PowerProfile(context)); + ServiceManager.addService(BatteryStats.SERVICE_NAME, asBinder()); } /** diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java index a956c564f9ee..960cbf15a96e 100644 --- a/services/core/java/com/android/server/am/BroadcastQueue.java +++ b/services/core/java/com/android/server/am/BroadcastQueue.java @@ -509,7 +509,7 @@ public final class BroadcastQueue { break; } int appOp = AppOpsManager.permissionToOpCode(requiredPermission); - if (appOp != r.appOp + if (appOp != AppOpsManager.OP_NONE && appOp != r.appOp && mService.mAppOpsService.noteOperation(appOp, filter.receiverList.uid, filter.packageName) != AppOpsManager.MODE_ALLOWED) { diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 7565e9d84395..2c6bafc70a94 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -2527,11 +2527,14 @@ public class AudioService extends IAudioService.Stub { } /** @see AudioManager#setBluetoothScoOn(boolean) */ - public void setBluetoothScoOn(boolean on){ + public void setBluetoothScoOn(boolean on) { if (!checkAudioSettingsPermission("setBluetoothScoOn()")) { return; } + setBluetoothScoOnInt(on); + } + public void setBluetoothScoOnInt(boolean on) { if (on) { mForcedUseForComm = AudioSystem.FORCE_BT_SCO; } else if (mForcedUseForComm == AudioSystem.FORCE_BT_SCO) { @@ -2892,6 +2895,8 @@ public class AudioService extends IAudioService.Stub { mScoAudioState = SCO_STATE_INACTIVE; broadcastScoConnectionState(AudioManager.SCO_AUDIO_STATE_DISCONNECTED); } + AudioSystem.setParameters("A2dpSuspended=false"); + setBluetoothScoOnInt(false); } private void broadcastScoConnectionState(int state) { diff --git a/services/core/java/com/android/server/camera/CameraService.java b/services/core/java/com/android/server/camera/CameraService.java index 0be24f4c10ea..f82454a1d9f8 100644 --- a/services/core/java/com/android/server/camera/CameraService.java +++ b/services/core/java/com/android/server/camera/CameraService.java @@ -23,13 +23,17 @@ import android.content.IntentFilter; import android.content.pm.UserInfo; import android.hardware.ICameraService; import android.hardware.ICameraServiceProxy; +import android.nfc.INfcAdapter; import android.os.Handler; import android.os.IBinder; +import android.os.Binder; import android.os.Message; import android.os.Process; import android.os.RemoteException; import android.os.UserManager; +import android.os.SystemProperties; import android.util.Slog; +import android.util.ArraySet; import com.android.server.ServiceThread; import com.android.server.SystemService; @@ -44,8 +48,10 @@ import java.util.Set; * * @hide */ -public class CameraService extends SystemService implements Handler.Callback { +public class CameraService extends SystemService + implements Handler.Callback, IBinder.DeathRecipient { private static final String TAG = "CameraService_proxy"; + private static final boolean DEBUG = false; /** * This must match the ICameraService.aidl definition @@ -58,6 +64,16 @@ public class CameraService extends SystemService implements Handler.Callback { public static final int NO_EVENT = 0; // NOOP public static final int USER_SWITCHED = 1; // User changed, argument is the new user handle + // State arguments to use with the notifyCameraState call from camera service: + public static final int CAMERA_STATE_OPEN = 0; + public static final int CAMERA_STATE_ACTIVE = 1; + public static final int CAMERA_STATE_IDLE = 2; + public static final int CAMERA_STATE_CLOSED = 3; + + // Flags arguments to NFC adapter to enable/disable NFC + public static final int DISABLE_POLLING_FLAGS = 0x1000; + public static final int ENABLE_POLLING_FLAGS = 0x0000; + // Handler message codes private static final int MSG_SWITCH_USER = 1; @@ -72,6 +88,17 @@ public class CameraService extends SystemService implements Handler.Callback { private Set<Integer> mEnabledCameraUsers; private int mLastUser; + private ICameraService mCameraServiceRaw; + + private final ArraySet<String> mActiveCameraIds = new ArraySet<>(); + + private static final String NFC_NOTIFICATION_PROP = "ro.camera.notify_nfc"; + private static final String NFC_SERVICE_BINDER_NAME = "nfc"; + private static final IBinder nfcInterfaceToken = new Binder(); + + private final boolean mNotifyNfc; + private int mActiveCameraCount = 0; + private final BroadcastReceiver mIntentReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -102,6 +129,14 @@ public class CameraService extends SystemService implements Handler.Callback { public void pingForUserUpdate() { notifySwitchWithRetries(30); } + + @Override + public void notifyCameraState(String cameraId, int newCameraState) { + String state = cameraStateToString(newCameraState); + if (DEBUG) Slog.v(TAG, "Camera " + cameraId + " state now " + state); + + updateActivityCount(cameraId, newCameraState); + } }; public CameraService(Context context) { @@ -110,6 +145,9 @@ public class CameraService extends SystemService implements Handler.Callback { mHandlerThread = new ServiceThread(TAG, Process.THREAD_PRIORITY_DISPLAY, /*allowTo*/false); mHandlerThread.start(); mHandler = new Handler(mHandlerThread.getLooper(), this); + + mNotifyNfc = SystemProperties.getInt(NFC_NOTIFICATION_PROP, 0) > 0; + if (DEBUG) Slog.v(TAG, "Notify NFC behavior is " + (mNotifyNfc ? "active" : "disabled")); } @Override @@ -161,13 +199,32 @@ public class CameraService extends SystemService implements Handler.Callback { } } + /** + * Handle the death of the native camera service + */ + @Override + public void binderDied() { + if (DEBUG) Slog.w(TAG, "Native camera service has died"); + synchronized(mLock) { + mCameraServiceRaw = null; + + // All cameras reset to idle on camera service death + boolean wasEmpty = mActiveCameraIds.isEmpty(); + mActiveCameraIds.clear(); + + if ( mNotifyNfc && !wasEmpty ) { + notifyNfcService(/*enablePolling*/ true); + } + } + } + private void switchUserLocked(int userHandle) { Set<Integer> currentUserHandles = getEnabledUserHandles(userHandle); mLastUser = userHandle; if (mEnabledCameraUsers == null || !mEnabledCameraUsers.equals(currentUserHandles)) { // Some user handles have been added or removed, update mediaserver. mEnabledCameraUsers = currentUserHandles; - notifyMediaserver(USER_SWITCHED, currentUserHandles); + notifyMediaserverLocked(USER_SWITCHED, currentUserHandles); } } @@ -187,7 +244,7 @@ public class CameraService extends SystemService implements Handler.Callback { if (mEnabledCameraUsers == null) { return; } - if (notifyMediaserver(USER_SWITCHED, mEnabledCameraUsers)) { + if (notifyMediaserverLocked(USER_SWITCHED, mEnabledCameraUsers)) { retries = 0; } } @@ -199,19 +256,27 @@ public class CameraService extends SystemService implements Handler.Callback { RETRY_DELAY_TIME); } - private boolean notifyMediaserver(int eventType, Set<Integer> updatedUserHandles) { + private boolean notifyMediaserverLocked(int eventType, Set<Integer> updatedUserHandles) { // Forward the user switch event to the native camera service running in the mediaserver // process. - IBinder cameraServiceBinder = getBinderService(CAMERA_SERVICE_BINDER_NAME); - if (cameraServiceBinder == null) { - Slog.w(TAG, "Could not notify mediaserver, camera service not available."); - return false; // Camera service not active, cannot evict user clients. - } + if (mCameraServiceRaw == null) { + IBinder cameraServiceBinder = getBinderService(CAMERA_SERVICE_BINDER_NAME); + if (cameraServiceBinder == null) { + Slog.w(TAG, "Could not notify mediaserver, camera service not available."); + return false; // Camera service not active, cannot evict user clients. + } + try { + cameraServiceBinder.linkToDeath(this, /*flags*/ 0); + } catch (RemoteException e) { + Slog.w(TAG, "Could not link to death of native camera service"); + return false; + } - ICameraService cameraServiceRaw = ICameraService.Stub.asInterface(cameraServiceBinder); + mCameraServiceRaw = ICameraService.Stub.asInterface(cameraServiceBinder); + } try { - cameraServiceRaw.notifySystemEvent(eventType, toArray(updatedUserHandles)); + mCameraServiceRaw.notifySystemEvent(eventType, toArray(updatedUserHandles)); } catch (RemoteException e) { Slog.w(TAG, "Could not notify mediaserver, remote exception: " + e); // Not much we can do if camera service is dead. @@ -220,6 +285,44 @@ public class CameraService extends SystemService implements Handler.Callback { return true; } + private void updateActivityCount(String cameraId, int newCameraState) { + synchronized(mLock) { + boolean wasEmpty = mActiveCameraIds.isEmpty(); + switch (newCameraState) { + case CAMERA_STATE_OPEN: + break; + case CAMERA_STATE_ACTIVE: + mActiveCameraIds.add(cameraId); + break; + case CAMERA_STATE_IDLE: + case CAMERA_STATE_CLOSED: + mActiveCameraIds.remove(cameraId); + break; + } + boolean isEmpty = mActiveCameraIds.isEmpty(); + if ( mNotifyNfc && (wasEmpty != isEmpty) ) { + notifyNfcService(isEmpty); + } + } + } + + private void notifyNfcService(boolean enablePolling) { + + IBinder nfcServiceBinder = getBinderService(NFC_SERVICE_BINDER_NAME); + if (nfcServiceBinder == null) { + Slog.w(TAG, "Could not connect to NFC service to notify it of camera state"); + return; + } + INfcAdapter nfcAdapterRaw = INfcAdapter.Stub.asInterface(nfcServiceBinder); + int flags = enablePolling ? ENABLE_POLLING_FLAGS : DISABLE_POLLING_FLAGS; + if (DEBUG) Slog.v(TAG, "Setting NFC reader mode to flags " + flags); + try { + nfcAdapterRaw.setReaderMode(nfcInterfaceToken, null, flags, null); + } catch (RemoteException e) { + Slog.w(TAG, "Could not notify NFC service, remote exception: " + e); + } + } + private static int[] toArray(Collection<Integer> c) { int len = c.size(); int[] ret = new int[len]; @@ -229,4 +332,15 @@ public class CameraService extends SystemService implements Handler.Callback { } return ret; } + + private static String cameraStateToString(int newCameraState) { + switch (newCameraState) { + case CAMERA_STATE_OPEN: return "CAMERA_STATE_OPEN"; + case CAMERA_STATE_ACTIVE: return "CAMERA_STATE_ACTIVE"; + case CAMERA_STATE_IDLE: return "CAMERA_STATE_IDLE"; + case CAMERA_STATE_CLOSED: return "CAMERA_STATE_CLOSED"; + default: break; + } + return "CAMERA_STATE_UNKNOWN"; + } } diff --git a/services/core/java/com/android/server/connectivity/KeepalivePacketData.java b/services/core/java/com/android/server/connectivity/KeepalivePacketData.java new file mode 100644 index 000000000000..2ccfdd1f3136 --- /dev/null +++ b/services/core/java/com/android/server/connectivity/KeepalivePacketData.java @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.connectivity; + +import android.system.OsConstants; +import android.net.ConnectivityManager; +import android.net.NetworkUtils; +import android.net.util.IpUtils; + +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +import static android.net.ConnectivityManager.PacketKeepalive.*; + +/** + * Represents the actual packets that are sent by the + * {@link android.net.ConnectivityManager.PacketKeepalive} API. + * + * @hide + */ +public class KeepalivePacketData { + /** Protocol of the packet to send; one of the OsConstants.ETH_P_* values. */ + public final int protocol; + + /** Source IP address */ + public final InetAddress srcAddress; + + /** Destination IP address */ + public final InetAddress dstAddress; + + /** Source port */ + public final int srcPort; + + /** Destination port */ + public final int dstPort; + + /** Destination MAC address. Can change if routing changes. */ + public byte[] dstMac; + + /** Packet data. A raw byte string of packet data, not including the link-layer header. */ + public final byte[] data; + + private static final int IPV4_HEADER_LENGTH = 20; + private static final int UDP_HEADER_LENGTH = 8; + + protected KeepalivePacketData(InetAddress srcAddress, int srcPort, + InetAddress dstAddress, int dstPort, byte[] data) throws InvalidPacketException { + this.srcAddress = srcAddress; + this.dstAddress = dstAddress; + this.srcPort = srcPort; + this.dstPort = dstPort; + this.data = data; + + // Check we have two IP addresses of the same family. + if (srcAddress == null || dstAddress == null || + !srcAddress.getClass().getName().equals(dstAddress.getClass().getName())) { + throw new InvalidPacketException(ERROR_INVALID_IP_ADDRESS); + } + + // Set the protocol. + if (this.dstAddress instanceof Inet4Address) { + this.protocol = OsConstants.ETH_P_IP; + } else if (this.dstAddress instanceof Inet6Address) { + this.protocol = OsConstants.ETH_P_IPV6; + } else { + throw new InvalidPacketException(ERROR_INVALID_IP_ADDRESS); + } + + // Check the ports. + if (!IpUtils.isValidUdpOrTcpPort(srcPort) || !IpUtils.isValidUdpOrTcpPort(dstPort)) { + throw new InvalidPacketException(ERROR_INVALID_PORT); + } + } + + public static class InvalidPacketException extends Exception { + final public int error; + public InvalidPacketException(int error) { + this.error = error; + } + } + + /** + * Creates an IPsec NAT-T keepalive packet with the specified parameters. + */ + public static KeepalivePacketData nattKeepalivePacket( + InetAddress srcAddress, int srcPort, + InetAddress dstAddress, int dstPort) throws InvalidPacketException { + + if (!(srcAddress instanceof Inet4Address) || !(dstAddress instanceof Inet4Address)) { + throw new InvalidPacketException(ERROR_INVALID_IP_ADDRESS); + } + + if (dstPort != NATT_PORT) { + throw new InvalidPacketException(ERROR_INVALID_PORT); + } + + int length = IPV4_HEADER_LENGTH + UDP_HEADER_LENGTH + 1; + ByteBuffer buf = ByteBuffer.allocate(length); + buf.order(ByteOrder.BIG_ENDIAN); + buf.putShort((short) 0x4500); // IP version and TOS + buf.putShort((short) length); + buf.putInt(0); // ID, flags, offset + buf.put((byte) 64); // TTL + buf.put((byte) OsConstants.IPPROTO_UDP); + int ipChecksumOffset = buf.position(); + buf.putShort((short) 0); // IP checksum + buf.put(srcAddress.getAddress()); + buf.put(dstAddress.getAddress()); + buf.putShort((short) srcPort); + buf.putShort((short) dstPort); + buf.putShort((short) (length - 20)); // UDP length + int udpChecksumOffset = buf.position(); + buf.putShort((short) 0); // UDP checksum + buf.put((byte) 0xff); // NAT-T keepalive + buf.putShort(ipChecksumOffset, IpUtils.ipChecksum(buf, 0)); + buf.putShort(udpChecksumOffset, IpUtils.udpChecksum(buf, 0, IPV4_HEADER_LENGTH)); + + return new KeepalivePacketData(srcAddress, srcPort, dstAddress, dstPort, buf.array()); + } +} diff --git a/services/core/java/com/android/server/connectivity/KeepaliveTracker.java b/services/core/java/com/android/server/connectivity/KeepaliveTracker.java new file mode 100644 index 000000000000..90c9ddffd6bd --- /dev/null +++ b/services/core/java/com/android/server/connectivity/KeepaliveTracker.java @@ -0,0 +1,376 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server.connectivity; + +import com.android.internal.util.HexDump; +import com.android.internal.util.IndentingPrintWriter; +import com.android.server.connectivity.KeepalivePacketData; +import com.android.server.connectivity.NetworkAgentInfo; +import android.net.ConnectivityManager; +import android.net.ConnectivityManager.PacketKeepalive; +import android.net.LinkAddress; +import android.net.NetworkAgent; +import android.net.NetworkUtils; +import android.net.util.IpUtils; +import android.os.Binder; +import android.os.IBinder; +import android.os.Handler; +import android.os.Message; +import android.os.Messenger; +import android.os.Process; +import android.os.RemoteException; +import android.system.OsConstants; +import android.util.Log; +import android.util.Pair; + +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.net.Inet4Address; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.util.ArrayList; +import java.util.HashMap; + +import static android.net.ConnectivityManager.PacketKeepalive.*; +import static android.net.NetworkAgent.CMD_START_PACKET_KEEPALIVE; +import static android.net.NetworkAgent.CMD_STOP_PACKET_KEEPALIVE; +import static android.net.NetworkAgent.EVENT_PACKET_KEEPALIVE; + +/** + * Manages packet keepalive requests. + * + * Provides methods to stop and start keepalive requests, and keeps track of keepalives across all + * networks. This class is tightly coupled to ConnectivityService. It is not thread-safe and its + * methods must be called only from the ConnectivityService handler thread. + */ +public class KeepaliveTracker { + + private static final String TAG = "KeepaliveTracker"; + private static final boolean DBG = true; + + public static final String PERMISSION = android.Manifest.permission.PACKET_KEEPALIVE_OFFLOAD; + + /** Keeps track of keepalive requests. */ + private final HashMap <NetworkAgentInfo, HashMap<Integer, KeepaliveInfo>> mKeepalives = + new HashMap<> (); + private final Handler mConnectivityServiceHandler; + + public KeepaliveTracker(Handler handler) { + mConnectivityServiceHandler = handler; + } + + /** + * Tracks information about a packet keepalive. + * + * All information about this keepalive is known at construction time except the slot number, + * which is only returned when the hardware has successfully started the keepalive. + */ + class KeepaliveInfo implements IBinder.DeathRecipient { + // Bookkeping data. + private final Messenger mMessenger; + private final IBinder mBinder; + private final int mUid; + private final int mPid; + private final NetworkAgentInfo mNai; + + /** Keepalive slot. A small integer that identifies this keepalive among the ones handled + * by this network. */ + private int mSlot = PacketKeepalive.NO_KEEPALIVE; + + // Packet data. + private final KeepalivePacketData mPacket; + private final int mInterval; + + // Whether the keepalive is started or not. + public boolean isStarted; + + public KeepaliveInfo(Messenger messenger, IBinder binder, NetworkAgentInfo nai, + KeepalivePacketData packet, int interval) { + mMessenger = messenger; + mBinder = binder; + mPid = Binder.getCallingPid(); + mUid = Binder.getCallingUid(); + + mNai = nai; + mPacket = packet; + mInterval = interval; + + try { + mBinder.linkToDeath(this, 0); + } catch (RemoteException e) { + binderDied(); + } + } + + public NetworkAgentInfo getNai() { + return mNai; + } + + public String toString() { + return new StringBuffer("KeepaliveInfo [") + .append(" network=").append(mNai.network) + .append(" isStarted=").append(isStarted) + .append(" ") + .append(IpUtils.addressAndPortToString(mPacket.srcAddress, mPacket.srcPort)) + .append("->") + .append(IpUtils.addressAndPortToString(mPacket.dstAddress, mPacket.dstPort)) + .append(" interval=" + mInterval) + .append(" data=" + HexDump.toHexString(mPacket.data)) + .append(" uid=").append(mUid).append(" pid=").append(mPid) + .append(" ]") + .toString(); + } + + /** Sends a message back to the application via its PacketKeepalive.Callback. */ + void notifyMessenger(int slot, int err) { + KeepaliveTracker.this.notifyMessenger(mMessenger, slot, err); + } + + /** Called when the application process is killed. */ + public void binderDied() { + // Not called from ConnectivityService handler thread, so send it a message. + mConnectivityServiceHandler.obtainMessage( + NetworkAgent.CMD_STOP_PACKET_KEEPALIVE, + mSlot, PacketKeepalive.BINDER_DIED, mNai.network).sendToTarget(); + } + + void unlinkDeathRecipient() { + if (mBinder != null) { + mBinder.unlinkToDeath(this, 0); + } + } + + private int checkNetworkConnected() { + if (!mNai.networkInfo.isConnectedOrConnecting()) { + return ERROR_INVALID_NETWORK; + } + return SUCCESS; + } + + private int checkSourceAddress() { + // Check that we have the source address. + for (InetAddress address : mNai.linkProperties.getAddresses()) { + if (address.equals(mPacket.srcAddress)) { + return SUCCESS; + } + } + return ERROR_INVALID_IP_ADDRESS; + } + + private int checkInterval() { + return mInterval >= 20 ? SUCCESS : ERROR_INVALID_INTERVAL; + } + + private int isValid() { + synchronized (mNai) { + int error = checkInterval(); + if (error == SUCCESS) error = checkNetworkConnected(); + if (error == SUCCESS) error = checkSourceAddress(); + return error; + } + } + + void start(int slot) { + int error = isValid(); + if (error == SUCCESS) { + mSlot = slot; + Log.d(TAG, "Starting keepalive " + mSlot + " on " + mNai.name()); + mNai.asyncChannel.sendMessage(CMD_START_PACKET_KEEPALIVE, slot, mInterval, mPacket); + } else { + notifyMessenger(NO_KEEPALIVE, error); + return; + } + } + + void stop(int reason) { + int uid = Binder.getCallingUid(); + if (uid != mUid && uid != Process.SYSTEM_UID) { + if (DBG) { + Log.e(TAG, "Cannot stop unowned keepalive " + mSlot + " on " + mNai.network); + } + } + if (isStarted) { + Log.d(TAG, "Stopping keepalive " + mSlot + " on " + mNai.name()); + mNai.asyncChannel.sendMessage(CMD_STOP_PACKET_KEEPALIVE, mSlot); + } + // TODO: at the moment we unconditionally return failure here. In cases where the + // NetworkAgent is alive, should we ask it to reply, so it can return failure? + notifyMessenger(mSlot, reason); + unlinkDeathRecipient(); + } + } + + void notifyMessenger(Messenger messenger, int slot, int err) { + Message message = Message.obtain(); + message.what = EVENT_PACKET_KEEPALIVE; + message.arg1 = slot; + message.arg2 = err; + message.obj = null; + try { + messenger.send(message); + } catch (RemoteException e) { + // Process died? + } + } + + private int findFirstFreeSlot(NetworkAgentInfo nai) { + HashMap networkKeepalives = mKeepalives.get(nai); + if (networkKeepalives == null) { + networkKeepalives = new HashMap<Integer, KeepaliveInfo>(); + mKeepalives.put(nai, networkKeepalives); + } + + // Find the lowest-numbered free slot. Slot numbers start from 1, because that's what two + // separate chipset implementations independently came up with. + int slot; + for (slot = 1; slot <= networkKeepalives.size(); slot++) { + if (networkKeepalives.get(slot) == null) { + return slot; + } + } + return slot; + } + + public void handleStartKeepalive(Message message) { + KeepaliveInfo ki = (KeepaliveInfo) message.obj; + NetworkAgentInfo nai = ki.getNai(); + int slot = findFirstFreeSlot(nai); + mKeepalives.get(nai).put(slot, ki); + ki.start(slot); + } + + public void handleStopAllKeepalives(NetworkAgentInfo nai, int reason) { + HashMap <Integer, KeepaliveInfo> networkKeepalives = mKeepalives.get(nai); + if (networkKeepalives != null) { + for (KeepaliveInfo ki : networkKeepalives.values()) { + ki.stop(reason); + } + networkKeepalives.clear(); + mKeepalives.remove(nai); + } + } + + public void handleStopKeepalive(NetworkAgentInfo nai, int slot, int reason) { + String networkName = (nai == null) ? "(null)" : nai.name(); + HashMap <Integer, KeepaliveInfo> networkKeepalives = mKeepalives.get(nai); + if (networkKeepalives == null) { + Log.e(TAG, "Attempt to stop keepalive on nonexistent network " + networkName); + return; + } + KeepaliveInfo ki = networkKeepalives.get(slot); + if (ki == null) { + Log.e(TAG, "Attempt to stop nonexistent keepalive " + slot + " on " + networkName); + return; + } + ki.stop(reason); + networkKeepalives.remove(slot); + if (networkKeepalives.isEmpty()) { + mKeepalives.remove(nai); + } + } + + public void handleCheckKeepalivesStillValid(NetworkAgentInfo nai) { + HashMap <Integer, KeepaliveInfo> networkKeepalives = mKeepalives.get(nai); + if (networkKeepalives != null) { + ArrayList<Pair<Integer, Integer>> invalidKeepalives = new ArrayList<>(); + for (int slot : networkKeepalives.keySet()) { + int error = networkKeepalives.get(slot).isValid(); + if (error != SUCCESS) { + invalidKeepalives.add(Pair.create(slot, error)); + } + } + for (Pair<Integer, Integer> slotAndError: invalidKeepalives) { + handleStopKeepalive(nai, slotAndError.first, slotAndError.second); + } + } + } + + public void handleEventPacketKeepalive(NetworkAgentInfo nai, Message message) { + int slot = message.arg1; + int reason = message.arg2; + + KeepaliveInfo ki = null; + try { + ki = mKeepalives.get(nai).get(slot); + } catch(NullPointerException e) {} + if (ki == null) { + Log.e(TAG, "Event for unknown keepalive " + slot + " on " + nai.name()); + return; + } + + if (reason == SUCCESS && !ki.isStarted) { + // Keepalive successfully started. + if (DBG) Log.d(TAG, "Started keepalive " + slot + " on " + nai.name()); + ki.isStarted = true; + ki.notifyMessenger(slot, reason); + } else { + // Keepalive successfully stopped, or error. + ki.isStarted = false; + if (reason == SUCCESS) { + if (DBG) Log.d(TAG, "Successfully stopped keepalive " + slot + " on " + nai.name()); + } else { + if (DBG) Log.d(TAG, "Keepalive " + slot + " on " + nai.name() + " error " + reason); + } + handleStopKeepalive(nai, slot, reason); + } + } + + public void startNattKeepalive(NetworkAgentInfo nai, int intervalSeconds, Messenger messenger, + IBinder binder, String srcAddrString, int srcPort, String dstAddrString, int dstPort) { + if (nai == null) { + notifyMessenger(messenger, NO_KEEPALIVE, ERROR_INVALID_NETWORK); + return; + } + + InetAddress srcAddress, dstAddress; + try { + srcAddress = NetworkUtils.numericToInetAddress(srcAddrString); + dstAddress = NetworkUtils.numericToInetAddress(dstAddrString); + } catch (IllegalArgumentException e) { + notifyMessenger(messenger, NO_KEEPALIVE, ERROR_INVALID_IP_ADDRESS); + return; + } + + KeepalivePacketData packet; + try { + packet = KeepalivePacketData.nattKeepalivePacket( + srcAddress, srcPort, dstAddress, NATT_PORT); + } catch (KeepalivePacketData.InvalidPacketException e) { + notifyMessenger(messenger, NO_KEEPALIVE, e.error); + return; + } + KeepaliveInfo ki = new KeepaliveInfo(messenger, binder, nai, packet, intervalSeconds); + Log.d(TAG, "Created keepalive: " + ki.toString()); + mConnectivityServiceHandler.obtainMessage( + NetworkAgent.CMD_START_PACKET_KEEPALIVE, ki).sendToTarget(); + } + + public void dump(IndentingPrintWriter pw) { + pw.println("Packet keepalives:"); + pw.increaseIndent(); + for (NetworkAgentInfo nai : mKeepalives.keySet()) { + pw.println(nai.name()); + pw.increaseIndent(); + for (int slot : mKeepalives.get(nai).keySet()) { + KeepaliveInfo ki = mKeepalives.get(nai).get(slot); + pw.println(slot + ": " + ki.toString()); + } + pw.decreaseIndent(); + } + pw.decreaseIndent(); + } +} diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java index 39333f638af6..00292793256c 100644 --- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java +++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java @@ -195,6 +195,12 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> { request.networkCapabilities.satisfiedByNetworkCapabilities(networkCapabilities); } + public boolean satisfiesImmutableCapabilitiesOf(NetworkRequest request) { + return created && + request.networkCapabilities.satisfiedByImmutableNetworkCapabilities( + networkCapabilities); + } + public boolean isVPN() { return networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_VPN); } diff --git a/services/core/java/com/android/server/connectivity/NetworkDiagnostics.java b/services/core/java/com/android/server/connectivity/NetworkDiagnostics.java index aca699152e02..5fd39c02a10a 100644 --- a/services/core/java/com/android/server/connectivity/NetworkDiagnostics.java +++ b/services/core/java/com/android/server/connectivity/NetworkDiagnostics.java @@ -18,6 +18,7 @@ package com.android.server.connectivity; import static android.system.OsConstants.*; +import android.net.LinkAddress; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkUtils; @@ -27,6 +28,7 @@ import android.system.ErrnoException; import android.system.Os; import android.system.StructTimeval; import android.text.TextUtils; +import android.util.Pair; import com.android.internal.util.IndentingPrintWriter; @@ -149,6 +151,8 @@ public class NetworkDiagnostics { } private final Map<InetAddress, Measurement> mIcmpChecks = new HashMap<>(); + private final Map<Pair<InetAddress, InetAddress>, Measurement> mExplicitSourceIcmpChecks = + new HashMap<>(); private final Map<InetAddress, Measurement> mDnsUdpChecks = new HashMap<>(); private final String mDescription; @@ -178,7 +182,11 @@ public class NetworkDiagnostics { for (RouteInfo route : mLinkProperties.getRoutes()) { if (route.hasGateway()) { - prepareIcmpMeasurement(route.getGateway()); + InetAddress gateway = route.getGateway(); + prepareIcmpMeasurement(gateway); + if (route.isIPv6Default()) { + prepareExplicitSourceIcmpMeasurements(gateway); + } } } for (InetAddress nameserver : mLinkProperties.getDnsServers()) { @@ -213,6 +221,20 @@ public class NetworkDiagnostics { } } + private void prepareExplicitSourceIcmpMeasurements(InetAddress target) { + for (LinkAddress l : mLinkProperties.getLinkAddresses()) { + InetAddress source = l.getAddress(); + if (source instanceof Inet6Address && l.isGlobalPreferred()) { + Pair<InetAddress, InetAddress> srcTarget = new Pair<>(source, target); + if (!mExplicitSourceIcmpChecks.containsKey(srcTarget)) { + Measurement measurement = new Measurement(); + measurement.thread = new Thread(new IcmpCheck(source, target, measurement)); + mExplicitSourceIcmpChecks.put(srcTarget, measurement); + } + } + } + } + private void prepareDnsMeasurement(InetAddress target) { if (!mDnsUdpChecks.containsKey(target)) { Measurement measurement = new Measurement(); @@ -222,13 +244,16 @@ public class NetworkDiagnostics { } private int totalMeasurementCount() { - return mIcmpChecks.size() + mDnsUdpChecks.size(); + return mIcmpChecks.size() + mExplicitSourceIcmpChecks.size() + mDnsUdpChecks.size(); } private void startMeasurements() { for (Measurement measurement : mIcmpChecks.values()) { measurement.thread.start(); } + for (Measurement measurement : mExplicitSourceIcmpChecks.values()) { + measurement.thread.start(); + } for (Measurement measurement : mDnsUdpChecks.values()) { measurement.thread.start(); } @@ -261,6 +286,10 @@ public class NetworkDiagnostics { pw.println(entry.getValue().toString()); } } + for (Map.Entry<Pair<InetAddress, InetAddress>, Measurement> entry : + mExplicitSourceIcmpChecks.entrySet()) { + pw.println(entry.getValue().toString()); + } for (Map.Entry<InetAddress, Measurement> entry : mDnsUdpChecks.entrySet()) { if (entry.getKey() instanceof Inet4Address) { pw.println(entry.getValue().toString()); @@ -276,13 +305,15 @@ public class NetworkDiagnostics { private class SimpleSocketCheck implements Closeable { + protected final InetAddress mSource; // Usually null. protected final InetAddress mTarget; protected final int mAddressFamily; protected final Measurement mMeasurement; protected FileDescriptor mFileDescriptor; protected SocketAddress mSocketAddress; - protected SimpleSocketCheck(InetAddress target, Measurement measurement) { + protected SimpleSocketCheck( + InetAddress source, InetAddress target, Measurement measurement) { mMeasurement = measurement; if (target instanceof Inet6Address) { @@ -301,6 +332,14 @@ public class NetworkDiagnostics { mTarget = target; mAddressFamily = AF_INET; } + + // We don't need to check the scope ID here because we currently only do explicit-source + // measurements from global IPv6 addresses. + mSource = source; + } + + protected SimpleSocketCheck(InetAddress target, Measurement measurement) { + this(null, target, measurement); } protected void setupSocket( @@ -314,6 +353,9 @@ public class NetworkDiagnostics { SOL_SOCKET, SO_RCVTIMEO, StructTimeval.fromMillis(readTimeout)); // TODO: Use IP_RECVERR/IPV6_RECVERR, pending OsContants availability. mNetwork.bindSocket(mFileDescriptor); + if (mSource != null) { + Os.bind(mFileDescriptor, mSource, 0); + } Os.connect(mFileDescriptor, mTarget, dstPort); mSocketAddress = Os.getsockname(mFileDescriptor); } @@ -343,8 +385,8 @@ public class NetworkDiagnostics { private final int mProtocol; private final int mIcmpType; - public IcmpCheck(InetAddress target, Measurement measurement) { - super(target, measurement); + public IcmpCheck(InetAddress source, InetAddress target, Measurement measurement) { + super(source, target, measurement); if (mAddressFamily == AF_INET6) { mProtocol = IPPROTO_ICMPV6; @@ -359,6 +401,10 @@ public class NetworkDiagnostics { mMeasurement.description += " dst{" + mTarget.getHostAddress() + "}"; } + public IcmpCheck(InetAddress target, Measurement measurement) { + this(null, target, measurement); + } + @Override public void run() { // Check if this measurement has already failed during setup. diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index c998c2c28aac..334bc18b82f2 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -340,7 +340,8 @@ public class SyncManager { for (UserInfo user : mUserManager.getUsers(true)) { // Skip any partially created/removed users if (user.partial) continue; - Account[] accountsForUser = AccountManagerService.getSingleton().getAccounts(user.id); + Account[] accountsForUser = AccountManagerService.getSingleton().getAccounts( + user.id, mContext.getOpPackageName()); mSyncStorageEngine.doDatabaseCleanup(accountsForUser, user.id); } } @@ -1232,7 +1233,8 @@ public class SyncManager { } // Schedule sync for any accounts under started user - final Account[] accounts = AccountManagerService.getSingleton().getAccounts(userId); + final Account[] accounts = AccountManagerService.getSingleton().getAccounts(userId, + mContext.getOpPackageName()); for (Account account : accounts) { scheduleSync(account, userId, SyncOperation.REASON_USER_START, null, null, 0 /* no delay */, 0 /* No flex */, diff --git a/services/core/java/com/android/server/display/DisplayAdapter.java b/services/core/java/com/android/server/display/DisplayAdapter.java index 6ba25a53248d..701b9f179f9c 100644 --- a/services/core/java/com/android/server/display/DisplayAdapter.java +++ b/services/core/java/com/android/server/display/DisplayAdapter.java @@ -49,6 +49,13 @@ abstract class DisplayAdapter { */ private static final AtomicInteger NEXT_DISPLAY_MODE_ID = new AtomicInteger(1); // 0 = no mode. + /** + * Used to generate globally unique color transform ids. + * + * Valid IDs start at 1 with 0 as the sentinel value for the default mode. + */ + private static final AtomicInteger NEXT_COLOR_TRANSFORM_ID = new AtomicInteger(1); + // Called with SyncRoot lock held. public DisplayAdapter(DisplayManagerService.SyncRoot syncRoot, Context context, Handler handler, Listener listener, String name) { @@ -134,6 +141,11 @@ abstract class DisplayAdapter { NEXT_DISPLAY_MODE_ID.getAndIncrement(), width, height, refreshRate); } + public static Display.ColorTransform createColorTransform(int colorTransform) { + return new Display.ColorTransform( + NEXT_COLOR_TRANSFORM_ID.getAndIncrement(), colorTransform); + } + public interface Listener { public void onDisplayDeviceEvent(DisplayDevice device, int event); public void onTraversalRequested(); diff --git a/services/core/java/com/android/server/display/DisplayDevice.java b/services/core/java/com/android/server/display/DisplayDevice.java index 93bda46873a1..7af0bdbdc357 100644 --- a/services/core/java/com/android/server/display/DisplayDevice.java +++ b/services/core/java/com/android/server/display/DisplayDevice.java @@ -135,7 +135,7 @@ abstract class DisplayDevice { /** * Sets the mode, if supported. */ - public void requestModeInTransactionLocked(int id) { + public void requestColorTransformAndModeInTransactionLocked(int colorTransformId, int modeId) { } /** diff --git a/services/core/java/com/android/server/display/DisplayDeviceInfo.java b/services/core/java/com/android/server/display/DisplayDeviceInfo.java index 97ada1542466..55ba3025c516 100644 --- a/services/core/java/com/android/server/display/DisplayDeviceInfo.java +++ b/services/core/java/com/android/server/display/DisplayDeviceInfo.java @@ -155,6 +155,15 @@ final class DisplayDeviceInfo { */ public Display.Mode[] supportedModes = Display.Mode.EMPTY_ARRAY; + /** The active color transform of the display */ + public int colorTransformId; + + /** The default color transform of the display */ + public int defaultColorTransformId; + + /** The supported color transforms of the display */ + public Display.ColorTransform[] supportedColorTransforms = Display.ColorTransform.EMPTY_ARRAY; + /** * The nominal apparent density of the display in DPI used for layout calculations. * This density is sensitive to the viewing distance. A big TV and a tablet may have @@ -276,6 +285,9 @@ final class DisplayDeviceInfo { || modeId != other.modeId || defaultModeId != other.defaultModeId || !Arrays.equals(supportedModes, other.supportedModes) + || colorTransformId != other.colorTransformId + || defaultColorTransformId != other.defaultColorTransformId + || !Arrays.equals(supportedColorTransforms, other.supportedColorTransforms) || densityDpi != other.densityDpi || xDpi != other.xDpi || yDpi != other.yDpi @@ -306,6 +318,9 @@ final class DisplayDeviceInfo { modeId = other.modeId; defaultModeId = other.defaultModeId; supportedModes = other.supportedModes; + colorTransformId = other.colorTransformId; + defaultColorTransformId = other.defaultColorTransformId; + supportedColorTransforms = other.supportedColorTransforms; densityDpi = other.densityDpi; xDpi = other.xDpi; yDpi = other.yDpi; @@ -331,6 +346,9 @@ final class DisplayDeviceInfo { sb.append(", modeId ").append(modeId); sb.append(", defaultModeId ").append(defaultModeId); sb.append(", supportedModes ").append(Arrays.toString(supportedModes)); + sb.append(", colorTransformId ").append(colorTransformId); + sb.append(", defaultColorTransformId ").append(defaultColorTransformId); + sb.append(", supportedColorTransforms ").append(Arrays.toString(supportedColorTransforms)); sb.append(", density ").append(densityDpi); sb.append(", ").append(xDpi).append(" x ").append(yDpi).append(" dpi"); sb.append(", appVsyncOff ").append(appVsyncOffsetNanos); diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java index b2ab797a409e..6a6570b97205 100644 --- a/services/core/java/com/android/server/display/DisplayManagerService.java +++ b/services/core/java/com/android/server/display/DisplayManagerService.java @@ -540,6 +540,17 @@ public final class DisplayManagerService extends SystemService { } } + private void requestColorTransformInternal(int displayId, int colorTransformId) { + synchronized (mSyncRoot) { + LogicalDisplay display = mLogicalDisplays.get(displayId); + if (display != null && + display.getRequestedColorTransformIdLocked() != colorTransformId) { + display.setRequestedColorTransformIdLocked(colorTransformId); + scheduleTraversalLocked(false); + } + } + } + private int createVirtualDisplayInternal(IVirtualDisplayCallback callback, IMediaProjection projection, int callingUid, String packageName, String name, int width, int height, int densityDpi, Surface surface, int flags) { @@ -1340,6 +1351,19 @@ public final class DisplayManagerService extends SystemService { } @Override // Binder call + public void requestColorTransform(int displayId, int colorTransformId) { + mContext.enforceCallingOrSelfPermission( + Manifest.permission.CONFIGURE_DISPLAY_COLOR_TRANSFORM, + "Permission required to change the display color transform"); + final long token = Binder.clearCallingIdentity(); + try { + requestColorTransformInternal(displayId, colorTransformId); + } finally { + Binder.restoreCallingIdentity(token); + } + } + + @Override // Binder call public int createVirtualDisplay(IVirtualDisplayCallback callback, IMediaProjection projection, String packageName, String name, int width, int height, int densityDpi, Surface surface, int flags) { diff --git a/services/core/java/com/android/server/display/DisplayPowerState.java b/services/core/java/com/android/server/display/DisplayPowerState.java index f53ccc9154ce..2eabd326f214 100644 --- a/services/core/java/com/android/server/display/DisplayPowerState.java +++ b/services/core/java/com/android/server/display/DisplayPowerState.java @@ -341,7 +341,8 @@ final class DisplayPowerState { private int mPendingBacklight = INITIAL_BACKLIGHT; private int mActualState = INITIAL_SCREEN_STATE; private int mActualBacklight = INITIAL_BACKLIGHT; - private boolean mChangeInProgress; + private boolean mStateChangeInProgress; + private boolean mBacklightChangeInProgress; public PhotonicModulator() { super("PhotonicModulator"); @@ -349,7 +350,9 @@ final class DisplayPowerState { public boolean setState(int state, int backlight) { synchronized (mLock) { - if (state != mPendingState || backlight != mPendingBacklight) { + boolean stateChanged = state != mPendingState; + boolean backlightChanged = backlight != mPendingBacklight; + if (stateChanged || backlightChanged) { if (DEBUG) { Slog.d(TAG, "Requesting new screen state: state=" + Display.stateToString(state) + ", backlight=" + backlight); @@ -358,12 +361,15 @@ final class DisplayPowerState { mPendingState = state; mPendingBacklight = backlight; - if (!mChangeInProgress) { - mChangeInProgress = true; + boolean changeInProgress = mStateChangeInProgress || mBacklightChangeInProgress; + mStateChangeInProgress = stateChanged; + mBacklightChangeInProgress = backlightChanged; + + if (!changeInProgress) { mLock.notifyAll(); } } - return !mChangeInProgress; + return !mStateChangeInProgress; } } @@ -375,7 +381,8 @@ final class DisplayPowerState { pw.println(" mPendingBacklight=" + mPendingBacklight); pw.println(" mActualState=" + Display.stateToString(mActualState)); pw.println(" mActualBacklight=" + mActualBacklight); - pw.println(" mChangeInProgress=" + mChangeInProgress); + pw.println(" mStateChangeInProgress=" + mStateChangeInProgress); + pw.println(" mBacklightChangeInProgress=" + mBacklightChangeInProgress); } } @@ -392,10 +399,15 @@ final class DisplayPowerState { stateChanged = (state != mActualState); backlight = mPendingBacklight; backlightChanged = (backlight != mActualBacklight); - if (!stateChanged && !backlightChanged) { - // All changed applied, notify outer class and wait for more. - mChangeInProgress = false; + if (!stateChanged) { + // State changed applied, notify outer class. postScreenUpdateThreadSafe(); + mStateChangeInProgress = false; + } + if (!backlightChanged) { + mBacklightChangeInProgress = false; + } + if (!stateChanged && !backlightChanged) { try { mLock.wait(); } catch (InterruptedException ex) { } diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java index 517a825f6fcb..088d96e4a6e0 100644 --- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java +++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java @@ -31,6 +31,7 @@ import android.os.SystemProperties; import android.os.Trace; import android.util.Slog; import android.util.SparseArray; +import android.util.SparseBooleanArray; import android.view.Display; import android.view.DisplayEventReceiver; import android.view.Surface; @@ -38,6 +39,7 @@ import android.view.SurfaceControl; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; /** * A display adapter for the local displays managed by Surface Flinger. @@ -143,14 +145,22 @@ final class LocalDisplayAdapter extends DisplayAdapter { private final int mBuiltInDisplayId; private final Light mBacklight; private final SparseArray<DisplayModeRecord> mSupportedModes = new SparseArray<>(); + private final SparseArray<Display.ColorTransform> mSupportedColorTransforms = + new SparseArray<>(); private DisplayDeviceInfo mInfo; private boolean mHavePendingChanges; private int mState = Display.STATE_UNKNOWN; private int mBrightness = PowerManager.BRIGHTNESS_DEFAULT; + private int mActivePhysIndex; private int mDefaultModeId; private int mActiveModeId; private boolean mActiveModeInvalid; + private int mDefaultColorTransformId; + private int mActiveColorTransformId; + private boolean mActiveColorTransformInvalid; + + private SurfaceControl.PhysicalDisplayInfo mDisplayInfos[]; public LocalDisplayDevice(IBinder displayToken, int builtInDisplayId, SurfaceControl.PhysicalDisplayInfo[] physicalDisplayInfos, int activeDisplayInfo) { @@ -167,22 +177,73 @@ final class LocalDisplayAdapter extends DisplayAdapter { public boolean updatePhysicalDisplayInfoLocked( SurfaceControl.PhysicalDisplayInfo[] physicalDisplayInfos, int activeDisplayInfo) { + mDisplayInfos = Arrays.copyOf(physicalDisplayInfos, physicalDisplayInfos.length); + mActivePhysIndex = activeDisplayInfo; + ArrayList<Display.ColorTransform> colorTransforms = new ArrayList<>(); + + // Build an updated list of all existing color transforms. + boolean colorTransformsAdded = false; + Display.ColorTransform activeColorTransform = null; + for (int i = 0; i < physicalDisplayInfos.length; i++) { + SurfaceControl.PhysicalDisplayInfo info = physicalDisplayInfos[i]; + // First check to see if we've already added this color transform + boolean existingMode = false; + for (int j = 0; j < colorTransforms.size(); j++) { + if (colorTransforms.get(j).getColorTransform() == info.colorTransform) { + existingMode = true; + break; + } + } + if (existingMode) { + continue; + } + Display.ColorTransform colorTransform = findColorTransform(info); + if (colorTransform == null) { + colorTransform = createColorTransform(info.colorTransform); + colorTransformsAdded = true; + } + colorTransforms.add(colorTransform); + if (i == activeDisplayInfo) { + activeColorTransform = colorTransform; + } + } + // Build an updated list of all existing modes. - boolean modesAdded = false; - DisplayModeRecord activeRecord = null; ArrayList<DisplayModeRecord> records = new ArrayList<DisplayModeRecord>(); + boolean modesAdded = false; for (int i = 0; i < physicalDisplayInfos.length; i++) { SurfaceControl.PhysicalDisplayInfo info = physicalDisplayInfos[i]; + // First, check to see if we've already added a matching mode. Since not all + // configuration options are exposed via Display.Mode, it's possible that we have + // multiple PhysicalDisplayInfos that would generate the same Display.Mode. + boolean existingMode = false; + for (int j = 0; j < records.size(); j++) { + if (records.get(j).hasMatchingMode(info)) { + existingMode = true; + break; + } + } + if (existingMode) { + continue; + } + // If we haven't already added a mode for this configuration to the new set of + // supported modes then check to see if we have one in the prior set of supported + // modes to reuse. DisplayModeRecord record = findDisplayModeRecord(info); - if (record != null) { - record.mPhysIndex = i; - } else { - record = new DisplayModeRecord(info, i); + if (record == null) { + record = new DisplayModeRecord(info); modesAdded = true; } records.add(record); - if (i == activeDisplayInfo) { + } + + // Get the currently active mode + DisplayModeRecord activeRecord = null; + for (int i = 0; i < records.size(); i++) { + DisplayModeRecord record = records.get(i); + if (record.hasMatchingMode(physicalDisplayInfos[activeDisplayInfo])){ activeRecord = record; + break; } } // Check whether surface flinger spontaneously changed modes out from under us. Schedule @@ -192,25 +253,48 @@ final class LocalDisplayAdapter extends DisplayAdapter { mActiveModeInvalid = true; sendTraversalRequestLocked(); } - // If no modes were added and we have the same number of modes as before, then nothing - // actually changed except possibly the physical index (which we only care about when - // setting the mode) so we're done. - if (records.size() == mSupportedModes.size() && !modesAdded) { + // Check whether surface flinger spontaneously changed color transforms out from under + // us. + if (mActiveColorTransformId != 0 + && mActiveColorTransformId != activeColorTransform.getId()) { + mActiveColorTransformInvalid = true; + sendTraversalRequestLocked(); + } + + boolean colorTransformsChanged = + colorTransforms.size() != mSupportedColorTransforms.size() + || colorTransformsAdded; + boolean recordsChanged = records.size() != mSupportedModes.size() || modesAdded; + // If neither the records nor the supported color transforms have changed then we're + // done here. + if (!recordsChanged && !colorTransformsChanged) { return false; } // Update the index of modes. mHavePendingChanges = true; + mSupportedModes.clear(); for (DisplayModeRecord record : records) { mSupportedModes.put(record.mMode.getModeId(), record); } - // Update the default mode if needed. - if (mSupportedModes.indexOfKey(mDefaultModeId) < 0) { + mSupportedColorTransforms.clear(); + for (Display.ColorTransform colorTransform : colorTransforms) { + mSupportedColorTransforms.put(colorTransform.getId(), colorTransform); + } + + // Update the default mode and color transform if needed. This needs to be done in + // tandem so we always have a default state to fall back to. + if (findDisplayInfoIndexLocked(mDefaultColorTransformId, mDefaultModeId) < 0) { if (mDefaultModeId != 0) { - Slog.w(TAG, "Default display mode no longer available, using currently active" - + " mode as default."); + Slog.w(TAG, "Default display mode no longer available, using currently" + + " active mode as default."); } mDefaultModeId = activeRecord.mMode.getModeId(); + if (mDefaultColorTransformId != 0) { + Slog.w(TAG, "Default color transform no longer available, using currently" + + " active color transform as default"); + } + mDefaultColorTransformId = activeColorTransform.getId(); } // Determine whether the active mode is still there. if (mSupportedModes.indexOfKey(mActiveModeId) < 0) { @@ -221,6 +305,16 @@ final class LocalDisplayAdapter extends DisplayAdapter { mActiveModeId = mDefaultModeId; mActiveModeInvalid = true; } + + // Determine whether the active color transform is still there. + if (mSupportedColorTransforms.indexOfKey(mActiveColorTransformId) < 0) { + if (mActiveColorTransformId != 0) { + Slog.w(TAG, "Active color transform no longer available, reverting" + + " to default transform."); + } + mActiveColorTransformId = mDefaultColorTransformId; + mActiveColorTransformInvalid = true; + } // Schedule traversals so that we apply pending changes. sendTraversalRequestLocked(); return true; @@ -229,13 +323,23 @@ final class LocalDisplayAdapter extends DisplayAdapter { private DisplayModeRecord findDisplayModeRecord(SurfaceControl.PhysicalDisplayInfo info) { for (int i = 0; i < mSupportedModes.size(); i++) { DisplayModeRecord record = mSupportedModes.valueAt(i); - if (record.mPhys.equals(info)) { + if (record.hasMatchingMode(info)) { return record; } } return null; } + private Display.ColorTransform findColorTransform(SurfaceControl.PhysicalDisplayInfo info) { + for (int i = 0; i < mSupportedColorTransforms.size(); i++) { + Display.ColorTransform transform = mSupportedColorTransforms.valueAt(i); + if (transform.getColorTransform() == info.colorTransform) { + return transform; + } + } + return null; + } + @Override public void applyPendingDisplayDeviceInfoChangesLocked() { if (mHavePendingChanges) { @@ -247,7 +351,7 @@ final class LocalDisplayAdapter extends DisplayAdapter { @Override public DisplayDeviceInfo getDisplayDeviceInfoLocked() { if (mInfo == null) { - SurfaceControl.PhysicalDisplayInfo phys = mSupportedModes.get(mActiveModeId).mPhys; + SurfaceControl.PhysicalDisplayInfo phys = mDisplayInfos[mActivePhysIndex]; mInfo = new DisplayDeviceInfo(); mInfo.width = phys.width; mInfo.height = phys.height; @@ -258,6 +362,13 @@ final class LocalDisplayAdapter extends DisplayAdapter { DisplayModeRecord record = mSupportedModes.valueAt(i); mInfo.supportedModes[i] = record.mMode; } + mInfo.colorTransformId = mActiveColorTransformId; + mInfo.defaultColorTransformId = mDefaultColorTransformId; + mInfo.supportedColorTransforms = + new Display.ColorTransform[mSupportedColorTransforms.size()]; + for (int i = 0; i < mSupportedColorTransforms.size(); i++) { + mInfo.supportedColorTransforms[i] = mSupportedColorTransforms.valueAt(i); + } mInfo.appVsyncOffsetNanos = phys.appVsyncOffsetNanos; mInfo.presentationDeadlineNanos = phys.presentationDeadlineNanos; mInfo.state = mState; @@ -402,7 +513,8 @@ final class LocalDisplayAdapter extends DisplayAdapter { } @Override - public void requestModeInTransactionLocked(int modeId) { + public void requestColorTransformAndModeInTransactionLocked( + int colorTransformId, int modeId) { if (modeId == 0) { modeId = mDefaultModeId; } else if (mSupportedModes.indexOfKey(modeId) < 0) { @@ -410,13 +522,37 @@ final class LocalDisplayAdapter extends DisplayAdapter { + " reverting to default display mode."); modeId = mDefaultModeId; } - if (mActiveModeId == modeId && !mActiveModeInvalid) { + + if (colorTransformId == 0) { + colorTransformId = mDefaultColorTransformId; + } else if (mSupportedColorTransforms.indexOfKey(colorTransformId) < 0) { + Slog.w(TAG, "Requested color transform " + colorTransformId + " is not supported" + + " by this display, reverting to the default color transform"); + colorTransformId = mDefaultColorTransformId; + } + int physIndex = findDisplayInfoIndexLocked(colorTransformId, modeId); + if (physIndex < 0) { + Slog.w(TAG, "Requested color transform, mode ID pair (" + colorTransformId + ", " + + modeId + ") not available, trying color transform with default mode ID"); + modeId = mDefaultModeId; + physIndex = findDisplayInfoIndexLocked(colorTransformId, modeId); + if (physIndex < 0) { + Slog.w(TAG, "Requested color transform with default mode ID still not" + + " available, falling back to default color transform with default" + + " mode."); + colorTransformId = mDefaultColorTransformId; + physIndex = findDisplayInfoIndexLocked(colorTransformId, modeId); + } + } + if (mActivePhysIndex == physIndex) { return; } - DisplayModeRecord record = mSupportedModes.get(modeId); - SurfaceControl.setActiveConfig(getDisplayTokenLocked(), record.mPhysIndex); + SurfaceControl.setActiveConfig(getDisplayTokenLocked(), physIndex); + mActivePhysIndex = physIndex; mActiveModeId = modeId; mActiveModeInvalid = false; + mActiveColorTransformId = colorTransformId; + mActiveColorTransformInvalid = false; updateDeviceInfoLocked(); } @@ -424,10 +560,43 @@ final class LocalDisplayAdapter extends DisplayAdapter { public void dumpLocked(PrintWriter pw) { super.dumpLocked(pw); pw.println("mBuiltInDisplayId=" + mBuiltInDisplayId); + pw.println("mActivePhysIndex=" + mActivePhysIndex); pw.println("mActiveModeId=" + mActiveModeId); + pw.println("mActiveColorTransformId=" + mActiveColorTransformId); pw.println("mState=" + Display.stateToString(mState)); pw.println("mBrightness=" + mBrightness); pw.println("mBacklight=" + mBacklight); + pw.println("mDisplayInfos="); + for (int i = 0; i < mDisplayInfos.length; i++) { + pw.println(" " + mDisplayInfos[i]); + } + pw.println("mSupportedModes="); + for (int i = 0; i < mSupportedModes.size(); i++) { + pw.println(" " + mSupportedModes.valueAt(i)); + } + pw.println("mSupportedColorTransforms=["); + for (int i = 0; i < mSupportedColorTransforms.size(); i++) { + if (i != 0) { + pw.print(", "); + } + pw.print(mSupportedColorTransforms.valueAt(i)); + } + pw.println("]"); + } + + private int findDisplayInfoIndexLocked(int colorTransformId, int modeId) { + DisplayModeRecord record = mSupportedModes.get(modeId); + Display.ColorTransform transform = mSupportedColorTransforms.get(colorTransformId); + if (record != null && transform != null) { + for (int i = 0; i < mDisplayInfos.length; i++) { + SurfaceControl.PhysicalDisplayInfo info = mDisplayInfos[i]; + if (info.colorTransform == transform.getColorTransform() + && record.hasMatchingMode(info)){ + return i; + } + } + } + return -1; } private void updateDeviceInfoLocked() { @@ -441,13 +610,28 @@ final class LocalDisplayAdapter extends DisplayAdapter { */ private static final class DisplayModeRecord { public final Display.Mode mMode; - public final SurfaceControl.PhysicalDisplayInfo mPhys; - public int mPhysIndex; - public DisplayModeRecord(SurfaceControl.PhysicalDisplayInfo phys, int physIndex) { + public DisplayModeRecord(SurfaceControl.PhysicalDisplayInfo phys) { mMode = createMode(phys.width, phys.height, phys.refreshRate); - mPhys = phys; - mPhysIndex = physIndex; + } + + /** + * Returns whether the mode generated by the given PhysicalDisplayInfo matches the mode + * contained by the record modulo mode ID. + * + * Note that this doesn't necessarily mean the the PhysicalDisplayInfos are identical, just + * that they generate identical modes. + */ + public boolean hasMatchingMode(SurfaceControl.PhysicalDisplayInfo info) { + int modeRefreshRate = Float.floatToIntBits(mMode.getRefreshRate()); + int displayInfoRefreshRate = Float.floatToIntBits(info.refreshRate); + return mMode.getPhysicalWidth() == info.width + && mMode.getPhysicalHeight() == info.height + && modeRefreshRate == displayInfoRefreshRate; + } + + public String toString() { + return "DisplayModeRecord{mMode=" + mMode + "}"; } } diff --git a/services/core/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java index 6efc99a0c342..6dae397cff21 100644 --- a/services/core/java/com/android/server/display/LogicalDisplay.java +++ b/services/core/java/com/android/server/display/LogicalDisplay.java @@ -74,6 +74,7 @@ final class LogicalDisplay { private boolean mHasContent; private int mRequestedModeId; + private int mRequestedColorTransformId; // The display offsets to apply to the display projection. private int mDisplayOffsetX; @@ -235,6 +236,11 @@ final class LogicalDisplay { mBaseDisplayInfo.defaultModeId = deviceInfo.defaultModeId; mBaseDisplayInfo.supportedModes = Arrays.copyOf( deviceInfo.supportedModes, deviceInfo.supportedModes.length); + mBaseDisplayInfo.colorTransformId = deviceInfo.colorTransformId; + mBaseDisplayInfo.defaultColorTransformId = deviceInfo.defaultColorTransformId; + mBaseDisplayInfo.supportedColorTransforms = Arrays.copyOf( + deviceInfo.supportedColorTransforms, + deviceInfo.supportedColorTransforms.length); mBaseDisplayInfo.logicalDensityDpi = deviceInfo.densityDpi; mBaseDisplayInfo.physicalXDpi = deviceInfo.xDpi; mBaseDisplayInfo.physicalYDpi = deviceInfo.yDpi; @@ -275,11 +281,12 @@ final class LogicalDisplay { // Set the layer stack. device.setLayerStackInTransactionLocked(isBlanked ? BLANK_LAYER_STACK : mLayerStack); - // Set the mode. + // Set the color transform and mode. if (device == mPrimaryDisplayDevice) { - device.requestModeInTransactionLocked(mRequestedModeId); + device.requestColorTransformAndModeInTransactionLocked( + mRequestedColorTransformId, mRequestedModeId); } else { - device.requestModeInTransactionLocked(0); // Revert to default. + device.requestColorTransformAndModeInTransactionLocked(0, 0); // Revert to default. } // Only grab the display info now as it may have been changed based on the requests above. @@ -383,6 +390,18 @@ final class LogicalDisplay { } /** + * Requests the given color transform. + */ + public void setRequestedColorTransformIdLocked(int colorTransformId) { + mRequestedColorTransformId = colorTransformId; + } + + /** Returns the pending requested color transform. */ + public int getRequestedColorTransformIdLocked() { + return mRequestedColorTransformId; + } + + /** * Gets the burn-in offset in X. */ public int getDisplayOffsetXLocked() { @@ -409,6 +428,7 @@ final class LogicalDisplay { pw.println("mLayerStack=" + mLayerStack); pw.println("mHasContent=" + mHasContent); pw.println("mRequestedMode=" + mRequestedModeId); + pw.println("mRequestedColorTransformId=" + mRequestedColorTransformId); pw.println("mDisplayOffset=(" + mDisplayOffsetX + ", " + mDisplayOffsetY + ")"); pw.println("mPrimaryDisplayDevice=" + (mPrimaryDisplayDevice != null ? mPrimaryDisplayDevice.getNameLocked() : "null")); diff --git a/services/core/java/com/android/server/display/OverlayDisplayAdapter.java b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java index 0bddff076c18..cf6264ace34f 100644 --- a/services/core/java/com/android/server/display/OverlayDisplayAdapter.java +++ b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java @@ -310,7 +310,7 @@ final class OverlayDisplayAdapter extends DisplayAdapter { } @Override - public void requestModeInTransactionLocked(int id) { + public void requestColorTransformAndModeInTransactionLocked(int color, int id) { int index = -1; if (id == 0) { // Use the default. diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java index 2c9d82be5d89..ec7c1c437d92 100644 --- a/services/core/java/com/android/server/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java @@ -16,21 +16,29 @@ package com.android.server.fingerprint; +import android.Manifest; import android.app.ActivityManager; +import android.app.ActivityManager.RunningAppProcessInfo; +import android.app.ActivityManager.RunningTaskInfo; import android.app.ActivityManagerNative; +import android.app.AlarmManager; import android.app.AppOpsManager; import android.app.IUserSwitchObserver; -import android.content.ContentResolver; +import android.app.PendingIntent; +import android.content.ComponentName; +import android.content.BroadcastReceiver; import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.UserInfo; +import android.hardware.fingerprint.IFingerprintServiceLockoutResetCallback; import android.os.Binder; +import android.os.DeadObjectException; import android.os.Environment; import android.os.Handler; import android.os.IBinder; import android.os.IRemoteCallback; -import android.os.Looper; -import android.os.MessageQueue; import android.os.PowerManager; import android.os.RemoteException; import android.os.SELinux; @@ -40,8 +48,13 @@ import android.os.UserHandle; import android.os.UserManager; import android.util.Slog; +import com.android.internal.logging.MetricsLogger; import com.android.server.SystemService; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + import android.hardware.fingerprint.Fingerprint; import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.IFingerprintService; @@ -49,10 +62,14 @@ import android.hardware.fingerprint.IFingerprintDaemon; import android.hardware.fingerprint.IFingerprintDaemonCallback; import android.hardware.fingerprint.IFingerprintServiceReceiver; +import static android.app.ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND; import static android.Manifest.permission.MANAGE_FINGERPRINT; +import static android.Manifest.permission.RESET_FINGERPRINT_LOCKOUT; import static android.Manifest.permission.USE_FINGERPRINT; import java.io.File; +import java.io.FileDescriptor; +import java.io.PrintWriter; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -73,16 +90,21 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe private static final String FINGERPRINTD = "android.hardware.fingerprint.IFingerprintDaemon"; private static final int MSG_USER_SWITCHING = 10; private static final int ENROLLMENT_TIMEOUT_MS = 60 * 1000; // 1 minute + private static final String ACTION_LOCKOUT_RESET = + "com.android.server.fingerprint.ACTION_LOCKOUT_RESET"; private ClientMonitor mAuthClient = null; private ClientMonitor mEnrollClient = null; private ClientMonitor mRemoveClient = null; + private final ArrayList<FingerprintServiceLockoutResetMonitor> mLockoutMonitors = + new ArrayList<>(); private final AppOpsManager mAppOps; private static final long MS_PER_SEC = 1000; private static final long FAIL_LOCKOUT_TIMEOUT_MS = 30*1000; private static final int MAX_FAILED_ATTEMPTS = 5; private static final int FINGERPRINT_ACQUIRED_GOOD = 0; + private final String mKeyguardPackage; Handler mHandler = new Handler() { @Override @@ -103,9 +125,19 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe private long mHalDeviceId; private int mFailedAttempts; private IFingerprintDaemon mDaemon; - private PowerManager mPowerManager; + private final PowerManager mPowerManager; + private final AlarmManager mAlarmManager; - private final Runnable mLockoutReset = new Runnable() { + private final BroadcastReceiver mLockoutReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (ACTION_LOCKOUT_RESET.equals(intent.getAction())) { + resetFailedAttempts(); + } + } + }; + + private final Runnable mResetFailedAttemptsRunnable = new Runnable() { @Override public void run() { resetFailedAttempts(); @@ -115,15 +147,20 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe public FingerprintService(Context context) { super(context); mContext = context; + mKeyguardPackage = ComponentName.unflattenFromString(context.getResources().getString( + com.android.internal.R.string.config_keyguardComponent)).getPackageName(); mAppOps = context.getSystemService(AppOpsManager.class); - mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + mPowerManager = mContext.getSystemService(PowerManager.class); + mAlarmManager = mContext.getSystemService(AlarmManager.class); + mContext.registerReceiver(mLockoutReceiver, new IntentFilter(ACTION_LOCKOUT_RESET), + RESET_FINGERPRINT_LOCKOUT, null /* handler */); } @Override public void binderDied() { Slog.v(TAG, "fingerprintd died"); mDaemon = null; - dispatchError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); + handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); } public IFingerprintDaemon getFingerprintDaemon() { @@ -151,7 +188,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe return mDaemon; } - protected void dispatchEnumerate(long deviceId, int[] fingerIds, int[] groupIds) { + protected void handleEnumerate(long deviceId, int[] fingerIds, int[] groupIds) { if (fingerIds.length != groupIds.length) { Slog.w(TAG, "fingerIds and groupIds differ in length: f[]=" + fingerIds + ", g[]=" + groupIds); @@ -161,7 +198,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe // TODO: update fingerprint/name pairs } - protected void dispatchRemoved(long deviceId, int fingerId, int groupId) { + protected void handleRemoved(long deviceId, int fingerId, int groupId) { final ClientMonitor client = mRemoveClient; if (fingerId != 0) { removeTemplateForUser(mRemoveClient, fingerId); @@ -171,7 +208,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } } - protected void dispatchError(long deviceId, int error) { + protected void handleError(long deviceId, int error) { if (mEnrollClient != null) { final IBinder token = mEnrollClient.token; if (mEnrollClient.sendError(error)) { @@ -187,7 +224,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } } - protected void dispatchAuthenticated(long deviceId, int fingerId, int groupId) { + protected void handleAuthenticated(long deviceId, int fingerId, int groupId) { if (mAuthClient != null) { final IBinder token = mAuthClient.token; if (mAuthClient.sendAuthenticated(fingerId, groupId)) { @@ -197,7 +234,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } } - protected void dispatchAcquired(long deviceId, int acquiredInfo) { + protected void handleAcquired(long deviceId, int acquiredInfo) { if (mEnrollClient != null) { if (mEnrollClient.sendAcquired(acquiredInfo)) { removeClient(mEnrollClient); @@ -209,16 +246,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } } - private void userActivity() { - long now = SystemClock.uptimeMillis(); - mPowerManager.userActivity(now, PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0); - } - - void handleUserSwitching(int userId) { - updateActiveGroup(userId); - } - - protected void dispatchEnrollResult(long deviceId, int fingerId, int groupId, int remaining) { + protected void handleEnrollResult(long deviceId, int fingerId, int groupId, int remaining) { if (mEnrollClient != null) { if (mEnrollClient.sendEnrollResult(fingerId, groupId, remaining)) { if (remaining == 0) { @@ -229,6 +257,15 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } } + private void userActivity() { + long now = SystemClock.uptimeMillis(); + mPowerManager.userActivity(now, PowerManager.USER_ACTIVITY_EVENT_TOUCH, 0); + } + + void handleUserSwitching(int userId) { + updateActiveGroup(userId); + } + private void removeClient(ClientMonitor client) { if (client == null) return; client.destroy(); @@ -242,7 +279,21 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } private boolean inLockoutMode() { - return mFailedAttempts > MAX_FAILED_ATTEMPTS; + return mFailedAttempts >= MAX_FAILED_ATTEMPTS; + } + + private void scheduleLockoutReset() { + mAlarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, + SystemClock.elapsedRealtime() + FAIL_LOCKOUT_TIMEOUT_MS, getLockoutResetIntent()); + } + + private void cancelLockoutReset() { + mAlarmManager.cancel(getLockoutResetIntent()); + } + + private PendingIntent getLockoutResetIntent() { + return PendingIntent.getBroadcast(mContext, 0, + new Intent(ACTION_LOCKOUT_RESET), PendingIntent.FLAG_UPDATE_CURRENT); } private void resetFailedAttempts() { @@ -250,14 +301,17 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe Slog.v(TAG, "Reset fingerprint lockout"); } mFailedAttempts = 0; + // If we're asked to reset failed attempts externally (i.e. from Keyguard), the alarm might + // still be pending; remove it. + cancelLockoutReset(); + notifyLockoutResetMonitors(); } private boolean handleFailedAttempt(ClientMonitor clientMonitor) { mFailedAttempts++; - if (mFailedAttempts > MAX_FAILED_ATTEMPTS) { + if (inLockoutMode()) { // Failing multiple times will continue to push out the lockout time. - mHandler.removeCallbacks(mLockoutReset); - mHandler.postDelayed(mLockoutReset, FAIL_LOCKOUT_TIMEOUT_MS); + scheduleLockoutReset(); if (clientMonitor != null && !clientMonitor.sendError(FingerprintManager.FINGERPRINT_ERROR_LOCKOUT)) { Slog.w(TAG, "Cannot send lockout message to client"); @@ -283,12 +337,13 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe return; } stopPendingOperations(true); - mEnrollClient = new ClientMonitor(token, receiver, groupId, restricted); + mEnrollClient = new ClientMonitor(token, receiver, groupId, restricted, token.toString()); final int timeout = (int) (ENROLLMENT_TIMEOUT_MS / MS_PER_SEC); try { final int result = daemon.enroll(cryptoToken, groupId, timeout); if (result != 0) { Slog.w(TAG, "startEnroll failed, result=" + result); + handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); } } catch (RemoteException e) { Slog.e(TAG, "startEnroll failed", e); @@ -362,14 +417,15 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } void startAuthentication(IBinder token, long opId, int groupId, - IFingerprintServiceReceiver receiver, int flags, boolean restricted) { + IFingerprintServiceReceiver receiver, int flags, boolean restricted, + String opPackageName) { IFingerprintDaemon daemon = getFingerprintDaemon(); if (daemon == null) { Slog.w(TAG, "startAuthentication: no fingeprintd!"); return; } stopPendingOperations(true); - mAuthClient = new ClientMonitor(token, receiver, groupId, restricted); + mAuthClient = new ClientMonitor(token, receiver, groupId, restricted, opPackageName); if (inLockoutMode()) { Slog.v(TAG, "In lockout mode; disallowing authentication"); if (!mAuthClient.sendError(FingerprintManager.FINGERPRINT_ERROR_LOCKOUT)) { @@ -382,6 +438,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe final int result = daemon.authenticate(opId, groupId); if (result != 0) { Slog.w(TAG, "startAuthentication failed, result=" + result); + handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); } } catch (RemoteException e) { Slog.e(TAG, "startAuthentication failed", e); @@ -424,12 +481,14 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe return; } - mRemoveClient = new ClientMonitor(token, receiver, userId, restricted); + stopPendingOperations(true); + mRemoveClient = new ClientMonitor(token, receiver, userId, restricted, token.toString()); // The fingerprint template ids will be removed when we get confirmation from the HAL try { final int result = daemon.remove(fingerId, userId); if (result != 0) { Slog.w(TAG, "startRemove with id = " + fingerId + " failed, result=" + result); + handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); } } catch (RemoteException e) { Slog.e(TAG, "startRemove failed", e); @@ -480,10 +539,67 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe return false; } - private boolean canUseFingerprint(String opPackageName) { + private boolean isForegroundActivity(int uid, int pid) { + try { + List<RunningAppProcessInfo> procs = + ActivityManagerNative.getDefault().getRunningAppProcesses(); + int N = procs.size(); + for (int i = 0; i < N; i++) { + RunningAppProcessInfo proc = procs.get(i); + if (proc.pid == pid && proc.uid == uid + && proc.importance == IMPORTANCE_FOREGROUND) { + return true; + } + } + } catch (RemoteException e) { + Slog.w(TAG, "am.getRunningAppProcesses() failed"); + } + return false; + } + + /** + * @param opPackageName name of package for caller + * @param foregroundOnly only allow this call while app is in the foreground + * @return true if caller can use fingerprint API + */ + private boolean canUseFingerprint(String opPackageName, boolean foregroundOnly) { checkPermission(USE_FINGERPRINT); - return mAppOps.noteOp(AppOpsManager.OP_USE_FINGERPRINT, Binder.getCallingUid(), - opPackageName) == AppOpsManager.MODE_ALLOWED; + final int uid = Binder.getCallingUid(); + final int pid = Binder.getCallingPid(); + if (opPackageName.equals(mKeyguardPackage)) { + return true; // Keyguard is always allowed + } + if (!isCurrentUserOrProfile(UserHandle.getCallingUserId())) { + Slog.w(TAG,"Rejecting " + opPackageName + " ; not a current user or profile"); + return false; + } + if (mAppOps.noteOp(AppOpsManager.OP_USE_FINGERPRINT, uid, opPackageName) + != AppOpsManager.MODE_ALLOWED) { + Slog.w(TAG, "Rejecting " + opPackageName + " ; permission denied"); + return false; + } + if (foregroundOnly && !isForegroundActivity(uid, pid)) { + Slog.w(TAG, "Rejecting " + opPackageName + " ; not in foreground"); + return false; + } + return true; + } + + private void addLockoutResetMonitor(FingerprintServiceLockoutResetMonitor monitor) { + if (!mLockoutMonitors.contains(monitor)) { + mLockoutMonitors.add(monitor); + } + } + + private void removeLockoutResetCallback( + FingerprintServiceLockoutResetMonitor monitor) { + mLockoutMonitors.remove(monitor); + } + + private void notifyLockoutResetMonitors() { + for (int i = 0; i < mLockoutMonitors.size(); i++) { + mLockoutMonitors.get(i).sendLockoutReset(); + } } private class ClientMonitor implements IBinder.DeathRecipient { @@ -491,13 +607,15 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe IFingerprintServiceReceiver receiver; int userId; boolean restricted; // True if client does not have MANAGE_FINGERPRINT permission + String owner; public ClientMonitor(IBinder token, IFingerprintServiceReceiver receiver, int userId, - boolean restricted) { + boolean restricted, String owner) { this.token = token; this.receiver = receiver; this.userId = userId; this.restricted = restricted; + this.owner = owner; // name of the client that owns this - for debugging try { token.linkToDeath(this, 0); } catch (RemoteException e) { @@ -557,6 +675,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe private boolean sendEnrollResult(int fpId, int groupId, int remaining) { if (receiver == null) return true; // client not listening FingerprintUtils.vibrateFingerprintSuccess(getContext()); + MetricsLogger.action(mContext, MetricsLogger.ACTION_FINGERPRINT_ENROLL); try { receiver.onEnrollResult(mHalDeviceId, fpId, groupId, remaining); return remaining == 0; @@ -574,9 +693,15 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe boolean authenticated = fpId != 0; if (receiver != null) { try { + MetricsLogger.action(mContext, MetricsLogger.ACTION_FINGERPRINT_AUTH, + authenticated); if (!authenticated) { receiver.onAuthenticationFailed(mHalDeviceId); } else { + if (DEBUG) { + Slog.v(TAG, "onAuthenticated(owner=" + mAuthClient.owner + + ", id=" + fpId + ", gp=" + groupId + ")"); + } Fingerprint fp = !restricted ? new Fingerprint("" /* TODO */, groupId, fpId, mHalDeviceId) : null; receiver.onAuthenticationSucceeded(mHalDeviceId, fp); @@ -589,12 +714,16 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe result = true; // client not listening } if (fpId == 0) { - FingerprintUtils.vibrateFingerprintError(getContext()); + if (receiver != null) { + FingerprintUtils.vibrateFingerprintError(getContext()); + } result |= handleFailedAttempt(this); } else { - FingerprintUtils.vibrateFingerprintSuccess(getContext()); + if (receiver != null) { + FingerprintUtils.vibrateFingerprintSuccess(getContext()); + } result |= true; // we have a valid fingerprint - mLockoutReset.run(); + resetFailedAttempts(); } return result; } @@ -634,38 +763,98 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe } } + private class FingerprintServiceLockoutResetMonitor { + + private final IFingerprintServiceLockoutResetCallback mCallback; + + public FingerprintServiceLockoutResetMonitor( + IFingerprintServiceLockoutResetCallback callback) { + mCallback = callback; + } + + public void sendLockoutReset() { + if (mCallback != null) { + try { + mCallback.onLockoutReset(mHalDeviceId); + } catch (DeadObjectException e) { + Slog.w(TAG, "Death object while invoking onLockoutReset: ", e); + mHandler.post(mRemoveCallbackRunnable); + } catch (RemoteException e) { + Slog.w(TAG, "Failed to invoke onLockoutReset: ", e); + } + } + } + + private final Runnable mRemoveCallbackRunnable = new Runnable() { + @Override + public void run() { + removeLockoutResetCallback(FingerprintServiceLockoutResetMonitor.this); + } + }; + } + private IFingerprintDaemonCallback mDaemonCallback = new IFingerprintDaemonCallback.Stub() { @Override - public void onEnrollResult(long deviceId, int fingerId, int groupId, int remaining) { - dispatchEnrollResult(deviceId, fingerId, groupId, remaining); + public void onEnrollResult(final long deviceId, final int fingerId, final int groupId, + final int remaining) { + mHandler.post(new Runnable() { + @Override + public void run() { + handleEnrollResult(deviceId, fingerId, groupId, remaining); + } + }); } @Override - public void onAcquired(long deviceId, int acquiredInfo) { - dispatchAcquired(deviceId, acquiredInfo); + public void onAcquired(final long deviceId, final int acquiredInfo) { + mHandler.post(new Runnable() { + @Override + public void run() { + handleAcquired(deviceId, acquiredInfo); + } + }); } @Override - public void onAuthenticated(long deviceId, int fingerId, int groupId) { - dispatchAuthenticated(deviceId, fingerId, groupId); + public void onAuthenticated(final long deviceId, final int fingerId, final int groupId) { + mHandler.post(new Runnable() { + @Override + public void run() { + handleAuthenticated(deviceId, fingerId, groupId); + } + }); } @Override - public void onError(long deviceId, int error) { - dispatchError(deviceId, error); + public void onError(final long deviceId, final int error) { + mHandler.post(new Runnable() { + @Override + public void run() { + handleError(deviceId, error); + } + }); } @Override - public void onRemoved(long deviceId, int fingerId, int groupId) { - dispatchRemoved(deviceId, fingerId, groupId); + public void onRemoved(final long deviceId, final int fingerId, final int groupId) { + mHandler.post(new Runnable() { + @Override + public void run() { + handleRemoved(deviceId, fingerId, groupId); + } + }); } @Override - public void onEnumerate(long deviceId, int[] fingerIds, int[] groupIds) { - dispatchEnumerate(deviceId, fingerIds, groupIds); + public void onEnumerate(final long deviceId, final int[] fingerIds, final int[] groupIds) { + mHandler.post(new Runnable() { + @Override + public void run() { + handleEnumerate(deviceId, fingerIds, groupIds); + } + }); } - }; private final class FingerprintServiceWrapper extends IFingerprintService.Stub { @@ -732,12 +921,8 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe public void authenticate(final IBinder token, final long opId, final int groupId, final IFingerprintServiceReceiver receiver, final int flags, final String opPackageName) { - if (!isCurrentUserOrProfile(UserHandle.getCallingUserId())) { - Slog.w(TAG, "Can't authenticate non-current user"); - return; - } - if (!canUseFingerprint(opPackageName)) { - Slog.w(TAG, "Calling not granted permission to use fingerprint"); + if (!canUseFingerprint(opPackageName, true /* foregroundOnly */)) { + if (DEBUG) Slog.v(TAG, "authenticate(): reject " + opPackageName); return; } @@ -749,14 +934,16 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe mHandler.post(new Runnable() { @Override public void run() { - startAuthentication(token, opId, effectiveGroupId, receiver, flags, restricted); + MetricsLogger.histogram(mContext, "fingerprint_token", opId != 0L ? 1 : 0); + startAuthentication(token, opId, effectiveGroupId, receiver, flags, restricted, + opPackageName); } }); } @Override // Binder call public void cancelAuthentication(final IBinder token, String opPackageName) { - if (!canUseFingerprint(opPackageName)) { + if (!canUseFingerprint(opPackageName, false /* foregroundOnly */)) { return; } mHandler.post(new Runnable() { @@ -787,7 +974,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe @Override // Binder call public boolean isHardwareDetected(long deviceId, String opPackageName) { - if (!canUseFingerprint(opPackageName)) { + if (!canUseFingerprint(opPackageName, false /* foregroundOnly */)) { return false; } return mHalDeviceId != 0; @@ -811,7 +998,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe @Override // Binder call public List<Fingerprint> getEnrolledFingerprints(int userId, String opPackageName) { - if (!canUseFingerprint(opPackageName)) { + if (!canUseFingerprint(opPackageName, false /* foregroundOnly */)) { return Collections.emptyList(); } int effectiveUserId = getEffectiveUserId(userId); @@ -821,7 +1008,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe @Override // Binder call public boolean hasEnrolledFingerprints(int userId, String opPackageName) { - if (!canUseFingerprint(opPackageName)) { + if (!canUseFingerprint(opPackageName, false /* foregroundOnly */)) { return false; } @@ -849,6 +1036,64 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe return FingerprintService.this.getAuthenticatorId(); } + + @Override // Binder call + protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + if (mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP) + != PackageManager.PERMISSION_GRANTED) { + pw.println("Permission Denial: can't dump Fingerprint from from pid=" + + Binder.getCallingPid() + + ", uid=" + Binder.getCallingUid()); + return; + } + + final long ident = Binder.clearCallingIdentity(); + try { + dumpInternal(pw); + } finally { + Binder.restoreCallingIdentity(ident); + } + } + @Override // Binder call + public void resetTimeout(byte [] token) { + checkPermission(RESET_FINGERPRINT_LOCKOUT); + // TODO: confirm security token when we move timeout management into the HAL layer. + mHandler.post(mResetFailedAttemptsRunnable); + } + + @Override + public void addLockoutResetCallback(final IFingerprintServiceLockoutResetCallback callback) + throws RemoteException { + mHandler.post(new Runnable() { + @Override + public void run() { + addLockoutResetMonitor( + new FingerprintServiceLockoutResetMonitor(callback)); + } + }); + } + } + + private void dumpInternal(PrintWriter pw) { + JSONObject dump = new JSONObject(); + try { + dump.put("service", "Fingerprint Manager"); + + JSONArray sets = new JSONArray(); + for (UserInfo user : UserManager.get(getContext()).getUsers()) { + final int userId = user.getUserHandle().getIdentifier(); + final int N = mFingerprintUtils.getFingerprintsForUser(mContext, userId).size(); + JSONObject set = new JSONObject(); + set.put("id", userId); + set.put("count", N); + sets.put(set); + } + + dump.put("prints", sets); + } catch (JSONException e) { + Slog.e(TAG, "dump formatting failure", e); + } + pw.println(dump); } @Override diff --git a/services/core/java/com/android/server/fingerprint/FingerprintUtils.java b/services/core/java/com/android/server/fingerprint/FingerprintUtils.java index d2744128ab9f..49dc8e4dac71 100644 --- a/services/core/java/com/android/server/fingerprint/FingerprintUtils.java +++ b/services/core/java/com/android/server/fingerprint/FingerprintUtils.java @@ -19,6 +19,7 @@ package com.android.server.fingerprint; import android.content.Context; import android.hardware.fingerprint.Fingerprint; import android.os.Vibrator; +import android.text.TextUtils; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; @@ -64,6 +65,10 @@ public class FingerprintUtils { } public void renameFingerprintForUser(Context ctx, int fingerId, int userId, CharSequence name) { + if (TextUtils.isEmpty(name)) { + // Don't do the rename if it's empty + return; + } getStateForUser(ctx, userId).renameFingerprint(fingerId, name); } diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java index 17b4f9ca03fd..5a136729291a 100644 --- a/services/core/java/com/android/server/input/InputManagerService.java +++ b/services/core/java/com/android/server/input/InputManagerService.java @@ -17,6 +17,7 @@ package com.android.server.input; import android.view.Display; +import com.android.internal.os.SomeArgs; import com.android.internal.R; import com.android.internal.util.XmlUtils; import com.android.server.DisplayThread; @@ -52,6 +53,7 @@ import android.hardware.input.IInputManager; import android.hardware.input.InputDeviceIdentifier; import android.hardware.input.InputManager; import android.hardware.input.InputManagerInternal; +import android.hardware.input.ITabletModeChangedListener; import android.hardware.input.KeyboardLayout; import android.hardware.input.TouchCalibration; import android.os.Binder; @@ -93,6 +95,7 @@ import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; +import java.util.List; import libcore.io.Streams; import libcore.util.Objects; @@ -112,6 +115,7 @@ public class InputManagerService extends IInputManager.Stub private static final int MSG_RELOAD_KEYBOARD_LAYOUTS = 3; private static final int MSG_UPDATE_KEYBOARD_LAYOUTS = 4; private static final int MSG_RELOAD_DEVICE_ALIASES = 5; + private static final int MSG_DELIVER_TABLET_MODE_CHANGED = 6; // Pointer to native input manager service object. private final long mPtr; @@ -124,6 +128,13 @@ public class InputManagerService extends IInputManager.Stub private boolean mSystemReady; private NotificationManager mNotificationManager; + private final Object mTabletModeLock = new Object(); + // List of currently registered tablet mode changed listeners by process id + private final SparseArray<TabletModeChangedListenerRecord> mTabletModeChangedListeners = + new SparseArray<>(); // guarded by mTabletModeLock + private final List<TabletModeChangedListenerRecord> mTempTabletModeChangedListenersToNotify = + new ArrayList<>(); + // Persistent data store. Must be locked each time during use. private final PersistentDataStore mDataStore = new PersistentDataStore(); @@ -227,6 +238,11 @@ public class InputManagerService extends IInputManager.Stub /** Switch code: Lid switch. When set, lid is shut. */ public static final int SW_LID = 0x00; + /** Switch code: Tablet mode switch. + * When set, the device is in tablet mode (i.e. no keyboard is connected). + */ + public static final int SW_TABLET_MODE = 0x01; + /** Switch code: Keypad slide. When set, keyboard is exposed. */ public static final int SW_KEYPAD_SLIDE = 0x0a; @@ -246,6 +262,7 @@ public class InputManagerService extends IInputManager.Stub public static final int SW_CAMERA_LENS_COVER = 0x09; public static final int SW_LID_BIT = 1 << SW_LID; + public static final int SW_TABLET_MODE_BIT = 1 << SW_TABLET_MODE; public static final int SW_KEYPAD_SLIDE_BIT = 1 << SW_KEYPAD_SLIDE; public static final int SW_HEADPHONE_INSERT_BIT = 1 << SW_HEADPHONE_INSERT; public static final int SW_MICROPHONE_INSERT_BIT = 1 << SW_MICROPHONE_INSERT; @@ -774,6 +791,57 @@ public class InputManagerService extends IInputManager.Stub } } + @Override // Binder call + public void registerTabletModeChangedListener(ITabletModeChangedListener listener) { + if (!checkCallingPermission(android.Manifest.permission.TABLET_MODE_LISTENER, + "registerTabletModeChangedListener()")) { + throw new SecurityException("Requires TABLET_MODE_LISTENER permission"); + } + if (listener == null) { + throw new IllegalArgumentException("listener must not be null"); + } + + synchronized (mTabletModeLock) { + final int callingPid = Binder.getCallingPid(); + if (mTabletModeChangedListeners.get(callingPid) != null) { + throw new IllegalStateException("The calling process has already registered " + + "a TabletModeChangedListener."); + } + TabletModeChangedListenerRecord record = + new TabletModeChangedListenerRecord(callingPid, listener); + try { + IBinder binder = listener.asBinder(); + binder.linkToDeath(record, 0); + } catch (RemoteException ex) { + throw new RuntimeException(ex); + } + mTabletModeChangedListeners.put(callingPid, record); + } + } + + private void onTabletModeChangedListenerDied(int pid) { + synchronized (mTabletModeLock) { + mTabletModeChangedListeners.remove(pid); + } + } + + // Must be called on handler + private void deliverTabletModeChanged(long whenNanos, boolean inTabletMode) { + mTempTabletModeChangedListenersToNotify.clear(); + final int numListeners; + synchronized (mTabletModeLock) { + numListeners = mTabletModeChangedListeners.size(); + for (int i = 0; i < numListeners; i++) { + mTempTabletModeChangedListenersToNotify.add( + mTabletModeChangedListeners.valueAt(i)); + } + } + for (int i = 0; i < numListeners; i++) { + mTempTabletModeChangedListenersToNotify.get(i).notifyTabletModeChanged( + whenNanos, inTabletMode); + } + } + // Must be called on handler. private void showMissingKeyboardLayoutNotification(InputDevice device) { if (!mKeyboardLayoutNotificationShown) { @@ -1419,6 +1487,15 @@ public class InputManagerService extends IInputManager.Stub mWiredAccessoryCallbacks.notifyWiredAccessoryChanged(whenNanos, switchValues, switchMask); } + + if ((switchMask & SW_TABLET_MODE) != 0) { + SomeArgs args = SomeArgs.obtain(); + args.argi1 = (int) (whenNanos & 0xFFFFFFFF); + args.argi2 = (int) (whenNanos >> 32); + args.arg1 = Boolean.valueOf((switchValues & SW_TABLET_MODE_BIT) != 0); + mHandler.obtainMessage(MSG_DELIVER_TABLET_MODE_CHANGED, + args).sendToTarget(); + } } // Native callback. @@ -1664,6 +1741,12 @@ public class InputManagerService extends IInputManager.Stub case MSG_RELOAD_DEVICE_ALIASES: reloadDeviceAliases(); break; + case MSG_DELIVER_TABLET_MODE_CHANGED: + SomeArgs args = (SomeArgs) msg.obj; + long whenNanos = (args.argi1 & 0xFFFFFFFFl) | ((long) args.argi2 << 32); + boolean inTabletMode = (boolean) args.arg1; + deliverTabletModeChanged(whenNanos, inTabletMode); + break; } } } @@ -1755,6 +1838,34 @@ public class InputManagerService extends IInputManager.Stub } } + private final class TabletModeChangedListenerRecord implements DeathRecipient { + private final int mPid; + private final ITabletModeChangedListener mListener; + + public TabletModeChangedListenerRecord(int pid, ITabletModeChangedListener listener) { + mPid = pid; + mListener = listener; + } + + @Override + public void binderDied() { + if (DEBUG) { + Slog.d(TAG, "Tablet mode changed listener for pid " + mPid + " died."); + } + onTabletModeChangedListenerDied(mPid); + } + + public void notifyTabletModeChanged(long whenNanos, boolean inTabletMode) { + try { + mListener.onTabletModeChanged(whenNanos, inTabletMode); + } catch (RemoteException ex) { + Slog.w(TAG, "Failed to notify process " + mPid + + " that tablet mode changed, assuming it died.", ex); + binderDied(); + } + } + } + private final class VibratorToken implements DeathRecipient { public final int mDeviceId; public final IBinder mToken; diff --git a/services/core/java/com/android/server/location/ActivityRecognitionProxy.java b/services/core/java/com/android/server/location/ActivityRecognitionProxy.java index 607805bf8190..55222dc305c3 100644 --- a/services/core/java/com/android/server/location/ActivityRecognitionProxy.java +++ b/services/core/java/com/android/server/location/ActivityRecognitionProxy.java @@ -20,8 +20,10 @@ import com.android.server.ServiceWatcher; import android.content.Context; import android.hardware.location.ActivityRecognitionHardware; +import android.hardware.location.IActivityRecognitionHardwareClient; import android.hardware.location.IActivityRecognitionHardwareWatcher; import android.os.Handler; +import android.os.IBinder; import android.os.RemoteException; import android.util.Log; @@ -34,21 +36,24 @@ public class ActivityRecognitionProxy { private static final String TAG = "ActivityRecognitionProxy"; private final ServiceWatcher mServiceWatcher; - private final ActivityRecognitionHardware mActivityRecognitionHardware; + private final boolean mIsSupported; + private final ActivityRecognitionHardware mInstance; private ActivityRecognitionProxy( Context context, Handler handler, + boolean activityRecognitionHardwareIsSupported, ActivityRecognitionHardware activityRecognitionHardware, int overlaySwitchResId, int defaultServicePackageNameResId, int initialPackageNameResId) { - mActivityRecognitionHardware = activityRecognitionHardware; + mIsSupported = activityRecognitionHardwareIsSupported; + mInstance = activityRecognitionHardware; Runnable newServiceWork = new Runnable() { @Override public void run() { - bindProvider(mActivityRecognitionHardware); + bindProvider(); } }; @@ -72,6 +77,7 @@ public class ActivityRecognitionProxy { public static ActivityRecognitionProxy createAndBind( Context context, Handler handler, + boolean activityRecognitionHardwareIsSupported, ActivityRecognitionHardware activityRecognitionHardware, int overlaySwitchResId, int defaultServicePackageNameResId, @@ -79,6 +85,7 @@ public class ActivityRecognitionProxy { ActivityRecognitionProxy activityRecognitionProxy = new ActivityRecognitionProxy( context, handler, + activityRecognitionHardwareIsSupported, activityRecognitionHardware, overlaySwitchResId, defaultServicePackageNameResId, @@ -89,25 +96,58 @@ public class ActivityRecognitionProxy { Log.e(TAG, "ServiceWatcher could not start."); return null; } - return activityRecognitionProxy; } /** * Helper function to bind the FusedLocationHardware to the appropriate FusedProvider instance. */ - private void bindProvider(ActivityRecognitionHardware activityRecognitionHardware) { - IActivityRecognitionHardwareWatcher watcher = - IActivityRecognitionHardwareWatcher.Stub.asInterface(mServiceWatcher.getBinder()); - if (watcher == null) { - Log.e(TAG, "No provider instance found on connection."); + private void bindProvider() { + IBinder binder = mServiceWatcher.getBinder(); + if (binder == null) { + Log.e(TAG, "Null binder found on connection."); return; } - + String descriptor; try { - watcher.onInstanceChanged(mActivityRecognitionHardware); + descriptor = binder.getInterfaceDescriptor(); } catch (RemoteException e) { - Log.e(TAG, "Error delivering hardware interface.", e); + Log.e(TAG, "Unable to get interface descriptor.", e); + return; + } + + if (IActivityRecognitionHardwareWatcher.class.getCanonicalName().equals(descriptor)) { + IActivityRecognitionHardwareWatcher watcher = + IActivityRecognitionHardwareWatcher.Stub.asInterface(binder); + if (watcher == null) { + Log.e(TAG, "No watcher found on connection."); + return; + } + if (mInstance == null) { + // to keep backwards compatibility do not update the watcher when there is no + // instance available, or it will cause an NPE + Log.d(TAG, "AR HW instance not available, binding will be a no-op."); + return; + } + try { + watcher.onInstanceChanged(mInstance); + } catch (RemoteException e) { + Log.e(TAG, "Error delivering hardware interface to watcher.", e); + } + } else if (IActivityRecognitionHardwareClient.class.getCanonicalName().equals(descriptor)) { + IActivityRecognitionHardwareClient client = + IActivityRecognitionHardwareClient.Stub.asInterface(binder); + if (client == null) { + Log.e(TAG, "No client found on connection."); + return; + } + try { + client.onAvailabilityChanged(mIsSupported, mInstance); + } catch (RemoteException e) { + Log.e(TAG, "Error delivering hardware interface to client.", e); + } + } else { + Log.e(TAG, "Invalid descriptor found on connection: " + descriptor); } } } diff --git a/services/core/java/com/android/server/location/GpsLocationProvider.java b/services/core/java/com/android/server/location/GpsLocationProvider.java index ba5f516b1356..4f42f8304200 100644 --- a/services/core/java/com/android/server/location/GpsLocationProvider.java +++ b/services/core/java/com/android/server/location/GpsLocationProvider.java @@ -444,7 +444,8 @@ public class GpsLocationProvider implements LocationProviderInterface { checkSmsSuplInit(intent); } else if (action.equals(Intents.WAP_PUSH_RECEIVED_ACTION)) { checkWapSuplInit(intent); - } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) { + } else if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION) + || action.equals(ConnectivityManager.CONNECTIVITY_ACTION_SUPL)) { // retrieve NetworkInfo result for this UID NetworkInfo info = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO); @@ -766,6 +767,10 @@ public class GpsLocationProvider implements LocationProviderInterface { && mAGpsDataConnectionState == AGPS_DATA_CONNECTION_OPENING) { if (mNetworkAvailable) { String apnName = info.getExtraInfo(); + // APN wasn't found in the intent, try to get it from the content provider. + if (apnName == null) { + apnName = getSelectedApn(); + } if (apnName == null) { /* Assign a dummy value in the case of C2K as otherwise we will have a runtime exception in the following call to native_agps_data_conn_open*/ @@ -2045,6 +2050,7 @@ public class GpsLocationProvider implements LocationProviderInterface { intentFilter.addAction(ALARM_WAKEUP); intentFilter.addAction(ALARM_TIMEOUT); intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); + intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION_SUPL); intentFilter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED); intentFilter.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED); intentFilter.addAction(Intent.ACTION_SCREEN_OFF); diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index 5c1878e3640d..8845d6e8b089 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -108,6 +108,7 @@ import android.net.LinkProperties; import android.net.NetworkIdentity; import android.net.NetworkInfo; import android.net.NetworkPolicy; +import android.net.NetworkPolicyManager; import android.net.NetworkQuotaInfo; import android.net.NetworkState; import android.net.NetworkTemplate; @@ -201,6 +202,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final int VERSION_LATEST = VERSION_SWITCH_UID; @VisibleForTesting + public static final int TYPE_NONE = 0; + @VisibleForTesting public static final int TYPE_WARNING = 0x1; @VisibleForTesting public static final int TYPE_LIMIT = 0x2; @@ -260,6 +263,9 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private PowerManagerInternal mPowerManagerInternal; private IDeviceIdleController mDeviceIdleController; + private final ComponentName mNotificationComponent; + private int mNotificationSequenceNumber; + final Object mRulesLock = new Object(); volatile boolean mSystemReady; @@ -357,6 +363,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { mPolicyFile = new AtomicFile(new File(systemDir, "netpolicy.xml")); mAppOps = context.getSystemService(AppOpsManager.class); + + final String notificationComponent = context.getString( + R.string.config_networkPolicyNotificationComponent); + mNotificationComponent = notificationComponent != null + ? ComponentName.unflattenFromString(notificationComponent) : null; } public void bindConnectivityManager(IConnectivityManager connManager) { @@ -778,6 +789,11 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final ArraySet<String> beforeNotifs = new ArraySet<String>(mActiveNotifs); mActiveNotifs.clear(); + // increment the sequence number so custom components know + // this update is new + mNotificationSequenceNumber++; + boolean hasNotifications = false; + // TODO: when switching to kernel notifications, compute next future // cycle boundary to recompute notifications. @@ -794,6 +810,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final long totalBytes = getTotalBytes(policy.template, start, end); if (policy.isOverLimit(totalBytes)) { + hasNotifications = true; if (policy.lastLimitSnooze >= start) { enqueueNotification(policy, TYPE_LIMIT_SNOOZED, totalBytes); } else { @@ -806,10 +823,18 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { if (policy.isOverWarning(totalBytes) && policy.lastWarningSnooze < start) { enqueueNotification(policy, TYPE_WARNING, totalBytes); + hasNotifications = true; } } } + // right now we don't care about restricted background notifications + // in the custom notification component, so trigger an update now + // if we didn't update anything this pass + if (!hasNotifications) { + sendNotificationToCustomComponent(null, TYPE_NONE, 0); + } + // ongoing notification when restricting background data if (mRestrictBackground) { enqueueRestrictedNotification(TAG_ALLOW_BACKGROUND); @@ -856,6 +881,12 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { * {@link NetworkPolicy#limitBytes}, potentially showing dialog to user. */ private void notifyOverLimitLocked(NetworkTemplate template) { + if (mNotificationComponent != null) { + // It is the job of the notification component to handle UI, + // so we do nothing here + return; + } + if (!mOverLimitNotified.contains(template)) { mContext.startActivity(buildNetworkOverLimitIntent(template)); mOverLimitNotified.add(template); @@ -874,11 +905,55 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { return TAG + ":" + policy.template.hashCode() + ":" + type; } + private boolean sendNotificationToCustomComponent( + NetworkPolicy policy, + int type, + long totalBytes) { + if (mNotificationComponent == null) { + return false; + } + + Intent intent = new Intent(); + intent.setFlags(Intent.FLAG_RECEIVER_FOREGROUND); + intent.setComponent(mNotificationComponent); + + int notificationType = NetworkPolicyManager.NOTIFICATION_TYPE_NONE; + switch (type) { + case TYPE_WARNING: + notificationType = NetworkPolicyManager.NOTIFICATION_TYPE_USAGE_WARNING; + break; + case TYPE_LIMIT: + notificationType = NetworkPolicyManager.NOTIFICATION_TYPE_USAGE_REACHED_LIMIT; + break; + case TYPE_LIMIT_SNOOZED: + notificationType = NetworkPolicyManager.NOTIFICATION_TYPE_USAGE_EXCEEDED_LIMIT; + break; + } + + intent.setAction(NetworkPolicyManager.ACTION_SHOW_NETWORK_POLICY_NOTIFICATION); + intent.putExtra(NetworkPolicyManager.EXTRA_NOTIFICATION_TYPE, notificationType); + intent.putExtra( + NetworkPolicyManager.EXTRA_NOTIFICATION_SEQUENCE_NUMBER, + mNotificationSequenceNumber); + + if (notificationType != NetworkPolicyManager.NOTIFICATION_TYPE_NONE) { + intent.putExtra(NetworkPolicyManager.EXTRA_NETWORK_POLICY, policy); + intent.putExtra(NetworkPolicyManager.EXTRA_BYTES_USED, totalBytes); + } + + mContext.sendBroadcast(intent); + return true; + } + /** * Show notification for combined {@link NetworkPolicy} and specific type, * like {@link #TYPE_LIMIT}. Okay to call multiple times. */ private void enqueueNotification(NetworkPolicy policy, int type, long totalBytes) { + if (sendNotificationToCustomComponent(policy, type, totalBytes)) { + return; + } + final String tag = buildNotificationTag(policy, type); final Notification.Builder builder = new Notification.Builder(mContext); builder.setOnlyAlertOnce(true); @@ -1738,6 +1813,19 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } } + @Override + public void snoozeWarning(NetworkTemplate template) { + mContext.enforceCallingOrSelfPermission(MANAGE_NETWORK_POLICY, TAG); + + final long token = Binder.clearCallingIdentity(); + try { + // TODO: this seems like a race condition? (along with snoozeLimit above) + performSnooze(template, TYPE_WARNING); + } finally { + Binder.restoreCallingIdentity(token); + } + } + void performSnooze(NetworkTemplate template, int type) { maybeRefreshTrustedTime(); final long currentTime = currentTimeMillis(); diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 57d7758fb6aa..2fda7455bc2a 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -411,8 +411,7 @@ public class ZenModeHelper { applyRestrictions(muteNotifications, USAGE_NOTIFICATION); // call restrictions - final boolean muteCalls = zen && !mConfig.allowCalls && !mConfig.allowRepeatCallers - || mEffectsSuppressed; + final boolean muteCalls = zen && !mConfig.allowCalls && !mConfig.allowRepeatCallers; applyRestrictions(muteCalls, USAGE_NOTIFICATION_RINGTONE); // alarm restrictions diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 96a5e0057d61..b5046056e913 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -245,6 +245,8 @@ final class DefaultPermissionGrantPolicy { if (verifierPackage != null && doesPackageSupportRuntimePermissions(verifierPackage)) { grantRuntimePermissionsLPw(verifierPackage, STORAGE_PERMISSIONS, true, userId); + grantRuntimePermissionsLPw(verifierPackage, PHONE_PERMISSIONS, false, userId); + grantRuntimePermissionsLPw(verifierPackage, SMS_PERMISSIONS, false, userId); } // SetupWizard diff --git a/services/core/java/com/android/server/pm/PackageDexOptimizer.java b/services/core/java/com/android/server/pm/PackageDexOptimizer.java index 13a0bb06260c..6c6871fd8dfd 100644 --- a/services/core/java/com/android/server/pm/PackageDexOptimizer.java +++ b/services/core/java/com/android/server/pm/PackageDexOptimizer.java @@ -232,8 +232,7 @@ final class PackageDexOptimizer { @Nullable private String createOatDirIfSupported(PackageParser.Package pkg, String dexInstructionSet) throws IOException { - if ((pkg.isSystemApp() && !pkg.isUpdatedSystemApp()) || pkg.isForwardLocked() - || pkg.applicationInfo.isExternalAsec()) { + if (!pkg.canHaveOatDir()) { return null; } File codePath = new File(pkg.codePath); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index d458fcd5c2c2..8f9b2c896a95 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2287,16 +2287,16 @@ public class PackageManagerService extends IPackageManager.Stub { } updatePermissionsLPw(null, null, updateFlags); ver.sdkVersion = mSdkVersion; - // clear only after permissions have been updated - mExistingSystemPackages.clear(); - mPromoteSystemApps = false; - // If this is the first boot, and it is a normal boot, then - // we need to initialize the default preferred apps. - if (!mRestoredSettings && !onlyCore) { - mSettings.applyDefaultPreferredAppsLPw(this, UserHandle.USER_OWNER); - applyFactoryDefaultBrowserLPw(UserHandle.USER_OWNER); - primeDomainVerificationsLPw(UserHandle.USER_OWNER); + // If this is the first boot or an update from pre-M, and it is a normal + // boot, then we need to initialize the default preferred apps across + // all defined users. + if (!onlyCore && (mPromoteSystemApps || !mRestoredSettings)) { + for (UserInfo user : sUserManager.getUsers(true)) { + mSettings.applyDefaultPreferredAppsLPw(this, user.id); + applyFactoryDefaultBrowserLPw(user.id); + primeDomainVerificationsLPw(user.id); + } } // If this is first boot after an OTA, and a normal boot, then @@ -2314,6 +2314,10 @@ public class PackageManagerService extends IPackageManager.Stub { checkDefaultBrowser(); + // clear only after permissions and other defaults have been updated + mExistingSystemPackages.clear(); + mPromoteSystemApps = false; + // All the changes are done during package scanning. ver.databaseVersion = Settings.CURRENT_DATABASE_VERSION; @@ -4234,16 +4238,18 @@ public class PackageManagerService extends IPackageManager.Stub { if (ri != null) { return ri; } + ri = new ResolveInfo(mResolveInfo); + ri.activityInfo = new ActivityInfo(ri.activityInfo); + ri.activityInfo.applicationInfo = new ApplicationInfo( + ri.activityInfo.applicationInfo); if (userId != 0) { - ri = new ResolveInfo(mResolveInfo); - ri.activityInfo = new ActivityInfo(ri.activityInfo); - ri.activityInfo.applicationInfo = new ApplicationInfo( - ri.activityInfo.applicationInfo); ri.activityInfo.applicationInfo.uid = UserHandle.getUid(userId, UserHandle.getAppId(ri.activityInfo.applicationInfo.uid)); - return ri; } - return mResolveInfo; + // Make sure that the resolver is displayable in car mode + if (ri.activityInfo.metaData == null) ri.activityInfo.metaData = new Bundle(); + ri.activityInfo.metaData.putBoolean(Intent.METADATA_DOCK_HOME, true); + return ri; } } return null; @@ -5931,12 +5937,6 @@ public class PackageManagerService extends IPackageManager.Stub { */ if (shouldHideSystemApp) { synchronized (mPackages) { - /* - * We have to grant systems permissions before we hide, because - * grantPermissions will assume the package update is trying to - * expand its permissions. - */ - grantPermissionsLPw(pkg, true, pkg.packageName); mSettings.disableSystemPackageLPw(pkg.packageName); } } @@ -13577,9 +13577,14 @@ public class PackageManagerService extends IPackageManager.Stub { libDirRoot = ps.legacyNativeLibraryPathString; } if (p != null && (isExternal(p) || p.isForwardLocked())) { - String secureContainerId = cidFromCodePath(p.applicationInfo.getBaseCodePath()); - if (secureContainerId != null) { - asecPath = PackageHelper.getSdFilesystem(secureContainerId); + final long token = Binder.clearCallingIdentity(); + try { + String secureContainerId = cidFromCodePath(p.applicationInfo.getBaseCodePath()); + if (secureContainerId != null) { + asecPath = PackageHelper.getSdFilesystem(secureContainerId); + } + } finally { + Binder.restoreCallingIdentity(token); } } } @@ -13600,7 +13605,21 @@ public class PackageManagerService extends IPackageManager.Stub { // TODO(multiArch): Extend getSizeInfo to look at *all* instruction sets, not // just the primary. String[] dexCodeInstructionSets = getDexCodeInstructionSets(getAppDexInstructionSets(ps)); - int res = mInstaller.getSizeInfo(p.volumeUuid, packageName, userHandle, p.baseCodePath, + + String apkPath; + File packageDir = new File(p.codePath); + + if (packageDir.isDirectory() && p.canHaveOatDir()) { + apkPath = packageDir.getAbsolutePath(); + // If libDirRoot is inside a package dir, set it to null to avoid it being counted twice + if (libDirRoot != null && libDirRoot.startsWith(apkPath)) { + libDirRoot = null; + } + } else { + apkPath = p.baseCodePath; + } + + int res = mInstaller.getSizeInfo(p.volumeUuid, packageName, userHandle, apkPath, libDirRoot, publicSrcDir, asecPath, dexCodeInstructionSets, pStats); if (res < 0) { return false; @@ -15636,14 +15655,28 @@ public class PackageManagerService extends IPackageManager.Stub { } } - private void loadPrivatePackages(VolumeInfo vol) { + private void loadPrivatePackages(final VolumeInfo vol) { + mHandler.post(new Runnable() { + @Override + public void run() { + loadPrivatePackagesInner(vol); + } + }); + } + + private void loadPrivatePackagesInner(VolumeInfo vol) { final ArrayList<ApplicationInfo> loaded = new ArrayList<>(); final int parseFlags = mDefParseFlags | PackageParser.PARSE_EXTERNAL_STORAGE; - synchronized (mInstallLock) { + + final VersionInfo ver; + final List<PackageSetting> packages; synchronized (mPackages) { - final VersionInfo ver = mSettings.findOrCreateVersion(vol.fsUuid); - final List<PackageSetting> packages = mSettings.getVolumePackagesLPr(vol.fsUuid); - for (PackageSetting ps : packages) { + ver = mSettings.findOrCreateVersion(vol.fsUuid); + packages = mSettings.getVolumePackagesLPr(vol.fsUuid); + } + + for (PackageSetting ps : packages) { + synchronized (mInstallLock) { final PackageParser.Package pkg; try { pkg = scanPackageLI(ps.codePath, parseFlags, SCAN_INITIAL, 0L, null); @@ -15656,7 +15689,9 @@ public class PackageManagerService extends IPackageManager.Stub { deleteCodeCacheDirsLI(ps.volumeUuid, ps.name); } } + } + synchronized (mPackages) { int updateFlags = UPDATE_PERMISSIONS_ALL; if (ver.sdkVersion != mSdkVersion) { logCriticalInfo(Log.INFO, "Platform changed from " + ver.sdkVersion + " to " @@ -15670,13 +15705,21 @@ public class PackageManagerService extends IPackageManager.Stub { mSettings.writeLPr(); } - } if (DEBUG_INSTALL) Slog.d(TAG, "Loaded packages " + loaded); sendResourcesChangedBroadcast(true, false, loaded, null); } - private void unloadPrivatePackages(VolumeInfo vol) { + private void unloadPrivatePackages(final VolumeInfo vol) { + mHandler.post(new Runnable() { + @Override + public void run() { + unloadPrivatePackagesInner(vol); + } + }); + } + + private void unloadPrivatePackagesInner(VolumeInfo vol) { final ArrayList<ApplicationInfo> unloaded = new ArrayList<>(); synchronized (mInstallLock) { synchronized (mPackages) { @@ -15751,7 +15794,7 @@ public class PackageManagerService extends IPackageManager.Stub { if (userDir.exists()) continue; try { - UserManagerService.prepareUserDirectory(userDir); + UserManagerService.prepareUserDirectory(mContext, volumeUuid, user.id); UserManagerService.enforceSerialNumber(userDir, user.serialNumber); } catch (IOException e) { Log.wtf(TAG, "Failed to create user directory on " + volumeUuid, e); diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index a762014a1d64..943e649425c8 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -38,10 +38,13 @@ import android.os.Binder; import android.os.Build; import android.os.Environment; import android.os.FileUtils; +import android.os.IBinder; import android.os.Handler; import android.os.Message; import android.os.PatternMatcher; import android.os.Process; +import android.os.RemoteException; +import android.os.ServiceManager; import android.os.SystemClock; import android.os.UserHandle; import android.os.UserManager; diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 060752568f2e..06c3682fa988 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -1285,7 +1285,7 @@ public class UserManagerService extends IUserManager.Stub { try { final File userDir = Environment.getDataUserDirectory(volumeUuid, userId); - prepareUserDirectory(userDir); + prepareUserDirectory(mContext, volumeUuid, userId); enforceSerialNumber(userDir, userInfo.serialNumber); } catch (IOException e) { Log.wtf(LOG_TAG, "Failed to create user directory on " + volumeUuid, e); @@ -1493,6 +1493,8 @@ public class UserManagerService extends IUserManager.Stub { } private void removeUserStateLocked(final int userHandle) { + mContext.getSystemService(StorageManager.class) + .deleteUserKey(userHandle); // Cleanup package manager settings mPm.cleanUpUserLILPw(this, userHandle); @@ -1899,16 +1901,10 @@ public class UserManagerService extends IUserManager.Stub { * Create new {@code /data/user/[id]} directory and sets default * permissions. */ - public static void prepareUserDirectory(File file) throws IOException { - if (!file.exists()) { - if (!file.mkdir()) { - throw new IOException("Failed to create " + file); - } - } - if (FileUtils.setPermissions(file.getAbsolutePath(), 0771, Process.SYSTEM_UID, - Process.SYSTEM_UID) != 0) { - throw new IOException("Failed to prepare " + file); - } + public static void prepareUserDirectory(Context context, String volumeUuid, int userId) { + final StorageManager storage = context.getSystemService(StorageManager.class); + final File userDir = Environment.getDataUserDirectory(volumeUuid, userId); + storage.createNewUserDir(userId, userDir); } /** diff --git a/services/core/java/com/android/server/policy/BurnInProtectionHelper.java b/services/core/java/com/android/server/policy/BurnInProtectionHelper.java index fef1e57504cd..e6ec6a67fe3a 100644 --- a/services/core/java/com/android/server/policy/BurnInProtectionHelper.java +++ b/services/core/java/com/android/server/policy/BurnInProtectionHelper.java @@ -72,6 +72,9 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener, /* 1 means increasing, -1 means decreasing */ private int mYOffsetDirection = 1; + private int mAppliedBurnInXOffset = 0; + private int mAppliedBurnInYOffset = 0; + private final AlarmManager mAlarmManager; private final PendingIntent mBurnInProtectionIntent; private final DisplayManagerInternal mDisplayManagerInternal; @@ -139,6 +142,8 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener, mFirstUpdate = false; } else { adjustOffsets(); + mAppliedBurnInXOffset = mLastBurnInXOffset; + mAppliedBurnInYOffset = mLastBurnInYOffset; mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), mLastBurnInXOffset, mLastBurnInYOffset); } @@ -258,6 +263,8 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener, @Override public void onAnimationEnd(Animator animator) { if (animator == mCenteringAnimator && !mBurnInProtectionActive) { + mAppliedBurnInXOffset = 0; + mAppliedBurnInYOffset = 0; // No matter how the animation finishes, we want to zero the offsets. mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), 0, 0); } @@ -276,7 +283,7 @@ public class BurnInProtectionHelper implements DisplayManager.DisplayListener, if (!mBurnInProtectionActive) { final float value = (Float) valueAnimator.getAnimatedValue(); mDisplayManagerInternal.setDisplayOffsets(mDisplay.getDisplayId(), - (int) (mLastBurnInXOffset * value), (int) (mLastBurnInYOffset * value)); + (int) (mAppliedBurnInXOffset * value), (int) (mAppliedBurnInYOffset * value)); } } } diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 489bcdb7b2c3..e2f9230be414 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -65,6 +65,7 @@ import android.os.Looper; import android.os.Message; import android.os.Messenger; import android.os.PowerManager; +import android.os.PowerManagerInternal; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; @@ -117,6 +118,7 @@ import com.android.internal.R; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.util.ScreenShapeHelper; import com.android.internal.widget.PointerLocationView; +import com.android.server.GestureLauncherService; import com.android.server.LocalServices; import com.android.server.policy.keyguard.KeyguardServiceDelegate; import com.android.server.policy.keyguard.KeyguardServiceDelegate.DrawnListener; @@ -125,7 +127,6 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; -import java.util.Arrays; import java.util.HashSet; import java.util.List; @@ -267,6 +268,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { PowerManager mPowerManager; ActivityManagerInternal mActivityManagerInternal; DreamManagerInternal mDreamManagerInternal; + PowerManagerInternal mPowerManagerInternal; IStatusBarService mStatusBarService; boolean mPreloadedRecentApps; final Object mServiceAquireLock = new Object(); @@ -762,6 +764,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { } class MyOrientationListener extends WindowOrientationListener { + private final Runnable mUpdateRotationRunnable = new Runnable() { + @Override + public void run() { + updateRotation(false); + } + }; + MyOrientationListener(Context context, Handler handler) { super(context, handler); } @@ -769,7 +778,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void onProposedRotationChanged(int rotation) { if (localLOGV) Slog.v(TAG, "onProposedRotationChanged, rotation=" + rotation); - updateRotation(false); + mHandler.post(mUpdateRotationRunnable); } } MyOrientationListener mOrientationListener; @@ -924,10 +933,17 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + GestureLauncherService gestureService = LocalServices.getService( + GestureLauncherService.class); + boolean gesturedServiceIntercepted = false; + if (gestureService != null) { + gesturedServiceIntercepted = gestureService.interceptPowerKeyDown(event, interactive); + } + // If the power key has still not yet been handled, then detect short // press, long press, or multi press and decide what to do. mPowerKeyHandled = hungUp || mScreenshotChordVolumeDownKeyTriggered - || mScreenshotChordVolumeUpKeyTriggered; + || mScreenshotChordVolumeUpKeyTriggered || gesturedServiceIntercepted; if (!mPowerKeyHandled) { if (interactive) { // When interactive, we're already awake. @@ -1316,7 +1332,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class); mActivityManagerInternal = LocalServices.getService(ActivityManagerInternal.class); mDreamManagerInternal = LocalServices.getService(DreamManagerInternal.class); + mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class); mAppOpsManager = (AppOpsManager) mContext.getSystemService(Context.APP_OPS_SERVICE); + mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class); // Init display burn-in protection boolean burnInProtectionEnabled = context.getResources().getBoolean( @@ -1492,6 +1510,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } @Override + public void onFling(int duration) { + if (mPowerManagerInternal != null) { + mPowerManagerInternal.powerHint( + PowerManagerInternal.POWER_HINT_INTERACTION, duration); + } + } + @Override public void onDebug() { // no-op } @@ -4364,6 +4389,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (attrs.type == TYPE_STATUS_BAR) { if ((attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) { mForceStatusBarFromKeyguard = true; + mShowingLockscreen = true; } if ((attrs.privateFlags & PRIVATE_FLAG_FORCE_STATUS_BAR_VISIBLE_TRANSPARENT) != 0) { mForceStatusBarTransparent = true; @@ -4384,9 +4410,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { mForceStatusBar = true; } } - if ((attrs.privateFlags & PRIVATE_FLAG_KEYGUARD) != 0) { - mShowingLockscreen = true; - } if (attrs.type == TYPE_DREAM) { // If the lockscreen was showing when the dream started then wait // for the dream to draw before hiding the lockscreen. @@ -4410,7 +4433,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mAppsToBeHidden.isEmpty()) { if (dismissKeyguard && !mKeyguardSecure) { mAppsThatDismissKeyguard.add(appToken); - } else { + } else if (win.isDrawnLw() || win.hasAppShownWindows()) { mWinShowWhenLocked = win; mHideLockScreen = true; mForceStatusBarFromKeyguard = false; @@ -4444,7 +4467,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mWinDismissingKeyguard = win; mSecureDismissingKeyguard = mKeyguardSecure; mForceStatusBarFromKeyguard = mShowingLockscreen && mKeyguardSecure; - } else if (mAppsToBeHidden.isEmpty() && showWhenLocked) { + } else if (mAppsToBeHidden.isEmpty() && showWhenLocked + && (win.isDrawnLw() || win.hasAppShownWindows())) { if (DEBUG_LAYOUT) Slog.v(TAG, "Setting mHideLockScreen to true by win " + win); mHideLockScreen = true; @@ -5072,6 +5096,15 @@ public class PhoneWindowManager implements WindowManagerPolicy { break; } + case KeyEvent.KEYCODE_SOFT_SLEEP: { + result &= ~ACTION_PASS_TO_USER; + isWakeKey = false; + if (!down) { + mPowerManagerInternal.setUserInactiveOverrideFromWindowManager(); + } + break; + } + case KeyEvent.KEYCODE_WAKEUP: { result &= ~ACTION_PASS_TO_USER; isWakeKey = true; @@ -6059,6 +6092,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { mKeyguardDelegate.bindService(mContext); mKeyguardDelegate.onBootCompleted(); } + mSystemGestures.systemReady(); } /** {@inheritDoc} */ @@ -6085,6 +6119,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } startedWakingUp(); screenTurningOn(null); + screenTurnedOn(); } ProgressDialog mBootMsgDialog = null; @@ -7001,5 +7036,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (mBurnInProtectionHelper != null) { mBurnInProtectionHelper.dump(prefix, pw); } + if (mKeyguardDelegate != null) { + mKeyguardDelegate.dump(prefix, pw); + } } } diff --git a/services/core/java/com/android/server/policy/StatusBarController.java b/services/core/java/com/android/server/policy/StatusBarController.java index d1b50dadc6a0..b1ae922f5f32 100644 --- a/services/core/java/com/android/server/policy/StatusBarController.java +++ b/services/core/java/com/android/server/policy/StatusBarController.java @@ -72,7 +72,9 @@ public class StatusBarController extends BarController { if (statusbar != null) { long startTime = calculateStatusBarTransitionStartTime(openAnimation, closeAnimation); - statusbar.appTransitionStarting(startTime, TRANSITION_DURATION); + long duration = closeAnimation != null || openAnimation != null + ? TRANSITION_DURATION : 0; + statusbar.appTransitionStarting(startTime, duration); } } catch (RemoteException e) { Slog.e(mTag, "RemoteException when app transition is starting", e); diff --git a/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java b/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java index 627b3284be18..e4bd21d40233 100644 --- a/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java +++ b/services/core/java/com/android/server/policy/SystemGesturesPointerEventListener.java @@ -17,9 +17,14 @@ package com.android.server.policy; import android.content.Context; +import android.os.Handler; +import android.os.Looper; +import android.os.SystemClock; import android.util.Slog; +import android.view.GestureDetector; import android.view.MotionEvent; import android.view.WindowManagerPolicy.PointerEventListener; +import android.widget.OverScroller; /* * Listens for system-wide input gestures, firing callbacks when detected. @@ -31,12 +36,14 @@ public class SystemGesturesPointerEventListener implements PointerEventListener private static final long SWIPE_TIMEOUT_MS = 500; private static final int MAX_TRACKED_POINTERS = 32; // max per input system private static final int UNTRACKED_POINTER = -1; + private static final int MAX_FLING_TIME_MILLIS = 5000; private static final int SWIPE_NONE = 0; private static final int SWIPE_FROM_TOP = 1; private static final int SWIPE_FROM_BOTTOM = 2; private static final int SWIPE_FROM_RIGHT = 3; + private final Context mContext; private final int mSwipeStartThreshold; private final int mSwipeDistanceThreshold; private final Callbacks mCallbacks; @@ -45,13 +52,18 @@ public class SystemGesturesPointerEventListener implements PointerEventListener private final float[] mDownY = new float[MAX_TRACKED_POINTERS]; private final long[] mDownTime = new long[MAX_TRACKED_POINTERS]; + private GestureDetector mGestureDetector; + private OverScroller mOverscroller; + int screenHeight; int screenWidth; private int mDownPointers; private boolean mSwipeFireable; private boolean mDebugFireable; + private long mLastFlingTime; public SystemGesturesPointerEventListener(Context context, Callbacks callbacks) { + mContext = context; mCallbacks = checkNull("callbacks", callbacks); mSwipeStartThreshold = checkNull("context", context).getResources() .getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height); @@ -67,8 +79,17 @@ public class SystemGesturesPointerEventListener implements PointerEventListener return arg; } + public void systemReady() { + Handler h = new Handler(Looper.myLooper()); + mGestureDetector = new GestureDetector(mContext, new FlingGestureDetector(), h); + mOverscroller = new OverScroller(mContext); + } + @Override public void onPointerEvent(MotionEvent event) { + if (mGestureDetector != null) { + mGestureDetector.onTouchEvent(event); + } switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: mSwipeFireable = true; @@ -190,10 +211,40 @@ public class SystemGesturesPointerEventListener implements PointerEventListener return SWIPE_NONE; } + private final class FlingGestureDetector extends GestureDetector.SimpleOnGestureListener { + @Override + public boolean onSingleTapUp(MotionEvent e) { + if (!mOverscroller.isFinished()) { + mOverscroller.forceFinished(true); + } + return true; + } + @Override + public boolean onFling(MotionEvent down, MotionEvent up, + float velocityX, float velocityY) { + mOverscroller.computeScrollOffset(); + long now = SystemClock.uptimeMillis(); + + if (mLastFlingTime != 0 && now > mLastFlingTime + MAX_FLING_TIME_MILLIS) { + mOverscroller.forceFinished(true); + } + mOverscroller.fling(0, 0, (int)velocityX, (int)velocityY, + Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE); + int duration = mOverscroller.getDuration(); + if (duration > MAX_FLING_TIME_MILLIS) { + duration = MAX_FLING_TIME_MILLIS; + } + mLastFlingTime = now; + mCallbacks.onFling(duration); + return true; + } + } + interface Callbacks { void onSwipeFromTop(); void onSwipeFromBottom(); void onSwipeFromRight(); + void onFling(int durationMs); void onDown(); void onUpOrCancel(); void onDebug(); diff --git a/services/core/java/com/android/server/policy/WindowOrientationListener.java b/services/core/java/com/android/server/policy/WindowOrientationListener.java index c71b48fa8b18..991622398a48 100644 --- a/services/core/java/com/android/server/policy/WindowOrientationListener.java +++ b/services/core/java/com/android/server/policy/WindowOrientationListener.java @@ -24,10 +24,12 @@ import android.hardware.SensorManager; import android.os.Handler; import android.os.SystemClock; import android.os.SystemProperties; +import android.text.TextUtils; import android.util.Slog; import java.io.PrintWriter; import java.util.Arrays; +import java.util.List; /** * A special helper class used by the WindowManager @@ -52,8 +54,9 @@ public abstract class WindowOrientationListener { private SensorManager mSensorManager; private boolean mEnabled; private int mRate; + private String mSensorType; private Sensor mSensor; - private SensorEventListenerImpl mSensorEventListener; + private OrientationJudge mOrientationJudge; private int mCurrentRotation = -1; private final Object mLock = new Object(); @@ -67,7 +70,7 @@ public abstract class WindowOrientationListener { public WindowOrientationListener(Context context, Handler handler) { this(context, handler, SensorManager.SENSOR_DELAY_UI); } - + /** * Creates a new WindowOrientationListener. * @@ -84,11 +87,31 @@ public abstract class WindowOrientationListener { mHandler = handler; mSensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE); mRate = rate; - mSensor = mSensorManager.getDefaultSensor(USE_GRAVITY_SENSOR - ? Sensor.TYPE_GRAVITY : Sensor.TYPE_ACCELEROMETER); - if (mSensor != null) { - // Create listener only if sensors do exist - mSensorEventListener = new SensorEventListenerImpl(context); + + mSensorType = context.getResources().getString( + com.android.internal.R.string.config_orientationSensorType); + if (!TextUtils.isEmpty(mSensorType)) { + List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); + final int N = sensors.size(); + for (int i = 0; i < N; i++) { + Sensor sensor = sensors.get(i); + if (mSensorType.equals(sensor.getStringType())) { + mSensor = sensor; + break; + } + } + if (mSensor != null) { + mOrientationJudge = new OrientationSensorJudge(); + } + } + + if (mOrientationJudge == null) { + mSensor = mSensorManager.getDefaultSensor(USE_GRAVITY_SENSOR + ? Sensor.TYPE_GRAVITY : Sensor.TYPE_ACCELEROMETER); + if (mSensor != null) { + // Create listener only if sensors do exist + mOrientationJudge = new AccelSensorJudge(context); + } } } @@ -106,8 +129,8 @@ public abstract class WindowOrientationListener { if (LOG) { Slog.d(TAG, "WindowOrientationListener enabled"); } - mSensorEventListener.resetLocked(); - mSensorManager.registerListener(mSensorEventListener, mSensor, mRate, mHandler); + mOrientationJudge.resetLocked(); + mSensorManager.registerListener(mOrientationJudge, mSensor, mRate, mHandler); mEnabled = true; } } @@ -126,7 +149,7 @@ public abstract class WindowOrientationListener { if (LOG) { Slog.d(TAG, "WindowOrientationListener disabled"); } - mSensorManager.unregisterListener(mSensorEventListener); + mSensorManager.unregisterListener(mOrientationJudge); mEnabled = false; } } @@ -134,8 +157,8 @@ public abstract class WindowOrientationListener { public void onTouchStart() { synchronized (mLock) { - if (mSensorEventListener != null) { - mSensorEventListener.onTouchStartLocked(); + if (mOrientationJudge != null) { + mOrientationJudge.onTouchStartLocked(); } } } @@ -144,8 +167,8 @@ public abstract class WindowOrientationListener { long whenElapsedNanos = SystemClock.elapsedRealtimeNanos(); synchronized (mLock) { - if (mSensorEventListener != null) { - mSensorEventListener.onTouchEndLocked(whenElapsedNanos); + if (mOrientationJudge != null) { + mOrientationJudge.onTouchEndLocked(whenElapsedNanos); } } } @@ -172,7 +195,7 @@ public abstract class WindowOrientationListener { public int getProposedRotation() { synchronized (mLock) { if (mEnabled) { - return mSensorEventListener.getProposedRotationLocked(); + return mOrientationJudge.getProposedRotationLocked(); } return -1; } @@ -194,6 +217,8 @@ public abstract class WindowOrientationListener { * It is called each time the orientation determination transitions from being * uncertain to being certain again, even if it is the same orientation as before. * + * This should only be called on the Handler thread. + * * @param rotation The new orientation of the device, one of the Surface.ROTATION_* constants. * @see android.view.Surface */ @@ -205,15 +230,77 @@ public abstract class WindowOrientationListener { prefix += " "; pw.println(prefix + "mEnabled=" + mEnabled); pw.println(prefix + "mCurrentRotation=" + mCurrentRotation); + pw.println(prefix + "mSensorType=" + mSensorType); pw.println(prefix + "mSensor=" + mSensor); pw.println(prefix + "mRate=" + mRate); - if (mSensorEventListener != null) { - mSensorEventListener.dumpLocked(pw, prefix); + if (mOrientationJudge != null) { + mOrientationJudge.dumpLocked(pw, prefix); } } } + abstract class OrientationJudge implements SensorEventListener { + // Number of nanoseconds per millisecond. + protected static final long NANOS_PER_MS = 1000000; + + // Number of milliseconds per nano second. + protected static final float MILLIS_PER_NANO = 0.000001f; + + // The minimum amount of time that must have elapsed since the screen was last touched + // before the proposed rotation can change. + protected static final long PROPOSAL_MIN_TIME_SINCE_TOUCH_END_NANOS = + 500 * NANOS_PER_MS; + + /** + * Gets the proposed rotation. + * + * This method only returns a rotation if the orientation listener is certain + * of its proposal. If the rotation is indeterminate, returns -1. + * + * Should only be called when holding WindowOrientationListener lock. + * + * @return The proposed rotation, or -1 if unknown. + */ + public abstract int getProposedRotationLocked(); + + /** + * Notifies the orientation judge that the screen is being touched. + * + * Should only be called when holding WindowOrientationListener lock. + */ + public abstract void onTouchStartLocked(); + + /** + * Notifies the orientation judge that the screen is no longer being touched. + * + * Should only be called when holding WindowOrientationListener lock. + * + * @param whenElapsedNanos Given in the elapsed realtime nanos time base. + */ + public abstract void onTouchEndLocked(long whenElapsedNanos); + + /** + * Resets the state of the judge. + * + * Should only be called when holding WindowOrientationListener lock. + */ + public abstract void resetLocked(); + + /** + * Dumps internal state of the orientation judge. + * + * Should only be called when holding WindowOrientationListener lock. + */ + public abstract void dumpLocked(PrintWriter pw, String prefix); + + @Override + public abstract void onAccuracyChanged(Sensor sensor, int accuracy); + + @Override + public abstract void onSensorChanged(SensorEvent event); + } + /** * This class filters the raw accelerometer data and tries to detect actual changes in * orientation. This is a very ill-defined problem so there are a lot of tweakable parameters, @@ -252,13 +339,10 @@ public abstract class WindowOrientationListener { * See http://en.wikipedia.org/wiki/Low-pass_filter#Discrete-time_realization for * signal processing background. */ - final class SensorEventListenerImpl implements SensorEventListener { + final class AccelSensorJudge extends OrientationJudge { // We work with all angles in degrees in this class. private static final float RADIANS_TO_DEGREES = (float) (180 / Math.PI); - // Number of nanoseconds per millisecond. - private static final long NANOS_PER_MS = 1000000; - // Indices into SensorEvent.values for the accelerometer sensor. private static final int ACCELEROMETER_DATA_X = 0; private static final int ACCELEROMETER_DATA_Y = 1; @@ -286,11 +370,6 @@ public abstract class WindowOrientationListener { private static final long PROPOSAL_MIN_TIME_SINCE_ACCELERATION_ENDED_NANOS = 500 * NANOS_PER_MS; - // The minimum amount of time that must have elapsed since the screen was last touched - // before the proposed rotation can change. - private static final long PROPOSAL_MIN_TIME_SINCE_TOUCH_END_NANOS = - 500 * NANOS_PER_MS; - // If the tilt angle remains greater than the specified angle for a minimum of // the specified time, then the device is deemed to be lying flat // (just chillin' on a table). @@ -434,7 +513,7 @@ public abstract class WindowOrientationListener { private long[] mTiltHistoryTimestampNanos = new long[TILT_HISTORY_SIZE]; private int mTiltHistoryIndex; - public SensorEventListenerImpl(Context context) { + public AccelSensorJudge(Context context) { // Load tilt tolerance configuration. int[] tiltTolerance = context.getResources().getIntArray( com.android.internal.R.array.config_autoRotationTiltTolerance); @@ -455,11 +534,15 @@ public abstract class WindowOrientationListener { } } + @Override public int getProposedRotationLocked() { return mProposedRotation; } + @Override public void dumpLocked(PrintWriter pw, String prefix) { + pw.println(prefix + "AccelSensorJudge"); + prefix += " "; pw.println(prefix + "mProposedRotation=" + mProposedRotation); pw.println(prefix + "mPredictedRotation=" + mPredictedRotation); pw.println(prefix + "mLastFilteredX=" + mLastFilteredX); @@ -689,6 +772,33 @@ public abstract class WindowOrientationListener { } } + @Override + public void onTouchStartLocked() { + mTouched = true; + } + + @Override + public void onTouchEndLocked(long whenElapsedNanos) { + mTouched = false; + mTouchEndedTimestampNanos = whenElapsedNanos; + } + + @Override + public void resetLocked() { + mLastFilteredTimestampNanos = Long.MIN_VALUE; + mProposedRotation = -1; + mFlatTimestampNanos = Long.MIN_VALUE; + mFlat = false; + mSwingTimestampNanos = Long.MIN_VALUE; + mSwinging = false; + mAccelerationTimestampNanos = Long.MIN_VALUE; + mAccelerating = false; + mOverhead = false; + clearPredictedRotationLocked(); + clearTiltHistoryLocked(); + } + + /** * Returns true if the tilt angle is acceptable for a given predicted rotation. */ @@ -787,20 +897,6 @@ public abstract class WindowOrientationListener { return true; } - private void resetLocked() { - mLastFilteredTimestampNanos = Long.MIN_VALUE; - mProposedRotation = -1; - mFlatTimestampNanos = Long.MIN_VALUE; - mFlat = false; - mSwingTimestampNanos = Long.MIN_VALUE; - mSwinging = false; - mAccelerationTimestampNanos = Long.MIN_VALUE; - mAccelerating = false; - mOverhead = false; - clearPredictedRotationLocked(); - clearTiltHistoryLocked(); - } - private void clearPredictedRotationLocked() { mPredictedRotation = -1; mPredictedRotationTimestampNanos = Long.MIN_VALUE; @@ -869,14 +965,147 @@ public abstract class WindowOrientationListener { private float remainingMS(long now, long until) { return now >= until ? 0 : (until - now) * 0.000001f; } + } - private void onTouchStartLocked() { - mTouched = true; + final class OrientationSensorJudge extends OrientationJudge { + private boolean mTouching; + private long mTouchEndedTimestampNanos = Long.MIN_VALUE; + private int mProposedRotation = -1; + private int mDesiredRotation = -1; + private boolean mRotationEvaluationScheduled; + + @Override + public int getProposedRotationLocked() { + return mProposedRotation; } - private void onTouchEndLocked(long whenElapsedNanos) { - mTouched = false; + @Override + public void onTouchStartLocked() { + mTouching = true; + } + + @Override + public void onTouchEndLocked(long whenElapsedNanos) { + mTouching = false; mTouchEndedTimestampNanos = whenElapsedNanos; + if (mDesiredRotation != mProposedRotation) { + final long now = SystemClock.elapsedRealtimeNanos(); + scheduleRotationEvaluationIfNecessaryLocked(now); + } + } + + + @Override + public void onSensorChanged(SensorEvent event) { + int newRotation; + synchronized (mLock) { + mDesiredRotation = (int) event.values[0]; + newRotation = evaluateRotationChangeLocked(); + } + if (newRotation >=0) { + onProposedRotationChanged(newRotation); + } + } + + @Override + public void onAccuracyChanged(Sensor sensor, int accuracy) { } + + @Override + public void dumpLocked(PrintWriter pw, String prefix) { + pw.println(prefix + "OrientationSensorJudge"); + prefix += " "; + pw.println(prefix + "mDesiredRotation=" + mDesiredRotation); + pw.println(prefix + "mProposedRotation=" + mProposedRotation); + pw.println(prefix + "mTouching=" + mTouching); + pw.println(prefix + "mTouchEndedTimestampNanos=" + mTouchEndedTimestampNanos); } + + @Override + public void resetLocked() { + mProposedRotation = -1; + mDesiredRotation = -1; + mTouching = false; + mTouchEndedTimestampNanos = Long.MIN_VALUE; + unscheduleRotationEvaluationLocked(); + } + + public int evaluateRotationChangeLocked() { + unscheduleRotationEvaluationLocked(); + if (mDesiredRotation == mProposedRotation) { + return -1; + } + final long now = SystemClock.elapsedRealtimeNanos(); + if (isDesiredRotationAcceptableLocked(now)) { + mProposedRotation = mDesiredRotation; + return mProposedRotation; + } else { + scheduleRotationEvaluationIfNecessaryLocked(now); + } + return -1; + } + + private boolean isDesiredRotationAcceptableLocked(long now) { + if (mTouching) { + return false; + } + if (now < mTouchEndedTimestampNanos + PROPOSAL_MIN_TIME_SINCE_TOUCH_END_NANOS) { + return false; + } + return true; + } + + private void scheduleRotationEvaluationIfNecessaryLocked(long now) { + if (mRotationEvaluationScheduled || mDesiredRotation == mProposedRotation) { + if (LOG) { + Slog.d(TAG, "scheduleRotationEvaluationLocked: " + + "ignoring, an evaluation is already scheduled or is unnecessary."); + } + return; + } + if (mTouching) { + if (LOG) { + Slog.d(TAG, "scheduleRotationEvaluationLocked: " + + "ignoring, user is still touching the screen."); + } + return; + } + long timeOfNextPossibleRotationNanos = + mTouchEndedTimestampNanos + PROPOSAL_MIN_TIME_SINCE_TOUCH_END_NANOS; + if (now >= timeOfNextPossibleRotationNanos) { + if (LOG) { + Slog.d(TAG, "scheduleRotationEvaluationLocked: " + + "ignoring, already past the next possible time of rotation."); + } + return; + } + // Use a delay instead of an absolute time since handlers are in uptime millis and we + // use elapsed realtime. + final long delayMs = + (long) Math.ceil((timeOfNextPossibleRotationNanos - now) * MILLIS_PER_NANO); + mHandler.postDelayed(mRotationEvaluator, delayMs); + mRotationEvaluationScheduled = true; + } + + private void unscheduleRotationEvaluationLocked() { + if (!mRotationEvaluationScheduled) { + return; + } + mHandler.removeCallbacks(mRotationEvaluator); + mRotationEvaluationScheduled = false; + } + + private Runnable mRotationEvaluator = new Runnable() { + @Override + public void run() { + int newRotation; + synchronized (mLock) { + mRotationEvaluationScheduled = false; + newRotation = evaluateRotationChangeLocked(); + } + if (newRotation >= 0) { + onProposedRotationChanged(newRotation); + } + } + }; } } diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java index 5d5230756e42..7ae3c79e0fe5 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java @@ -23,6 +23,8 @@ import com.android.internal.policy.IKeyguardDrawnCallback; import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardService; +import java.io.PrintWriter; + /** * A local class that keeps a cache of keyguard state that can be restored in the event * keyguard crashes. It currently also allows runtime-selectable @@ -32,6 +34,14 @@ public class KeyguardServiceDelegate { private static final String TAG = "KeyguardServiceDelegate"; private static final boolean DEBUG = true; + private static final int SCREEN_STATE_OFF = 0; + private static final int SCREEN_STATE_TURNING_ON = 1; + private static final int SCREEN_STATE_ON = 2; + + private static final int INTERACTIVE_STATE_SLEEP = 0; + private static final int INTERACTIVE_STATE_AWAKE = 1; + private static final int INTERACTIVE_STATE_GOING_TO_SLEEP = 2; + protected KeyguardServiceWrapper mKeyguardService; private final Context mContext; private final View mScrim; // shown if keyguard crashes @@ -61,6 +71,8 @@ public class KeyguardServiceDelegate { public int offReason; public int currentUser; public boolean bootCompleted; + public int screenState; + public int interactiveState; }; public interface DrawnListener { @@ -144,10 +156,17 @@ public class KeyguardServiceDelegate { // If the system is ready, it means keyguard crashed and restarted. mKeyguardService.onSystemReady(); // This is used to hide the scrim once keyguard displays. - mKeyguardService.onStartedWakingUp(); - mKeyguardService.onScreenTurningOn( - new KeyguardShowDelegate(mDrawnListenerWhenConnect)); - mKeyguardService.onScreenTurnedOn(); + if (mKeyguardState.interactiveState == INTERACTIVE_STATE_AWAKE) { + mKeyguardService.onStartedWakingUp(); + } + if (mKeyguardState.screenState == SCREEN_STATE_ON + || mKeyguardState.screenState == SCREEN_STATE_TURNING_ON) { + mKeyguardService.onScreenTurningOn( + new KeyguardShowDelegate(mDrawnListenerWhenConnect)); + } + if (mKeyguardState.screenState == SCREEN_STATE_ON) { + mKeyguardService.onScreenTurnedOn(); + } mDrawnListenerWhenConnect = null; } if (mKeyguardState.bootCompleted) { @@ -231,6 +250,7 @@ public class KeyguardServiceDelegate { if (DEBUG) Log.v(TAG, "onStartedWakingUp()"); mKeyguardService.onStartedWakingUp(); } + mKeyguardState.interactiveState = INTERACTIVE_STATE_AWAKE; } public void onScreenTurnedOff() { @@ -238,6 +258,7 @@ public class KeyguardServiceDelegate { if (DEBUG) Log.v(TAG, "onScreenTurnedOff()"); mKeyguardService.onScreenTurnedOff(); } + mKeyguardState.screenState = SCREEN_STATE_OFF; } public void onScreenTurningOn(final DrawnListener drawnListener) { @@ -252,6 +273,7 @@ public class KeyguardServiceDelegate { mDrawnListenerWhenConnect = drawnListener; showScrim(); } + mKeyguardState.screenState = SCREEN_STATE_TURNING_ON; } public void onScreenTurnedOn() { @@ -259,6 +281,7 @@ public class KeyguardServiceDelegate { if (DEBUG) Log.v(TAG, "onScreenTurnedOn()"); mKeyguardService.onScreenTurnedOn(); } + mKeyguardState.screenState = SCREEN_STATE_ON; } public void onStartedGoingToSleep(int why) { @@ -266,12 +289,14 @@ public class KeyguardServiceDelegate { mKeyguardService.onStartedGoingToSleep(why); } mKeyguardState.offReason = why; + mKeyguardState.interactiveState = INTERACTIVE_STATE_GOING_TO_SLEEP; } public void onFinishedGoingToSleep(int why) { if (mKeyguardService != null) { mKeyguardService.onFinishedGoingToSleep(why); } + mKeyguardState.interactiveState = INTERACTIVE_STATE_SLEEP; } public void setKeyguardEnabled(boolean enabled) { @@ -370,4 +395,26 @@ public class KeyguardServiceDelegate { mKeyguardService.onActivityDrawn(); } } + + public void dump(String prefix, PrintWriter pw) { + pw.println(prefix + TAG); + prefix += " "; + pw.println(prefix + "showing=" + mKeyguardState.showing); + pw.println(prefix + "showingAndNotOccluded=" + mKeyguardState.showingAndNotOccluded); + pw.println(prefix + "inputRestricted=" + mKeyguardState.inputRestricted); + pw.println(prefix + "occluded=" + mKeyguardState.occluded); + pw.println(prefix + "secure=" + mKeyguardState.secure); + pw.println(prefix + "dreaming=" + mKeyguardState.dreaming); + pw.println(prefix + "systemIsReady=" + mKeyguardState.systemIsReady); + pw.println(prefix + "deviceHasKeyguard=" + mKeyguardState.deviceHasKeyguard); + pw.println(prefix + "enabled=" + mKeyguardState.enabled); + pw.println(prefix + "offReason=" + mKeyguardState.offReason); + pw.println(prefix + "currentUser=" + mKeyguardState.currentUser); + pw.println(prefix + "bootCompleted=" + mKeyguardState.bootCompleted); + pw.println(prefix + "screenState=" + mKeyguardState.screenState); + pw.println(prefix + "interactiveState=" + mKeyguardState.interactiveState); + if (mKeyguardService != null) { + mKeyguardService.dump(prefix, pw); + } + } } diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java index cd88b664e2f8..429b18866a61 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java @@ -27,6 +27,8 @@ import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardService; import com.android.internal.policy.IKeyguardStateCallback; +import java.io.PrintWriter; + /** * A wrapper class for KeyguardService. It implements IKeyguardService to ensure the interface * remains consistent. @@ -239,4 +241,8 @@ public class KeyguardServiceWrapper implements IKeyguardService { public boolean isInputRestricted() { return mKeyguardStateMonitor.isInputRestricted(); } + + public void dump(String prefix, PrintWriter pw) { + mKeyguardStateMonitor.dump(prefix, pw); + } }
\ No newline at end of file diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java index f1f9c5087aa7..30cff039f11a 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java @@ -25,6 +25,8 @@ import com.android.internal.policy.IKeyguardService; import com.android.internal.policy.IKeyguardStateCallback; import com.android.internal.widget.LockPatternUtils; +import java.io.PrintWriter; + /** * Maintains a cached copy of Keyguard's state. * @hide @@ -90,4 +92,13 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { public void onInputRestrictedStateChanged(boolean inputRestricted) { mInputRestricted = inputRestricted; } + + public void dump(String prefix, PrintWriter pw) { + pw.println(prefix + TAG); + prefix += " "; + pw.println(prefix + "mIsShowing=" + mIsShowing); + pw.println(prefix + "mSimSecure=" + mSimSecure); + pw.println(prefix + "mInputRestricted=" + mInputRestricted); + pw.println(prefix + "mCurrentUserId=" + mCurrentUserId); + } }
\ No newline at end of file diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 7ebb7f817377..a0a31c0d8a0c 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -76,6 +76,7 @@ import java.util.Arrays; import libcore.util.Objects; +import static android.os.PowerManagerInternal.POWER_HINT_INTERACTION; import static android.os.PowerManagerInternal.WAKEFULNESS_ASLEEP; import static android.os.PowerManagerInternal.WAKEFULNESS_AWAKE; import static android.os.PowerManagerInternal.WAKEFULNESS_DREAMING; @@ -150,7 +151,6 @@ public final class PowerManagerService extends SystemService private static final int SCREEN_BRIGHTNESS_BOOST_TIMEOUT = 5 * 1000; // Power hints defined in hardware/libhardware/include/hardware/power.h. - private static final int POWER_HINT_INTERACTION = 2; private static final int POWER_HINT_LOW_POWER = 5; // Power features defined in hardware/libhardware/include/hardware/power.h. @@ -393,6 +393,10 @@ public final class PowerManagerService extends SystemService // Use -1 to disable. private int mScreenBrightnessOverrideFromWindowManager = -1; + // The window manager has determined the user to be inactive via other means. + // Set this to false to disable. + private boolean mUserInactiveOverrideFromWindowManager; + // The user activity timeout override from the window manager // to allow the current foreground activity to override the user activity timeout. // Use -1 to disable. @@ -1028,6 +1032,10 @@ public final class PowerManagerService extends SystemService mNotifier.onUserActivity(event, uid); + if (mUserInactiveOverrideFromWindowManager) { + mUserInactiveOverrideFromWindowManager = false; + } + if (mWakefulness == WAKEFULNESS_ASLEEP || mWakefulness == WAKEFULNESS_DOZING || (flags & PowerManager.USER_ACTIVITY_FLAG_INDIRECT) != 0) { @@ -1525,6 +1533,7 @@ public final class PowerManagerService extends SystemService final int sleepTimeout = getSleepTimeoutLocked(); final int screenOffTimeout = getScreenOffTimeoutLocked(sleepTimeout); final int screenDimDuration = getScreenDimDurationLocked(screenOffTimeout); + final boolean userInactiveOverride = mUserInactiveOverrideFromWindowManager; mUserActivitySummary = 0; if (mLastUserActivityTime >= mLastWakeTime) { @@ -1550,6 +1559,7 @@ public final class PowerManagerService extends SystemService } } } + if (mUserActivitySummary == 0) { if (sleepTimeout >= 0) { final long anyUserActivity = Math.max(mLastUserActivityTime, @@ -1565,6 +1575,19 @@ public final class PowerManagerService extends SystemService nextTimeout = -1; } } + + if (mUserActivitySummary != USER_ACTIVITY_SCREEN_DREAM && userInactiveOverride) { + if ((mUserActivitySummary & + (USER_ACTIVITY_SCREEN_BRIGHT | USER_ACTIVITY_SCREEN_DIM)) != 0) { + // Device is being kept awake by recent user activity + long savedWakeTimeMs = now - nextTimeout; + EventLog.writeEvent( + EventLogTags.POWER_SOFT_SLEEP_REQUESTED, savedWakeTimeMs); + } + mUserActivitySummary = USER_ACTIVITY_SCREEN_DREAM; + nextTimeout = -1; + } + if (mUserActivitySummary != 0 && nextTimeout >= 0) { Message msg = mHandler.obtainMessage(MSG_USER_ACTIVITY_TIMEOUT); msg.setAsynchronous(true); @@ -2494,6 +2517,14 @@ public final class PowerManagerService extends SystemService } } + private void setUserInactiveOverrideFromWindowManagerInternal() { + synchronized (mLock) { + mUserInactiveOverrideFromWindowManager = true; + mDirty |= DIRTY_USER_ACTIVITY; + updatePowerStateLocked(); + } + } + private void setUserActivityTimeoutOverrideFromWindowManagerInternal(long timeoutMillis) { synchronized (mLock) { if (mUserActivityTimeoutOverrideFromWindowManager != timeoutMillis) { @@ -2688,6 +2719,8 @@ public final class PowerManagerService extends SystemService + mScreenBrightnessOverrideFromWindowManager); pw.println(" mUserActivityTimeoutOverrideFromWindowManager=" + mUserActivityTimeoutOverrideFromWindowManager); + pw.println(" mUserInactiveOverrideFromWindowManager=" + + mUserInactiveOverrideFromWindowManager); pw.println(" mTemporaryScreenBrightnessSettingOverride=" + mTemporaryScreenBrightnessSettingOverride); pw.println(" mTemporaryScreenAutoBrightnessAdjustmentSettingOverride=" @@ -3492,6 +3525,11 @@ public final class PowerManagerService extends SystemService } @Override + public void setUserInactiveOverrideFromWindowManager() { + setUserInactiveOverrideFromWindowManagerInternal(); + } + + @Override public void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis) { setUserActivityTimeoutOverrideFromWindowManagerInternal(timeoutMillis); } @@ -3539,5 +3577,10 @@ public final class PowerManagerService extends SystemService public void uidGone(int uid) { uidGoneInternal(uid); } + + @Override + public void powerHint(int hintId, int data) { + powerHintInternal(hintId, data); + } } } diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java index 130815ed8337..25d646d2bb3b 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java @@ -28,4 +28,5 @@ public interface StatusBarManagerInternal { void showScreenPinningRequest(); void showAssistDisclosure(); void startAssist(Bundle args); + void onCameraLaunchGestureDetected(int source); } diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java index 2a817eac3a09..e9ace29395a2 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java @@ -176,6 +176,16 @@ public class StatusBarManagerService extends IStatusBarService.Stub { } } } + + @Override + public void onCameraLaunchGestureDetected(int source) { + if (mBar != null) { + try { + mBar.onCameraLaunchGestureDetected(source); + } catch (RemoteException e) { + } + } + } }; // ================================================================================ diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java index 15da8290ae40..6c70fe9a5501 100644 --- a/services/core/java/com/android/server/trust/TrustManagerService.java +++ b/services/core/java/com/android/server/trust/TrustManagerService.java @@ -19,6 +19,7 @@ package com.android.server.trust; import com.android.internal.annotations.GuardedBy; import com.android.internal.content.PackageMonitor; import com.android.internal.widget.LockPatternUtils; +import com.android.internal.widget.LockPatternUtils.StrongAuthTracker; import com.android.server.SystemService; import org.xmlpull.v1.XmlPullParser; @@ -59,6 +60,7 @@ import android.util.AttributeSet; import android.util.Log; import android.util.Slog; import android.util.SparseBooleanArray; +import android.util.SparseIntArray; import android.util.Xml; import android.view.IWindowManager; import android.view.WindowManagerGlobal; @@ -96,16 +98,15 @@ public class TrustManagerService extends SystemService { private static final int MSG_UNREGISTER_LISTENER = 2; private static final int MSG_DISPATCH_UNLOCK_ATTEMPT = 3; private static final int MSG_ENABLED_AGENTS_CHANGED = 4; - private static final int MSG_REQUIRE_CREDENTIAL_ENTRY = 5; private static final int MSG_KEYGUARD_SHOWING_CHANGED = 6; private static final int MSG_START_USER = 7; private static final int MSG_CLEANUP_USER = 8; private static final int MSG_SWITCH_USER = 9; - private final ArraySet<AgentInfo> mActiveAgents = new ArraySet<AgentInfo>(); - private final ArrayList<ITrustListener> mTrustListeners = new ArrayList<ITrustListener>(); + private final ArraySet<AgentInfo> mActiveAgents = new ArraySet<>(); + private final ArrayList<ITrustListener> mTrustListeners = new ArrayList<>(); private final Receiver mReceiver = new Receiver(); - private final SparseBooleanArray mUserHasAuthenticated = new SparseBooleanArray(); + /* package */ final TrustArchive mArchive = new TrustArchive(); private final Context mContext; private final LockPatternUtils mLockPatternUtils; @@ -118,9 +119,6 @@ public class TrustManagerService extends SystemService { @GuardedBy("mDeviceLockedForUser") private final SparseBooleanArray mDeviceLockedForUser = new SparseBooleanArray(); - @GuardedBy("mUserHasAuthenticatedSinceBoot") - private final SparseBooleanArray mUserHasAuthenticatedSinceBoot = new SparseBooleanArray(); - private boolean mTrustAgentsCanRun = false; private int mCurrentUser = UserHandle.USER_OWNER; @@ -146,6 +144,7 @@ public class TrustManagerService extends SystemService { if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) { mPackageMonitor.register(mContext, mHandler.getLooper(), UserHandle.ALL, true); mReceiver.register(mContext); + mLockPatternUtils.registerStrongAuthTracker(mStrongAuthTracker); } else if (phase == SystemService.PHASE_THIRD_PARTY_APPS_CAN_START) { mTrustAgentsCanRun = true; refreshAgentList(UserHandle.USER_ALL); @@ -230,7 +229,7 @@ public class TrustManagerService extends SystemService { if (!userInfo.supportsSwitchTo()) continue; if (!mActivityManager.isUserRunning(userInfo.id)) continue; if (!lockPatternUtils.isSecure(userInfo.id)) continue; - if (!getUserHasAuthenticated(userInfo.id)) continue; + if (!mStrongAuthTracker.isTrustAllowedForUser(userInfo.id)) continue; DevicePolicyManager dpm = lockPatternUtils.getDevicePolicyManager(); int disabledFeatures = dpm.getKeyguardDisabledFeatures(null, userInfo.id); final boolean disableTrustAgents = @@ -509,7 +508,7 @@ public class TrustManagerService extends SystemService { // Agent dispatch and aggregation private boolean aggregateIsTrusted(int userId) { - if (!getUserHasAuthenticated(userId)) { + if (!mStrongAuthTracker.isTrustAllowedForUser(userId)) { return false; } for (int i = 0; i < mActiveAgents.size(); i++) { @@ -524,7 +523,7 @@ public class TrustManagerService extends SystemService { } private boolean aggregateIsTrustManaged(int userId) { - if (!getUserHasAuthenticated(userId)) { + if (!mStrongAuthTracker.isTrustAllowedForUser(userId)) { return false; } for (int i = 0; i < mActiveAgents.size(); i++) { @@ -545,54 +544,6 @@ public class TrustManagerService extends SystemService { info.agent.onUnlockAttempt(successful); } } - - if (successful) { - updateUserHasAuthenticated(userId); - } - } - - private void updateUserHasAuthenticated(int userId) { - boolean changed = setUserHasAuthenticated(userId); - if (changed) { - refreshAgentList(userId); - } - } - - private boolean getUserHasAuthenticated(int userId) { - return mUserHasAuthenticated.get(userId); - } - - /** - * @return whether the value has changed - */ - private boolean setUserHasAuthenticated(int userId) { - if (!mUserHasAuthenticated.get(userId)) { - mUserHasAuthenticated.put(userId, true); - synchronized (mUserHasAuthenticatedSinceBoot) { - mUserHasAuthenticatedSinceBoot.put(userId, true); - } - return true; - } - return false; - } - - private void clearUserHasAuthenticated(int userId) { - if (userId == UserHandle.USER_ALL) { - mUserHasAuthenticated.clear(); - } else { - mUserHasAuthenticated.put(userId, false); - } - } - - private boolean getUserHasAuthenticatedSinceBoot(int userId) { - synchronized (mUserHasAuthenticatedSinceBoot) { - return mUserHasAuthenticatedSinceBoot.get(userId); - } - } - - private void requireCredentialEntry(int userId) { - clearUserHasAuthenticated(userId); - refreshAgentList(userId); } // Listeners @@ -681,17 +632,6 @@ public class TrustManagerService extends SystemService { } @Override - public void reportRequireCredentialEntry(int userId) throws RemoteException { - enforceReportPermission(); - if (userId == UserHandle.USER_ALL || userId >= UserHandle.USER_OWNER) { - mHandler.obtainMessage(MSG_REQUIRE_CREDENTIAL_ENTRY, userId, 0).sendToTarget(); - } else { - throw new IllegalArgumentException( - "userId must be an explicit user id or USER_ALL"); - } - } - - @Override public void reportKeyguardShowingChanged() throws RemoteException { enforceReportPermission(); // coalesce refresh messages. @@ -734,18 +674,6 @@ public class TrustManagerService extends SystemService { } } - @Override - public boolean hasUserAuthenticatedSinceBoot(int userId) throws RemoteException { - mContext.enforceCallingOrSelfPermission( - Manifest.permission.ACCESS_KEYGUARD_SECURE_STORAGE, null); - long token = Binder.clearCallingIdentity(); - try { - return getUserHasAuthenticatedSinceBoot(userId); - } finally { - Binder.restoreCallingIdentity(token); - } - } - private void enforceReportPermission() { mContext.enforceCallingOrSelfPermission( Manifest.permission.ACCESS_KEYGUARD_SECURE_STORAGE, "reporting trust events"); @@ -794,9 +722,8 @@ public class TrustManagerService extends SystemService { fout.print(": trusted=" + dumpBool(aggregateIsTrusted(user.id))); fout.print(", trustManaged=" + dumpBool(aggregateIsTrustManaged(user.id))); fout.print(", deviceLocked=" + dumpBool(isDeviceLockedInner(user.id))); - fout.print(", hasAuthenticated=" + dumpBool(getUserHasAuthenticated(user.id))); - fout.print(", hasAuthenticatedSinceBoot=" - + dumpBool(getUserHasAuthenticatedSinceBoot(user.id))); + fout.print(", strongAuthRequired=" + dumpHex( + mStrongAuthTracker.getStrongAuthForUser(user.id))); fout.println(); fout.println(" Enabled agents:"); boolean duplicateSimpleNames = false; @@ -831,6 +758,10 @@ public class TrustManagerService extends SystemService { private String dumpBool(boolean b) { return b ? "1" : "0"; } + + private String dumpHex(int i) { + return "0x" + Integer.toHexString(i); + } }; private int resolveProfileParent(int userId) { @@ -864,9 +795,6 @@ public class TrustManagerService extends SystemService { // This is also called when the security mode of a user changes. refreshDeviceLockedForUser(UserHandle.USER_ALL); break; - case MSG_REQUIRE_CREDENTIAL_ENTRY: - requireCredentialEntry(msg.arg1); - break; case MSG_KEYGUARD_SHOWING_CHANGED: refreshDeviceLockedForUser(mCurrentUser); break; @@ -900,6 +828,13 @@ public class TrustManagerService extends SystemService { } }; + private final StrongAuthTracker mStrongAuthTracker = new StrongAuthTracker() { + @Override + public void onStrongAuthRequiredChanged(int userId) { + refreshAgentList(userId); + } + }; + private class Receiver extends BroadcastReceiver { @Override @@ -908,8 +843,6 @@ public class TrustManagerService extends SystemService { if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(action)) { refreshAgentList(getSendingUserId()); updateDevicePolicyFeatures(); - } else if (Intent.ACTION_USER_PRESENT.equals(action)) { - updateUserHasAuthenticated(getSendingUserId()); } else if (Intent.ACTION_USER_ADDED.equals(action)) { int userId = getUserId(intent); if (userId > 0) { @@ -918,7 +851,6 @@ public class TrustManagerService extends SystemService { } else if (Intent.ACTION_USER_REMOVED.equals(action)) { int userId = getUserId(intent); if (userId > 0) { - mUserHasAuthenticated.delete(userId); synchronized (mUserIsTrusted) { mUserIsTrusted.delete(userId); } diff --git a/services/core/java/com/android/server/wm/DisplaySettings.java b/services/core/java/com/android/server/wm/DisplaySettings.java index 01f878c1562e..80526f28ea20 100644 --- a/services/core/java/com/android/server/wm/DisplaySettings.java +++ b/services/core/java/com/android/server/wm/DisplaySettings.java @@ -79,17 +79,20 @@ public class DisplaySettings { } } - public void setOverscanLocked(String name, int left, int top, int right, int bottom) { + public void setOverscanLocked(String uniqueId, String name, int left, int top, int right, + int bottom) { if (left == 0 && top == 0 && right == 0 && bottom == 0) { // Right now all we are storing is overscan; if there is no overscan, // we have no need for the entry. + mEntries.remove(uniqueId); + // Legacy name might have been in used, so we need to clear it. mEntries.remove(name); return; } - Entry entry = mEntries.get(name); + Entry entry = mEntries.get(uniqueId); if (entry == null) { - entry = new Entry(name); - mEntries.put(name, entry); + entry = new Entry(uniqueId); + mEntries.put(uniqueId, entry); } entry.overscanLeft = left; entry.overscanTop = top; diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index 794b49c8cb19..ba608bda1e81 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -375,7 +375,10 @@ public class TaskStack { for (int appNdx = appWindowTokens.size() - 1; appNdx >= 0; --appNdx) { final WindowList appWindows = appWindowTokens.get(appNdx).allAppWindows; for (int winNdx = appWindows.size() - 1; winNdx >= 0; --winNdx) { - mService.removeWindowInnerLocked(appWindows.get(winNdx)); + // We are in the middle of changing the state of displays/stacks/tasks. We need + // to finish that, before we let layout interfere with it. + mService.removeWindowInnerLocked(appWindows.get(winNdx), + false /* performLayout */); doAnotherLayoutPass = true; } } @@ -389,7 +392,9 @@ public class TaskStack { void resetAnimationBackgroundAnimator() { mAnimationBackgroundAnimator = null; - mAnimationBackgroundSurface.hide(); + if (mAnimationBackgroundSurface != null) { + mAnimationBackgroundSurface.hide(); + } } private long getDimBehindFadeDuration(long duration) { @@ -454,11 +459,14 @@ public class TaskStack { } boolean isDimming() { + if (mDimLayer == null) { + return false; + } return mDimLayer.isDimming(); } boolean isDimming(WindowStateAnimator winAnimator) { - return mDimWinAnimator == winAnimator && mDimLayer.isDimming(); + return mDimWinAnimator == winAnimator && isDimming(); } void startDimmingIfNeeded(WindowStateAnimator newWinAnimator) { diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 806f24172514..7cc65d835016 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -997,7 +997,6 @@ public class WindowManagerService extends IWindowManager.Stub SurfaceControl.closeTransaction(); } - updateCircularDisplayMaskIfNeeded(); showEmulatorDisplayOverlayIfNeeded(); } @@ -2794,6 +2793,10 @@ public class WindowManagerService extends IWindowManager.Stub } void removeWindowInnerLocked(WindowState win) { + removeWindowInnerLocked(win, true); + } + + void removeWindowInnerLocked(WindowState win, boolean performLayout) { if (win.mRemoved) { // Nothing to do. return; @@ -2891,7 +2894,9 @@ public class WindowManagerService extends IWindowManager.Stub if (displayContent != null) { displayContent.layoutNeeded = true; } - performLayoutAndPlaceSurfacesLocked(); + if (performLayout) { + performLayoutAndPlaceSurfacesLocked(); + } if (win.mAppToken != null) { win.mAppToken.updateReportedVisibilityLocked(); } @@ -4436,13 +4441,8 @@ public class WindowManagerService extends IWindowManager.Stub + " ShowWallpaper=" + ent.array.getBoolean( com.android.internal.R.styleable.Window_windowShowWallpaper, false)); - final boolean windowIsTranslucentDefined = ent.array.hasValue( - com.android.internal.R.styleable.Window_windowIsTranslucent); - final boolean windowIsTranslucent = ent.array.getBoolean( - com.android.internal.R.styleable.Window_windowIsTranslucent, false); - final boolean windowSwipeToDismiss = ent.array.getBoolean( - com.android.internal.R.styleable.Window_windowSwipeToDismiss, false); - if (windowIsTranslucent || (!windowIsTranslucentDefined && windowSwipeToDismiss)) { + if (ent.array.getBoolean( + com.android.internal.R.styleable.Window_windowIsTranslucent, false)) { return; } if (ent.array.getBoolean( @@ -5194,7 +5194,9 @@ public class WindowManagerService extends IWindowManager.Stub } public void removeStack(int stackId) { - mStackIdToStack.remove(stackId); + synchronized (mWindowMap) { + mStackIdToStack.remove(stackId); + } } public void removeTask(int taskId) { @@ -5268,10 +5270,12 @@ public class WindowManagerService extends IWindowManager.Stub } public void getStackBounds(int stackId, Rect bounds) { - final TaskStack stack = mStackIdToStack.get(stackId); - if (stack != null) { - stack.getBounds(bounds); - return; + synchronized (mWindowMap) { + final TaskStack stack = mStackIdToStack.get(stackId); + if (stack != null) { + stack.getBounds(bounds); + return; + } } bounds.setEmpty(); } @@ -5939,7 +5943,7 @@ public class WindowManagerService extends IWindowManager.Stub } } - public void updateCircularDisplayMaskIfNeeded() { + private void updateCircularDisplayMaskIfNeeded() { // we're fullscreen and not hosted in an ActivityView if (mContext.getResources().getConfiguration().isScreenRound() && mContext.getResources().getBoolean( @@ -7657,6 +7661,8 @@ public class WindowManagerService extends IWindowManager.Stub mActivityManager.updateConfiguration(null); } catch (RemoteException e) { } + + updateCircularDisplayMaskIfNeeded(); } private void displayReady(int displayId) { @@ -8702,7 +8708,8 @@ public class WindowManagerService extends IWindowManager.Stub displayInfo.overscanBottom = bottom; } - mDisplaySettings.setOverscanLocked(displayInfo.uniqueId, left, top, right, bottom); + mDisplaySettings.setOverscanLocked(displayInfo.uniqueId, displayInfo.name, left, top, + right, bottom); mDisplaySettings.writeSettingsLocked(); reconfigureDisplayLocked(displayContent); @@ -10411,8 +10418,8 @@ public class WindowManagerService extends IWindowManager.Stub ": removed=" + win.mRemoved + " visible=" + win.isVisibleLw() + " mHasSurface=" + win.mHasSurface + " drawState=" + win.mWinAnimator.mDrawState); - if (win.mRemoved || !win.mHasSurface) { - // Window has been removed; no draw will now happen, so stop waiting. + if (win.mRemoved || !win.mHasSurface || !win.mPolicyVisibility) { + // Window has been removed or hidden; no draw will now happen, so stop waiting. if (DEBUG_SCREEN_ON) Slog.w(TAG, "Aborted waiting for drawn: " + win); mWaitingForDrawn.remove(win); } else if (win.hasDrawnLw()) { @@ -11955,12 +11962,18 @@ public class WindowManagerService extends IWindowManager.Stub final WindowList windows = getDefaultWindowListLocked(); for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) { final WindowState win = windows.get(winNdx); + final boolean isForceHiding = mPolicy.isForceHiding(win.mAttrs); if (win.isVisibleLw() - && (win.mAppToken != null || mPolicy.isForceHiding(win.mAttrs))) { + && (win.mAppToken != null || isForceHiding)) { win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING; // Force add to mResizingWindows. win.mLastContentInsets.set(-1, -1, -1, -1); mWaitingForDrawn.add(win); + + // No need to wait for the windows below Keyguard. + if (isForceHiding) { + break; + } } } requestTraversalLocked(); diff --git a/services/core/jni/Android.mk b/services/core/jni/Android.mk index 9556b08763de..98d8d086e511 100644 --- a/services/core/jni/Android.mk +++ b/services/core/jni/Android.mk @@ -4,9 +4,16 @@ LOCAL_REL_DIR := core/jni LOCAL_CFLAGS += -Wall -Werror -Wno-unused-parameter +ifneq ($(ENABLE_CPUSETS),) +ifneq ($(ENABLE_SCHED_BOOST),) +LOCAL_CFLAGS += -DUSE_SCHED_BOOST +endif +endif + LOCAL_SRC_FILES += \ $(LOCAL_REL_DIR)/com_android_server_AlarmManagerService.cpp \ $(LOCAL_REL_DIR)/com_android_server_am_BatteryStatsService.cpp \ + $(LOCAL_REL_DIR)/com_android_server_am_ActivityManagerService.cpp \ $(LOCAL_REL_DIR)/com_android_server_AssetAtlasService.cpp \ $(LOCAL_REL_DIR)/com_android_server_connectivity_Vpn.cpp \ $(LOCAL_REL_DIR)/com_android_server_ConsumerIrService.cpp \ diff --git a/services/core/jni/com_android_server_am_ActivityManagerService.cpp b/services/core/jni/com_android_server_am_ActivityManagerService.cpp new file mode 100644 index 000000000000..52217b955852 --- /dev/null +++ b/services/core/jni/com_android_server_am_ActivityManagerService.cpp @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define LOG_TAG "ActivityManagerService" +//#define LOG_NDEBUG 0 + +#include <android_runtime/AndroidRuntime.h> +#include <jni.h> + +#include <ScopedLocalRef.h> +#include <ScopedPrimitiveArray.h> + +#include <cutils/log.h> +#include <utils/misc.h> +#include <utils/Log.h> + +#include <stdio.h> +#include <errno.h> +#include <fcntl.h> +#include <semaphore.h> +#include <stddef.h> +#include <string.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <unistd.h> + +namespace android +{ + + // migrate from foreground to foreground_boost + static jint migrateToBoost(JNIEnv *env, jobject _this) + { +#ifdef USE_SCHED_BOOST + // File descriptors open to /dev/cpuset/../tasks, setup by initialize, or -1 on error + FILE* fg_cpuset_file = NULL; + int boost_cpuset_fd = 0; + if (!access("/dev/cpuset/tasks", F_OK)) { + fg_cpuset_file = fopen("/dev/cpuset/foreground/tasks", "r+"); + if (ferror(fg_cpuset_file)) { + return 0; + } + boost_cpuset_fd = open("/dev/cpuset/foreground/boost/tasks", O_WRONLY); + if (boost_cpuset_fd < 0) { + fclose(fg_cpuset_file); + return 0; + } + + } + if (!fg_cpuset_file || !boost_cpuset_fd) { + fclose(fg_cpuset_file); + close(boost_cpuset_fd); + return 0; + } + char buf[17]; + while (fgets(buf, 16, fg_cpuset_file)) { + int i = 0; + for (; i < 16; i++) { + if (buf[i] == '\n') { + buf[i] = 0; + break; + } + } + if (write(boost_cpuset_fd, buf, i) < 0) { + // ignore error + } + if (feof(fg_cpuset_file)) + break; + } + fclose(fg_cpuset_file); + close(boost_cpuset_fd); +#endif + return 0; + } + + // migrate from foreground_boost to foreground + static jint migrateFromBoost(JNIEnv *env, jobject _this) + { +#ifdef USE_SCHED_BOOST + // File descriptors open to /dev/cpuset/../tasks, setup by initialize, or -1 on error + int fg_cpuset_fd = 0; + FILE* boost_cpuset_file = NULL; + if (!access("/dev/cpuset/tasks", F_OK)) { + boost_cpuset_file = fopen("/dev/cpuset/foreground/boost/tasks", "r+"); + if (ferror(boost_cpuset_file)) { + return 0; + } + fg_cpuset_fd = open("/dev/cpuset/foreground/tasks", O_WRONLY); + if (fg_cpuset_fd < 0) { + fclose(boost_cpuset_file); + return 0; + } + + } + if (!boost_cpuset_file || !fg_cpuset_fd) { + fclose(boost_cpuset_file); + close(fg_cpuset_fd); + return 0; + } + char buf[17]; + char *curBuf = buf; + while (fgets(buf, 16, boost_cpuset_file)) { + //ALOGE("Appending FD %s to fg", buf); + int i = 0; + for (; i < 16; i++) { + if (buf[i] == '\n') { + buf[i] = 0; + break; + } + } + if (write(fg_cpuset_fd, buf, i) < 0) { + //ALOGE("Appending FD %s to fg ERROR", buf); + // handle error? + } + if (feof(boost_cpuset_file)) + break; + } + + close(fg_cpuset_fd); + fclose(boost_cpuset_file); + +#endif + return 0; + + } + + + static JNINativeMethod method_table[] = { + { "nativeMigrateToBoost", "()I", (void*)migrateToBoost }, + { "nativeMigrateFromBoost", "()I", (void*)migrateFromBoost }, + }; + + int register_android_server_ActivityManagerService(JNIEnv *env) + { + return jniRegisterNativeMethods(env, "com/android/server/am/ActivityManagerService", + method_table, NELEM(method_table)); + } + +} diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp index 67872da3a3dc..1f3fde63e335 100644 --- a/services/core/jni/onload.cpp +++ b/services/core/jni/onload.cpp @@ -20,6 +20,7 @@ #include "utils/misc.h" namespace android { +int register_android_server_ActivityManagerService(JNIEnv* env); int register_android_server_AlarmManagerService(JNIEnv* env); int register_android_server_AssetAtlasService(JNIEnv* env); int register_android_server_BatteryStatsService(JNIEnv* env); @@ -57,6 +58,7 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) } ALOG_ASSERT(env, "Could not retrieve the env!"); + register_android_server_ActivityManagerService(env); register_android_server_PowerManagerService(env); register_android_server_SerialService(env); register_android_server_InputApplicationHandle(env); @@ -80,5 +82,6 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_PersistentDataBlockService(env); register_android_server_Watchdog(env); + return JNI_VERSION_1_4; } diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index cd2885b9fdd4..dedf1d9ae9f7 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -21,6 +21,7 @@ import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX; import static android.app.admin.DevicePolicyManager.WIPE_EXTERNAL_STORAGE; import static android.app.admin.DevicePolicyManager.WIPE_RESET_PROTECTION_DATA; import static android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGES; +import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW; import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT; import static org.xmlpull.v1.XmlPullParser.END_TAG; import static org.xmlpull.v1.XmlPullParser.TEXT; @@ -44,6 +45,7 @@ import android.app.admin.DevicePolicyManagerInternal; import android.app.admin.IDevicePolicyManager; import android.app.admin.SystemUpdatePolicy; import android.app.backup.IBackupManager; +import android.app.trust.TrustManager; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; @@ -2957,7 +2959,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } boolean requireEntry = (flags & DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY) != 0; if (requireEntry) { - utils.requireCredentialEntry(UserHandle.USER_ALL); + utils.requireStrongAuth(STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW, + UserHandle.USER_ALL); } synchronized (this) { int newOwner = requireEntry ? callingUid : -1; @@ -3089,7 +3092,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { mPowerManager.goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN, 0); // Ensure the device is locked - new LockPatternUtils(mContext).requireCredentialEntry(UserHandle.USER_ALL); + new LockPatternUtils(mContext).requireStrongAuth( + STRONG_AUTH_REQUIRED_AFTER_DPM_LOCK_NOW, UserHandle.USER_ALL); getWindowManager().lockNow(null); } catch (RemoteException e) { } finally { diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 52817e028e4b..0e475b0d2eb9 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -875,6 +875,11 @@ public final class SystemServer { if (!disableNonCoreServices) { mSystemServiceManager.startService(DockObserver.class); + + if (context.getPackageManager().hasSystemFeature + (PackageManager.FEATURE_WATCH)) { + mSystemServiceManager.startService(ThermalObserver.class); + } } traceBeginAndSlog("StartWiredAccessoryManager"); @@ -929,6 +934,11 @@ public final class SystemServer { if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_VOICE_RECOGNIZERS)) { mSystemServiceManager.startService(VOICE_RECOGNITION_MANAGER_SERVICE_CLASS); } + + if (GestureLauncherService.isGestureLauncherEnabled(context.getResources())) { + Slog.i(TAG, "Gesture Launcher Service"); + mSystemServiceManager.startService(GestureLauncherService.class); + } } traceBeginAndSlog("StartDiskStatsService"); @@ -1110,6 +1120,12 @@ public final class SystemServer { w.getDefaultDisplay().getMetrics(metrics); context.getResources().updateConfiguration(config, metrics); + // The system context's theme may be configuration-dependent. + final Theme systemTheme = context.getTheme(); + if (systemTheme.getChangingConfigurations() != 0) { + systemTheme.rebase(); + } + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "MakePowerManagerServiceReady"); try { // TODO: use boot phase @@ -1324,4 +1340,4 @@ public final class SystemServer { Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, name); Slog.i(TAG, name); } -} +}
\ No newline at end of file diff --git a/services/net/java/android/net/dhcp/DhcpClient.java b/services/net/java/android/net/dhcp/DhcpClient.java index 9ee9cf4fbcc6..e0d2ac12be21 100644 --- a/services/net/java/android/net/dhcp/DhcpClient.java +++ b/services/net/java/android/net/dhcp/DhcpClient.java @@ -244,8 +244,9 @@ public class DhcpClient extends BaseDhcpStateMachine { private PendingIntent createStateMachineCommandIntent(final String cmdName, final int cmd) { String action = DhcpClient.class.getName() + "." + mIfaceName + "." + cmdName; - Intent intent = new Intent(action, null) - .addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); + Intent intent = new Intent(action, null).addFlags( + Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | + Intent.FLAG_RECEIVER_FOREGROUND); // TODO: The intent's package covers the whole of the system server, so it's pretty generic. // Consider adding some sort of token as well. intent.setPackage(mContext.getPackageName()); diff --git a/services/net/java/android/net/dhcp/DhcpPacket.java b/services/net/java/android/net/dhcp/DhcpPacket.java index a91ddb8e4185..cbf8fc21b809 100644 --- a/services/net/java/android/net/dhcp/DhcpPacket.java +++ b/services/net/java/android/net/dhcp/DhcpPacket.java @@ -55,6 +55,7 @@ abstract class DhcpPacket { public static final int MIN_PACKET_LENGTH_L3 = MIN_PACKET_LENGTH_BOOTP + 20 + 8; public static final int MIN_PACKET_LENGTH_L2 = MIN_PACKET_LENGTH_L3 + 14; + public static final int HWADDR_LEN = 16; public static final int MAX_OPTION_LEN = 255; /** * IP layer definitions. @@ -399,7 +400,7 @@ abstract class DhcpPacket { buf.put(mRelayIp.getAddress()); buf.put(mClientMac); buf.position(buf.position() + - (16 - mClientMac.length) // pad addr to 16 bytes + (HWADDR_LEN - mClientMac.length) // pad addr to 16 bytes + 64 // empty server host name (64 bytes) + 128); // empty boot file name (128 bytes) buf.putInt(0x63825363); // magic number @@ -786,7 +787,7 @@ abstract class DhcpPacket { byte type = packet.get(); byte hwType = packet.get(); - byte addrLen = packet.get(); + int addrLen = packet.get() & 0xff; byte hops = packet.get(); transactionId = packet.getInt(); secs = packet.getShort(); @@ -807,6 +808,16 @@ abstract class DhcpPacket { return null; } + // Some DHCP servers have been known to announce invalid client hardware address values such + // as 0xff. The legacy DHCP client accepted these becuause it does not check the length at + // all but only checks that the interface MAC address matches the first bytes of the address + // in the packets. We're a bit stricter: if the length is obviously invalid (i.e., bigger + // than the size of the field), we fudge it to 6 (Ethernet). http://b/23725795 + // TODO: evaluate whether to make this test more liberal. + if (addrLen > HWADDR_LEN) { + addrLen = ETHER_BROADCAST.length; + } + clientMac = new byte[addrLen]; packet.get(clientMac); diff --git a/services/net/java/android/net/util/IpUtils.java b/services/net/java/android/net/util/IpUtils.java new file mode 100644 index 000000000000..e037c4035aca --- /dev/null +++ b/services/net/java/android/net/util/IpUtils.java @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.util; + +import java.net.Inet6Address; +import java.net.InetAddress; +import java.nio.BufferOverflowException; +import java.nio.BufferUnderflowException; +import java.nio.ByteBuffer; +import java.nio.ShortBuffer; + +import static android.system.OsConstants.IPPROTO_TCP; +import static android.system.OsConstants.IPPROTO_UDP; + +/** + * @hide + */ +public class IpUtils { + /** + * Converts a signed short value to an unsigned int value. Needed + * because Java does not have unsigned types. + */ + private static int intAbs(short v) { + return v & 0xFFFF; + } + + /** + * Performs an IP checksum (used in IP header and across UDP + * payload) on the specified portion of a ByteBuffer. The seed + * allows the checksum to commence with a specified value. + */ + private static int checksum(ByteBuffer buf, int seed, int start, int end) { + int sum = seed; + final int bufPosition = buf.position(); + + // set position of original ByteBuffer, so that the ShortBuffer + // will be correctly initialized + buf.position(start); + ShortBuffer shortBuf = buf.asShortBuffer(); + + // re-set ByteBuffer position + buf.position(bufPosition); + + final int numShorts = (end - start) / 2; + for (int i = 0; i < numShorts; i++) { + sum += intAbs(shortBuf.get(i)); + } + start += numShorts * 2; + + // see if a singleton byte remains + if (end != start) { + short b = buf.get(start); + + // make it unsigned + if (b < 0) { + b += 256; + } + + sum += b * 256; + } + + sum = ((sum >> 16) & 0xFFFF) + (sum & 0xFFFF); + sum = ((sum + ((sum >> 16) & 0xFFFF)) & 0xFFFF); + int negated = ~sum; + return intAbs((short) negated); + } + + private static int pseudoChecksumIPv4( + ByteBuffer buf, int headerOffset, int protocol, int transportLen) { + int partial = protocol + transportLen; + partial += intAbs(buf.getShort(headerOffset + 12)); + partial += intAbs(buf.getShort(headerOffset + 14)); + partial += intAbs(buf.getShort(headerOffset + 16)); + partial += intAbs(buf.getShort(headerOffset + 18)); + return partial; + } + + private static int pseudoChecksumIPv6( + ByteBuffer buf, int headerOffset, int protocol, int transportLen) { + int partial = protocol + transportLen; + for (int offset = 8; offset < 40; offset += 2) { + partial += intAbs(buf.getShort(headerOffset + offset)); + } + return partial; + } + + private static byte ipversion(ByteBuffer buf, int headerOffset) { + return (byte) ((buf.get(headerOffset) & (byte) 0xf0) >> 4); + } + + public static short ipChecksum(ByteBuffer buf, int headerOffset) { + byte ihl = (byte) (buf.get(headerOffset) & 0x0f); + return (short) checksum(buf, 0, headerOffset, headerOffset + ihl * 4); + } + + private static short transportChecksum(ByteBuffer buf, int protocol, + int ipOffset, int transportOffset, int transportLen) { + if (transportLen < 0) { + throw new IllegalArgumentException("Transport length < 0: " + transportLen); + } + int sum; + byte ver = ipversion(buf, ipOffset); + if (ver == 4) { + sum = pseudoChecksumIPv4(buf, ipOffset, protocol, transportLen); + } else if (ver == 6) { + sum = pseudoChecksumIPv6(buf, ipOffset, protocol, transportLen); + } else { + throw new UnsupportedOperationException("Checksum must be IPv4 or IPv6"); + } + + sum = checksum(buf, sum, transportOffset, transportOffset + transportLen); + if (protocol == IPPROTO_UDP && sum == 0) { + sum = (short) 0xffff; + } + return (short) sum; + } + + public static short udpChecksum(ByteBuffer buf, int ipOffset, int transportOffset) { + int transportLen = intAbs(buf.getShort(transportOffset + 4)); + return transportChecksum(buf, IPPROTO_UDP, ipOffset, transportOffset, transportLen); + } + + public static short tcpChecksum(ByteBuffer buf, int ipOffset, int transportOffset, + int transportLen) { + return transportChecksum(buf, IPPROTO_TCP, ipOffset, transportOffset, transportLen); + } + + public static String addressAndPortToString(InetAddress address, int port) { + return String.format( + (address instanceof Inet6Address) ? "[%s]:%d" : "%s:%d", + address.getHostAddress(), port); + } + + public static boolean isValidUdpOrTcpPort(int port) { + return port > 0 && port < 65536; + } +} diff --git a/services/tests/servicestests/AndroidManifest.xml b/services/tests/servicestests/AndroidManifest.xml index 919293a5c0e9..8bb20a6585f9 100644 --- a/services/tests/servicestests/AndroidManifest.xml +++ b/services/tests/servicestests/AndroidManifest.xml @@ -39,6 +39,7 @@ <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> + <uses-permission android:name="android.permission.PACKET_KEEPALIVE_OFFLOAD" /> <application> <uses-library android:name="android.test.runner" /> diff --git a/services/tests/servicestests/src/android/net/IpUtilsTest.java b/services/tests/servicestests/src/android/net/IpUtilsTest.java new file mode 100644 index 000000000000..c2d1608c461c --- /dev/null +++ b/services/tests/servicestests/src/android/net/IpUtilsTest.java @@ -0,0 +1,162 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.net.util; + +import android.net.util.IpUtils; +import android.test.suitebuilder.annotation.SmallTest; + +import java.nio.ByteBuffer; + +import junit.framework.TestCase; + + +public class IpUtilsTest extends TestCase { + + private static final int IPV4_HEADER_LENGTH = 20; + private static final int IPV6_HEADER_LENGTH = 40; + private static final int TCP_HEADER_LENGTH = 20; + private static final int UDP_HEADER_LENGTH = 8; + private static final int IP_CHECKSUM_OFFSET = 10; + private static final int TCP_CHECKSUM_OFFSET = 16; + private static final int UDP_CHECKSUM_OFFSET = 6; + + private int getUnsignedByte(ByteBuffer buf, int offset) { + return buf.get(offset) & 0xff; + } + + private int getChecksum(ByteBuffer buf, int offset) { + return getUnsignedByte(buf, offset) * 256 + getUnsignedByte(buf, offset + 1); + } + + private void assertChecksumEquals(int expected, short actual) { + assertEquals(Integer.toHexString(expected), Integer.toHexString(actual & 0xffff)); + } + + // Generate test packets using Python code like this:: + // + // from scapy import all as scapy + // + // def JavaPacketDefinition(bytes): + // out = " ByteBuffer packet = ByteBuffer.wrap(new byte[] {\n " + // for i in xrange(len(bytes)): + // out += "(byte) 0x%02x" % ord(bytes[i]) + // if i < len(bytes) - 1: + // if i % 4 == 3: + // out += ",\n " + // else: + // out += ", " + // out += "\n });" + // return out + // + // packet = (scapy.IPv6(src="2001:db8::1", dst="2001:db8::2") / + // scapy.UDP(sport=12345, dport=7) / + // "hello") + // print JavaPacketDefinition(str(packet)) + + @SmallTest + public void testIpv6TcpChecksum() throws Exception { + // packet = (scapy.IPv6(src="2001:db8::1", dst="2001:db8::2", tc=0x80) / + // scapy.TCP(sport=12345, dport=7, + // seq=1692871236, ack=128376451, flags=16, + // window=32768) / + // "hello, world") + ByteBuffer packet = ByteBuffer.wrap(new byte[] { + (byte) 0x68, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x20, (byte) 0x06, (byte) 0x40, + (byte) 0x20, (byte) 0x01, (byte) 0x0d, (byte) 0xb8, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x01, + (byte) 0x20, (byte) 0x01, (byte) 0x0d, (byte) 0xb8, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, + (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x02, + (byte) 0x30, (byte) 0x39, (byte) 0x00, (byte) 0x07, + (byte) 0x64, (byte) 0xe7, (byte) 0x2a, (byte) 0x44, + (byte) 0x07, (byte) 0xa6, (byte) 0xde, (byte) 0x83, + (byte) 0x50, (byte) 0x10, (byte) 0x80, (byte) 0x00, + (byte) 0xee, (byte) 0x71, (byte) 0x00, (byte) 0x00, + (byte) 0x68, (byte) 0x65, (byte) 0x6c, (byte) 0x6c, + (byte) 0x6f, (byte) 0x2c, (byte) 0x20, (byte) 0x77, + (byte) 0x6f, (byte) 0x72, (byte) 0x6c, (byte) 0x64 + }); + + // Check that a valid packet has checksum 0. + int transportLen = packet.limit() - IPV6_HEADER_LENGTH; + assertEquals(0, IpUtils.tcpChecksum(packet, 0, IPV6_HEADER_LENGTH, transportLen)); + + // Check that we can calculate the checksum from scratch. + int sumOffset = IPV6_HEADER_LENGTH + TCP_CHECKSUM_OFFSET; + int sum = getUnsignedByte(packet, sumOffset) * 256 + getUnsignedByte(packet, sumOffset + 1); + assertEquals(0xee71, sum); + + packet.put(sumOffset, (byte) 0); + packet.put(sumOffset + 1, (byte) 0); + assertChecksumEquals(sum, IpUtils.tcpChecksum(packet, 0, IPV6_HEADER_LENGTH, transportLen)); + + // Check that writing the checksum back into the packet results in a valid packet. + packet.putShort( + sumOffset, + IpUtils.tcpChecksum(packet, 0, IPV6_HEADER_LENGTH, transportLen)); + assertEquals(0, IpUtils.tcpChecksum(packet, 0, IPV6_HEADER_LENGTH, transportLen)); + } + + @SmallTest + public void testIpv4UdpChecksum() { + // packet = (scapy.IP(src="192.0.2.1", dst="192.0.2.2", tos=0x40) / + // scapy.UDP(sport=32012, dport=4500) / + // "\xff") + ByteBuffer packet = ByteBuffer.wrap(new byte[] { + (byte) 0x45, (byte) 0x40, (byte) 0x00, (byte) 0x1d, + (byte) 0x00, (byte) 0x01, (byte) 0x00, (byte) 0x00, + (byte) 0x40, (byte) 0x11, (byte) 0xf6, (byte) 0x8b, + (byte) 0xc0, (byte) 0x00, (byte) 0x02, (byte) 0x01, + (byte) 0xc0, (byte) 0x00, (byte) 0x02, (byte) 0x02, + (byte) 0x7d, (byte) 0x0c, (byte) 0x11, (byte) 0x94, + (byte) 0x00, (byte) 0x09, (byte) 0xee, (byte) 0x36, + (byte) 0xff + }); + + // Check that a valid packet has IP checksum 0 and UDP checksum 0xffff (0 is not a valid + // UDP checksum, so the udpChecksum rewrites 0 to 0xffff). + assertEquals(0, IpUtils.ipChecksum(packet, 0)); + assertEquals((short) 0xffff, IpUtils.udpChecksum(packet, 0, IPV4_HEADER_LENGTH)); + + // Check that we can calculate the checksums from scratch. + final int ipSumOffset = IP_CHECKSUM_OFFSET; + final int ipSum = getChecksum(packet, ipSumOffset); + assertEquals(0xf68b, ipSum); + + packet.put(ipSumOffset, (byte) 0); + packet.put(ipSumOffset + 1, (byte) 0); + assertChecksumEquals(ipSum, IpUtils.ipChecksum(packet, 0)); + + final int udpSumOffset = IPV4_HEADER_LENGTH + UDP_CHECKSUM_OFFSET; + final int udpSum = getChecksum(packet, udpSumOffset); + assertEquals(0xee36, udpSum); + + packet.put(udpSumOffset, (byte) 0); + packet.put(udpSumOffset + 1, (byte) 0); + assertChecksumEquals(udpSum, IpUtils.udpChecksum(packet, 0, IPV4_HEADER_LENGTH)); + + // Check that writing the checksums back into the packet results in a valid packet. + packet.putShort(ipSumOffset, IpUtils.ipChecksum(packet, 0)); + packet.putShort(udpSumOffset, IpUtils.udpChecksum(packet, 0, IPV4_HEADER_LENGTH)); + assertEquals(0, IpUtils.ipChecksum(packet, 0)); + assertEquals((short) 0xffff, IpUtils.udpChecksum(packet, 0, IPV4_HEADER_LENGTH)); + } +} diff --git a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java index da1df1accdb0..cd3b8bb7e0b9 100644 --- a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java +++ b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java @@ -333,6 +333,76 @@ public class DhcpPacketTest extends TestCase { } @SmallTest + public void testBadHwaddrLength() throws Exception { + final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7" + + // UDP header. + "00430044013d9ac7" + + // BOOTP header. + "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" + + // MAC address. + "30766ff2a90c00000000000000000000" + + // Server name. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // File. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // Options + "638253633501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" + + "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff" + ).toCharArray(), false)); + String expectedClientMac = "30766FF2A90C"; + + final int hwAddrLenOffset = 20 + 8 + 2; + assertEquals(6, packet.get(hwAddrLenOffset)); + + // Expect the expected. + DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); + assertNotNull(offerPacket); + assertEquals(6, offerPacket.getClientMac().length); + assertEquals(expectedClientMac, HexDump.toHexString(offerPacket.getClientMac())); + + // Reduce the hardware address length and verify that it shortens the client MAC. + packet.flip(); + packet.put(hwAddrLenOffset, (byte) 5); + offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); + assertNotNull(offerPacket); + assertEquals(5, offerPacket.getClientMac().length); + assertEquals(expectedClientMac.substring(0, 10), + HexDump.toHexString(offerPacket.getClientMac())); + + packet.flip(); + packet.put(hwAddrLenOffset, (byte) 3); + offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); + assertNotNull(offerPacket); + assertEquals(3, offerPacket.getClientMac().length); + assertEquals(expectedClientMac.substring(0, 6), + HexDump.toHexString(offerPacket.getClientMac())); + + // Set the the hardware address length to 0xff and verify that we a) don't treat it as -1 + // and crash, and b) hardcode it to 6. + packet.flip(); + packet.put(hwAddrLenOffset, (byte) -1); + offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); + assertNotNull(offerPacket); + assertEquals(6, offerPacket.getClientMac().length); + assertEquals(expectedClientMac, HexDump.toHexString(offerPacket.getClientMac())); + + // Set the the hardware address length to a positive invalid value (> 16) and verify that we + // hardcode it to 6. + packet.flip(); + packet.put(hwAddrLenOffset, (byte) 17); + offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); + assertNotNull(offerPacket); + assertEquals(6, offerPacket.getClientMac().length); + assertEquals(expectedClientMac, HexDump.toHexString(offerPacket.getClientMac())); + } + + @SmallTest public void testPadAndOverloadedOptionsOffer() throws Exception { // A packet observed in the real world that is interesting for two reasons: // diff --git a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java index b4c76b7faaae..97e16da42732 100644 --- a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java @@ -20,35 +20,9 @@ import static android.net.ConnectivityManager.CONNECTIVITY_ACTION; import static android.net.ConnectivityManager.TYPE_MOBILE; import static android.net.ConnectivityManager.TYPE_WIFI; import static android.net.ConnectivityManager.getNetworkTypeName; -import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL; -import static android.net.NetworkCapabilities.NET_CAPABILITY_CBS; -import static android.net.NetworkCapabilities.NET_CAPABILITY_DUN; -import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS; -import static android.net.NetworkCapabilities.NET_CAPABILITY_FOTA; -import static android.net.NetworkCapabilities.NET_CAPABILITY_IA; -import static android.net.NetworkCapabilities.NET_CAPABILITY_IMS; -import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET; -import static android.net.NetworkCapabilities.NET_CAPABILITY_MMS; -import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED; -import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED; -import static android.net.NetworkCapabilities.NET_CAPABILITY_NOT_VPN; -import static android.net.NetworkCapabilities.NET_CAPABILITY_RCS; -import static android.net.NetworkCapabilities.NET_CAPABILITY_SUPL; -import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED; -import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED; -import static android.net.NetworkCapabilities.NET_CAPABILITY_WIFI_P2P; -import static android.net.NetworkCapabilities.NET_CAPABILITY_XCAP; -import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; -import static android.net.NetworkCapabilities.TRANSPORT_WIFI; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.eq; -import static org.mockito.Matchers.isA; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; +import static android.net.NetworkCapabilities.*; + import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.verify; import android.app.PendingIntent; import android.content.BroadcastReceiver; @@ -58,8 +32,12 @@ import android.content.Intent; import android.content.IntentFilter; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; +import android.net.ConnectivityManager.PacketKeepalive; +import android.net.ConnectivityManager.PacketKeepaliveCallback; import android.net.INetworkPolicyManager; import android.net.INetworkStatsService; +import android.net.IpPrefix; +import android.net.LinkAddress; import android.net.LinkProperties; import android.net.Network; import android.net.NetworkAgent; @@ -74,8 +52,11 @@ import android.net.RouteInfo; import android.os.ConditionVariable; import android.os.Handler; import android.os.HandlerThread; -import android.os.Looper; import android.os.INetworkManagementService; +import android.os.Looper; +import android.os.Message; +import android.os.MessageQueue; +import android.os.MessageQueue.IdleHandler; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.LargeTest; import android.util.Log; @@ -84,10 +65,10 @@ import android.util.LogPrinter; import com.android.server.connectivity.NetworkAgentInfo; import com.android.server.connectivity.NetworkMonitor; -import org.mockito.ArgumentCaptor; - import java.net.InetAddress; -import java.util.concurrent.Future; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -99,24 +80,7 @@ import java.util.concurrent.atomic.AtomicBoolean; public class ConnectivityServiceTest extends AndroidTestCase { private static final String TAG = "ConnectivityServiceTest"; - private static final String MOBILE_IFACE = "rmnet3"; - private static final String WIFI_IFACE = "wlan6"; - - private static final RouteInfo MOBILE_ROUTE_V4 = RouteInfo.makeHostRoute(parse("10.0.0.33"), - MOBILE_IFACE); - private static final RouteInfo MOBILE_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::33"), - MOBILE_IFACE); - - private static final RouteInfo WIFI_ROUTE_V4 = RouteInfo.makeHostRoute(parse("192.168.0.66"), - parse("192.168.0.1"), - WIFI_IFACE); - private static final RouteInfo WIFI_ROUTE_V6 = RouteInfo.makeHostRoute(parse("fd00::66"), - parse("fd00::"), - WIFI_IFACE); - - private INetworkManagementService mNetManager; - private INetworkStatsService mStatsService; - private INetworkPolicyManager mPolicyService; + private static final int TIMEOUT_MS = 500; private BroadcastInterceptingContext mServiceContext; private WrappedConnectivityService mService; @@ -148,14 +112,93 @@ public class ConnectivityServiceTest extends AndroidTestCase { } } + /** + * A subclass of HandlerThread that allows callers to wait for it to become idle. waitForIdle + * will return immediately if the handler is already idle. + */ + private class IdleableHandlerThread extends HandlerThread { + private IdleHandler mIdleHandler; + + public IdleableHandlerThread(String name) { + super(name); + } + + public void waitForIdle(int timeoutMs) { + final ConditionVariable cv = new ConditionVariable(); + final MessageQueue queue = getLooper().getQueue(); + + synchronized (queue) { + if (queue.isIdle()) { + return; + } + + assertNull("BUG: only one idle handler allowed", mIdleHandler); + mIdleHandler = new IdleHandler() { + public boolean queueIdle() { + cv.open(); + mIdleHandler = null; + return false; // Remove the handler. + } + }; + queue.addIdleHandler(mIdleHandler); + } + + if (!cv.block(timeoutMs)) { + fail("HandlerThread " + getName() + + " did not become idle after " + timeoutMs + " ms"); + queue.removeIdleHandler(mIdleHandler); + } + } + } + + // Tests that IdleableHandlerThread works as expected. + public void testIdleableHandlerThread() { + final int attempts = 50; // Causes the test to take about 200ms on bullhead-eng. + + // Tests that waitForIdle returns immediately if the service is already idle. + for (int i = 0; i < attempts; i++) { + mService.waitForIdle(); + } + + // Bring up a network that we can use to send messages to ConnectivityService. + ConditionVariable cv = waitForConnectivityBroadcasts(1); + mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); + mWiFiNetworkAgent.connect(false); + waitFor(cv); + Network n = mWiFiNetworkAgent.getNetwork(); + assertNotNull(n); + + // Tests that calling waitForIdle waits for messages to be processed. + for (int i = 0; i < attempts; i++) { + mWiFiNetworkAgent.setSignalStrength(i); + mService.waitForIdle(); + assertEquals(i, mCm.getNetworkCapabilities(n).getSignalStrength()); + } + + // Ensure that not calling waitForIdle causes a race condition. + for (int i = 0; i < attempts; i++) { + mWiFiNetworkAgent.setSignalStrength(i); + if (i != mCm.getNetworkCapabilities(n).getSignalStrength()) { + // We hit a race condition, as expected. Pass the test. + return; + } + } + + // No race? There is a bug in this test. + fail("expected race condition at least once in " + attempts + " attempts"); + } + private class MockNetworkAgent { private final WrappedNetworkMonitor mWrappedNetworkMonitor; private final NetworkInfo mNetworkInfo; private final NetworkCapabilities mNetworkCapabilities; - private final Thread mThread; + private final IdleableHandlerThread mHandlerThread; private final ConditionVariable mDisconnected = new ConditionVariable(); private int mScore; private NetworkAgent mNetworkAgent; + private int mStartKeepaliveError = PacketKeepalive.ERROR_HARDWARE_UNSUPPORTED; + private int mStopKeepaliveError = PacketKeepalive.NO_KEEPALIVE; + private Integer mExpectedKeepaliveSlot = null; MockNetworkAgent(int transport) { final int type = transportToLegacyType(transport); @@ -173,26 +216,42 @@ public class ConnectivityServiceTest extends AndroidTestCase { default: throw new UnsupportedOperationException("unimplemented network type"); } - final ConditionVariable initComplete = new ConditionVariable(); - final ConditionVariable networkMonitorAvailable = mService.getNetworkMonitorCreatedCV(); - mThread = new Thread() { - public void run() { - Looper.prepare(); - mNetworkAgent = new NetworkAgent(Looper.myLooper(), mServiceContext, - "Mock" + typeName, mNetworkInfo, mNetworkCapabilities, - new LinkProperties(), mScore, new NetworkMisc()) { - public void unwanted() { mDisconnected.open(); } - }; - initComplete.open(); - Looper.loop(); + mHandlerThread = new IdleableHandlerThread("Mock-" + typeName); + mHandlerThread.start(); + mNetworkAgent = new NetworkAgent(mHandlerThread.getLooper(), mServiceContext, + "Mock-" + typeName, mNetworkInfo, mNetworkCapabilities, + new LinkProperties(), mScore, new NetworkMisc()) { + @Override + public void unwanted() { mDisconnected.open(); } + + @Override + public void startPacketKeepalive(Message msg) { + int slot = msg.arg1; + if (mExpectedKeepaliveSlot != null) { + assertEquals((int) mExpectedKeepaliveSlot, slot); + } + onPacketKeepaliveEvent(slot, mStartKeepaliveError); + } + + @Override + public void stopPacketKeepalive(Message msg) { + onPacketKeepaliveEvent(msg.arg1, mStopKeepaliveError); } }; - mThread.start(); - waitFor(initComplete); - waitFor(networkMonitorAvailable); + // Waits for the NetworkAgent to be registered, which includes the creation of the + // NetworkMonitor. + mService.waitForIdle(); mWrappedNetworkMonitor = mService.getLastCreatedWrappedNetworkMonitor(); } + public void waitForIdle(int timeoutMs) { + mHandlerThread.waitForIdle(timeoutMs); + } + + public void waitForIdle() { + waitForIdle(TIMEOUT_MS); + } + public void adjustScore(int change) { mScore += change; mNetworkAgent.sendNetworkScore(mScore); @@ -203,6 +262,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { mNetworkAgent.sendNetworkCapabilities(mNetworkCapabilities); } + public void setSignalStrength(int signalStrength) { + mNetworkCapabilities.setSignalStrength(signalStrength); + mNetworkAgent.sendNetworkCapabilities(mNetworkCapabilities); + } + public void connectWithoutInternet() { mNetworkInfo.setDetailedState(DetailedState.CONNECTED, null, null); mNetworkAgent.sendNetworkInfo(mNetworkInfo); @@ -272,15 +336,46 @@ public class ConnectivityServiceTest extends AndroidTestCase { public WrappedNetworkMonitor getWrappedNetworkMonitor() { return mWrappedNetworkMonitor; } + + public void sendLinkProperties(LinkProperties lp) { + mNetworkAgent.sendLinkProperties(lp); + } + + public void setStartKeepaliveError(int error) { + mStartKeepaliveError = error; + } + + public void setStopKeepaliveError(int error) { + mStopKeepaliveError = error; + } + + public void setExpectedKeepaliveSlot(Integer slot) { + mExpectedKeepaliveSlot = slot; + } } + /** + * A NetworkFactory that allows tests to wait until any in-flight NetworkRequest add or remove + * operations have been processed. Before ConnectivityService can add or remove any requests, + * the factory must be told to expect those operations by calling expectAddRequests or + * expectRemoveRequests. + */ private static class MockNetworkFactory extends NetworkFactory { private final ConditionVariable mNetworkStartedCV = new ConditionVariable(); private final ConditionVariable mNetworkStoppedCV = new ConditionVariable(); - private final ConditionVariable mNetworkRequestedCV = new ConditionVariable(); - private final ConditionVariable mNetworkReleasedCV = new ConditionVariable(); private final AtomicBoolean mNetworkStarted = new AtomicBoolean(false); + // Used to expect that requests be removed or added on a separate thread, without sleeping. + // Callers can call either expectAddRequests() or expectRemoveRequests() exactly once, then + // cause some other thread to add or remove requests, then call waitForRequests(). We can + // either expect requests to be added or removed, but not both, because CountDownLatch can + // only count in one direction. + private CountDownLatch mExpectations; + + // Whether we are currently expecting requests to be added or removed. Valid only if + // mExpectations is non-null. + private boolean mExpectingAdditions; + public MockNetworkFactory(Looper looper, Context context, String logTag, NetworkCapabilities filter) { super(looper, context, logTag, filter); @@ -314,28 +409,75 @@ public class ConnectivityServiceTest extends AndroidTestCase { return mNetworkStoppedCV; } - protected void needNetworkFor(NetworkRequest networkRequest, int score) { - super.needNetworkFor(networkRequest, score); - mNetworkRequestedCV.open(); + @Override + protected void handleAddRequest(NetworkRequest request, int score) { + // If we're expecting anything, we must be expecting additions. + if (mExpectations != null && !mExpectingAdditions) { + fail("Can't add requests while expecting requests to be removed"); + } + + // Add the request. + super.handleAddRequest(request, score); + + // Reduce the number of request additions we're waiting for. + if (mExpectingAdditions) { + assertTrue("Added more requests than expected", mExpectations.getCount() > 0); + mExpectations.countDown(); + } + } + + @Override + protected void handleRemoveRequest(NetworkRequest request) { + // If we're expecting anything, we must be expecting removals. + if (mExpectations != null && mExpectingAdditions) { + fail("Can't remove requests while expecting requests to be added"); + } + + // Remove the request. + super.handleRemoveRequest(request); + + // Reduce the number of request removals we're waiting for. + if (!mExpectingAdditions) { + assertTrue("Removed more requests than expected", mExpectations.getCount() > 0); + mExpectations.countDown(); + } } - protected void releaseNetworkFor(NetworkRequest networkRequest) { - super.releaseNetworkFor(networkRequest); - mNetworkReleasedCV.open(); + private void assertNoExpectations() { + if (mExpectations != null) { + fail("Can't add expectation, " + mExpectations.getCount() + " already pending"); + } + } + + // Expects that count requests will be added. + public void expectAddRequests(final int count) { + assertNoExpectations(); + mExpectingAdditions = true; + mExpectations = new CountDownLatch(count); } - public ConditionVariable getNetworkRequestedCV() { - mNetworkRequestedCV.close(); - return mNetworkRequestedCV; + // Expects that count requests will be removed. + public void expectRemoveRequests(final int count) { + assertNoExpectations(); + mExpectingAdditions = false; + mExpectations = new CountDownLatch(count); } - public ConditionVariable getNetworkReleasedCV() { - mNetworkReleasedCV.close(); - return mNetworkReleasedCV; + // Waits for the expected request additions or removals to happen within a timeout. + public void waitForRequests() throws InterruptedException { + assertNotNull("Nothing to wait for", mExpectations); + mExpectations.await(TIMEOUT_MS, TimeUnit.MILLISECONDS); + final long count = mExpectations.getCount(); + final String msg = count + " requests still not " + + (mExpectingAdditions ? "added" : "removed") + + " after " + TIMEOUT_MS + " ms"; + assertEquals(msg, 0, count); + mExpectations = null; } - public void waitForNetworkRequests(final int count) { - waitFor(new Criteria() { public boolean get() { return count == getRequestCount(); } }); + public void waitForNetworkRequests(final int count) throws InterruptedException { + waitForRequests(); + assertEquals(count, getMyRequestCount()); } } @@ -356,7 +498,6 @@ public class ConnectivityServiceTest extends AndroidTestCase { } private class WrappedConnectivityService extends ConnectivityService { - private final ConditionVariable mNetworkMonitorCreated = new ConditionVariable(); private WrappedNetworkMonitor mLastCreatedNetworkMonitor; public WrappedConnectivityService(Context context, INetworkManagementService netManager, @@ -365,6 +506,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { } @Override + protected HandlerThread createHandlerThread() { + return new IdleableHandlerThread("WrappedConnectivityService"); + } + + @Override protected int getDefaultTcpRwnd() { // Prevent wrapped ConnectivityService from trying to write to SystemProperties. return 0; @@ -397,7 +543,6 @@ public class ConnectivityServiceTest extends AndroidTestCase { final WrappedNetworkMonitor monitor = new WrappedNetworkMonitor(context, handler, nai, defaultRequest); mLastCreatedNetworkMonitor = monitor; - mNetworkMonitorCreated.open(); return monitor; } @@ -405,10 +550,14 @@ public class ConnectivityServiceTest extends AndroidTestCase { return mLastCreatedNetworkMonitor; } - public ConditionVariable getNetworkMonitorCreatedCV() { - mNetworkMonitorCreated.close(); - return mNetworkMonitorCreated; + public void waitForIdle(int timeoutMs) { + ((IdleableHandlerThread) mHandlerThread).waitForIdle(timeoutMs); } + + public void waitForIdle() { + waitForIdle(TIMEOUT_MS); + } + } private interface Criteria { @@ -431,23 +580,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { } /** - * Wait up to 500ms for {@code conditonVariable} to open. - * Fails if 500ms goes by before {@code conditionVariable} opens. + * Wait up to TIMEOUT_MS for {@code conditionVariable} to open. + * Fails if TIMEOUT_MS goes by before {@code conditionVariable} opens. */ static private void waitFor(ConditionVariable conditionVariable) { - assertTrue(conditionVariable.block(500)); - } - - /** - * This should only be used to verify that nothing happens, in other words that no unexpected - * changes occur. It should never be used to wait for a specific positive signal to occur. - */ - private void shortSleep() { - // TODO: Instead of sleeping, instead wait for all message loops to idle. - try { - Thread.sleep(500); - } catch (InterruptedException e) { - } + assertTrue(conditionVariable.block(TIMEOUT_MS)); } @Override @@ -455,13 +592,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { super.setUp(); mServiceContext = new MockContext(getContext()); + mService = new WrappedConnectivityService(mServiceContext, + mock(INetworkManagementService.class), + mock(INetworkStatsService.class), + mock(INetworkPolicyManager.class)); - mNetManager = mock(INetworkManagementService.class); - mStatsService = mock(INetworkStatsService.class); - mPolicyService = mock(INetworkPolicyManager.class); - - mService = new WrappedConnectivityService( - mServiceContext, mNetManager, mStatsService, mPolicyService); mService.systemReady(); mCm = new ConnectivityManager(getContext(), mService); } @@ -583,11 +718,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { // Test bringing up unvalidated cellular mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mCellNetworkAgent.connect(false); - shortSleep(); + mService.waitForIdle(); verifyActiveNetwork(TRANSPORT_WIFI); // Test cellular disconnect. mCellNetworkAgent.disconnect(); - shortSleep(); + mService.waitForIdle(); verifyActiveNetwork(TRANSPORT_WIFI); // Test bringing up validated cellular mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); @@ -797,6 +932,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { LOST } + /** + * Utility NetworkCallback for testing. The caller must explicitly test for all the callbacks + * this class receives, by calling expectCallback() exactly once each time a callback is + * received. assertNoCallback may be called at any time. + */ private class TestNetworkCallback extends NetworkCallback { private final ConditionVariable mConditionVariable = new ConditionVariable(); private CallbackState mLastCallback = CallbackState.NONE; @@ -819,14 +959,15 @@ public class ConnectivityServiceTest extends AndroidTestCase { mConditionVariable.open(); } - ConditionVariable getConditionVariable() { + void expectCallback(CallbackState state) { + waitFor(mConditionVariable); + assertEquals(state, mLastCallback); mLastCallback = CallbackState.NONE; mConditionVariable.close(); - return mConditionVariable; } - CallbackState getLastCallback() { - return mLastCallback; + void assertNoCallback() { + assertEquals(CallbackState.NONE, mLastCallback); } } @@ -842,98 +983,68 @@ public class ConnectivityServiceTest extends AndroidTestCase { mCm.registerNetworkCallback(cellRequest, cellNetworkCallback); // Test unvalidated networks - ConditionVariable cellCv = cellNetworkCallback.getConditionVariable(); - ConditionVariable wifiCv = wifiNetworkCallback.getConditionVariable(); ConditionVariable cv = waitForConnectivityBroadcasts(1); mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mCellNetworkAgent.connect(false); - waitFor(cellCv); - assertEquals(CallbackState.AVAILABLE, cellNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, wifiNetworkCallback.getLastCallback()); + cellNetworkCallback.expectCallback(CallbackState.AVAILABLE); + wifiNetworkCallback.assertNoCallback(); assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork()); waitFor(cv); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); // This should not trigger spurious onAvailable() callbacks, b/21762680. mCellNetworkAgent.adjustScore(-1); - shortSleep(); - assertEquals(CallbackState.NONE, wifiNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, cellNetworkCallback.getLastCallback()); + mService.waitForIdle(); + wifiNetworkCallback.assertNoCallback(); + cellNetworkCallback.assertNoCallback(); assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork()); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); cv = waitForConnectivityBroadcasts(2); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); mWiFiNetworkAgent.connect(false); - waitFor(wifiCv); - assertEquals(CallbackState.AVAILABLE, wifiNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, cellNetworkCallback.getLastCallback()); + wifiNetworkCallback.expectCallback(CallbackState.AVAILABLE); + cellNetworkCallback.assertNoCallback(); assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork()); waitFor(cv); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); cv = waitForConnectivityBroadcasts(2); mWiFiNetworkAgent.disconnect(); - waitFor(wifiCv); - assertEquals(CallbackState.LOST, wifiNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, cellNetworkCallback.getLastCallback()); + wifiNetworkCallback.expectCallback(CallbackState.LOST); + cellNetworkCallback.assertNoCallback(); waitFor(cv); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); cv = waitForConnectivityBroadcasts(1); mCellNetworkAgent.disconnect(); - waitFor(cellCv); - assertEquals(CallbackState.LOST, cellNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, wifiNetworkCallback.getLastCallback()); + cellNetworkCallback.expectCallback(CallbackState.LOST); + wifiNetworkCallback.assertNoCallback(); waitFor(cv); // Test validated networks - - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mCellNetworkAgent.connect(true); - waitFor(cellCv); - assertEquals(CallbackState.AVAILABLE, cellNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, wifiNetworkCallback.getLastCallback()); + cellNetworkCallback.expectCallback(CallbackState.AVAILABLE); + wifiNetworkCallback.assertNoCallback(); assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork()); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); // This should not trigger spurious onAvailable() callbacks, b/21762680. mCellNetworkAgent.adjustScore(-1); - shortSleep(); - assertEquals(CallbackState.NONE, wifiNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, cellNetworkCallback.getLastCallback()); + mService.waitForIdle(); + wifiNetworkCallback.assertNoCallback(); + cellNetworkCallback.assertNoCallback(); assertEquals(mCellNetworkAgent.getNetwork(), mCm.getActiveNetwork()); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); mWiFiNetworkAgent.connect(true); - waitFor(wifiCv); - assertEquals(CallbackState.AVAILABLE, wifiNetworkCallback.getLastCallback()); - waitFor(cellCv); - assertEquals(CallbackState.LOSING, cellNetworkCallback.getLastCallback()); + wifiNetworkCallback.expectCallback(CallbackState.AVAILABLE); + cellNetworkCallback.expectCallback(CallbackState.LOSING); assertEquals(mWiFiNetworkAgent.getNetwork(), mCm.getActiveNetwork()); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); mWiFiNetworkAgent.disconnect(); - waitFor(wifiCv); - assertEquals(CallbackState.LOST, wifiNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, cellNetworkCallback.getLastCallback()); + wifiNetworkCallback.expectCallback(CallbackState.LOST); + cellNetworkCallback.assertNoCallback(); - cellCv = cellNetworkCallback.getConditionVariable(); - wifiCv = wifiNetworkCallback.getConditionVariable(); mCellNetworkAgent.disconnect(); - waitFor(cellCv); - assertEquals(CallbackState.LOST, cellNetworkCallback.getLastCallback()); - assertEquals(CallbackState.NONE, wifiNetworkCallback.getLastCallback()); + cellNetworkCallback.expectCallback(CallbackState.LOST); + wifiNetworkCallback.assertNoCallback(); } private void tryNetworkFactoryRequests(int capability) throws Exception { @@ -957,18 +1068,21 @@ public class ConnectivityServiceTest extends AndroidTestCase { mServiceContext, "testFactory", filter); testFactory.setScoreFilter(40); ConditionVariable cv = testFactory.getNetworkStartedCV(); + testFactory.expectAddRequests(1); testFactory.register(); + testFactory.waitForNetworkRequests(1); int expectedRequestCount = 1; NetworkCallback networkCallback = null; // For non-INTERNET capabilities we cannot rely on the default request being present, so // add one. if (capability != NET_CAPABILITY_INTERNET) { - testFactory.waitForNetworkRequests(1); assertFalse(testFactory.getMyStartRequested()); NetworkRequest request = new NetworkRequest.Builder().addCapability(capability).build(); networkCallback = new NetworkCallback(); + testFactory.expectAddRequests(1); mCm.requestNetwork(request, networkCallback); expectedRequestCount++; + testFactory.waitForNetworkRequests(expectedRequestCount); } waitFor(cv); assertEquals(expectedRequestCount, testFactory.getMyRequestCount()); @@ -981,13 +1095,20 @@ public class ConnectivityServiceTest extends AndroidTestCase { // unvalidated penalty. testAgent.adjustScore(40); cv = testFactory.getNetworkStoppedCV(); + + // When testAgent connects, ConnectivityService will re-send us all current requests with + // the new score. There are expectedRequestCount such requests, and we must wait for all of + // them. + testFactory.expectAddRequests(expectedRequestCount); testAgent.connect(false); testAgent.addCapability(capability); waitFor(cv); - assertEquals(expectedRequestCount, testFactory.getMyRequestCount()); + testFactory.waitForNetworkRequests(expectedRequestCount); assertFalse(testFactory.getMyStartRequested()); // Bring in a bunch of requests. + testFactory.expectAddRequests(10); + assertEquals(expectedRequestCount, testFactory.getMyRequestCount()); ConnectivityManager.NetworkCallback[] networkCallbacks = new ConnectivityManager.NetworkCallback[10]; for (int i = 0; i< networkCallbacks.length; i++) { @@ -1000,6 +1121,7 @@ public class ConnectivityServiceTest extends AndroidTestCase { assertFalse(testFactory.getMyStartRequested()); // Remove the requests. + testFactory.expectRemoveRequests(10); for (int i = 0; i < networkCallbacks.length; i++) { mCm.unregisterNetworkCallback(networkCallbacks[i]); } @@ -1088,10 +1210,8 @@ public class ConnectivityServiceTest extends AndroidTestCase { // Test bringing up unvalidated cellular with MMS mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mCellNetworkAgent.addCapability(NET_CAPABILITY_MMS); - cv = networkCallback.getConditionVariable(); mCellNetworkAgent.connectWithoutInternet(); - waitFor(cv); - assertEquals(CallbackState.AVAILABLE, networkCallback.getLastCallback()); + networkCallback.expectCallback(CallbackState.AVAILABLE); verifyActiveNetwork(TRANSPORT_WIFI); // Test releasing NetworkRequest disconnects cellular with MMS cv = mCellNetworkAgent.getDisconnectedCV(); @@ -1114,12 +1234,10 @@ public class ConnectivityServiceTest extends AndroidTestCase { final TestNetworkCallback networkCallback = new TestNetworkCallback(); mCm.requestNetwork(builder.build(), networkCallback); // Test bringing up MMS cellular network - cv = networkCallback.getConditionVariable(); MockNetworkAgent mmsNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); mmsNetworkAgent.addCapability(NET_CAPABILITY_MMS); mmsNetworkAgent.connectWithoutInternet(); - waitFor(cv); - assertEquals(CallbackState.AVAILABLE, networkCallback.getLastCallback()); + networkCallback.expectCallback(CallbackState.AVAILABLE); verifyActiveNetwork(TRANSPORT_CELLULAR); // Test releasing MMS NetworkRequest does not disconnect main cellular NetworkAgent cv = mmsNetworkAgent.getDisconnectedCV(); @@ -1139,133 +1257,245 @@ public class ConnectivityServiceTest extends AndroidTestCase { final NetworkRequest validatedRequest = new NetworkRequest.Builder() .addCapability(NET_CAPABILITY_VALIDATED).build(); mCm.registerNetworkCallback(validatedRequest, validatedCallback); - ConditionVariable validatedCv = validatedCallback.getConditionVariable(); // Bring up a network with a captive portal. // Expect onAvailable callback of listen for NET_CAPABILITY_CAPTIVE_PORTAL. - ConditionVariable cv = captivePortalCallback.getConditionVariable(); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); mWiFiNetworkAgent.connectWithCaptivePortal(); - waitFor(cv); - assertEquals(CallbackState.AVAILABLE, captivePortalCallback.getLastCallback()); + captivePortalCallback.expectCallback(CallbackState.AVAILABLE); // Take down network. // Expect onLost callback. - cv = captivePortalCallback.getConditionVariable(); mWiFiNetworkAgent.disconnect(); - waitFor(cv); - assertEquals(CallbackState.LOST, captivePortalCallback.getLastCallback()); + captivePortalCallback.expectCallback(CallbackState.LOST); // Bring up a network with a captive portal. // Expect onAvailable callback of listen for NET_CAPABILITY_CAPTIVE_PORTAL. - cv = captivePortalCallback.getConditionVariable(); mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); mWiFiNetworkAgent.connectWithCaptivePortal(); - waitFor(cv); - assertEquals(CallbackState.AVAILABLE, captivePortalCallback.getLastCallback()); + captivePortalCallback.expectCallback(CallbackState.AVAILABLE); // Make captive portal disappear then revalidate. // Expect onLost callback because network no longer provides NET_CAPABILITY_CAPTIVE_PORTAL. - cv = captivePortalCallback.getConditionVariable(); mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 204; mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), true); - waitFor(cv); - assertEquals(CallbackState.LOST, captivePortalCallback.getLastCallback()); + captivePortalCallback.expectCallback(CallbackState.LOST); // Expect NET_CAPABILITY_VALIDATED onAvailable callback. - waitFor(validatedCv); - assertEquals(CallbackState.AVAILABLE, validatedCallback.getLastCallback()); + validatedCallback.expectCallback(CallbackState.AVAILABLE); // Break network connectivity. // Expect NET_CAPABILITY_VALIDATED onLost callback. - validatedCv = validatedCallback.getConditionVariable(); mWiFiNetworkAgent.getWrappedNetworkMonitor().gen204ProbeResult = 500; mCm.reportNetworkConnectivity(mWiFiNetworkAgent.getNetwork(), false); - waitFor(validatedCv); - assertEquals(CallbackState.LOST, validatedCallback.getLastCallback()); + validatedCallback.expectCallback(CallbackState.LOST); + } + + private static class TestKeepaliveCallback extends PacketKeepaliveCallback { + + public static enum CallbackType { ON_STARTED, ON_STOPPED, ON_ERROR }; + + private class CallbackValue { + public CallbackType callbackType; + public int error; + + public CallbackValue(CallbackType type) { + this.callbackType = type; + this.error = PacketKeepalive.SUCCESS; + assertTrue("onError callback must have error", type != CallbackType.ON_ERROR); + } + + public CallbackValue(CallbackType type, int error) { + this.callbackType = type; + this.error = error; + assertEquals("error can only be set for onError", type, CallbackType.ON_ERROR); + } + + @Override + public boolean equals(Object o) { + return o instanceof CallbackValue && + this.callbackType == ((CallbackValue) o).callbackType && + this.error == ((CallbackValue) o).error; + } + + @Override + public String toString() { + return String.format("%s(%s, %d)", getClass().getSimpleName(), callbackType, error); + } + } + + private LinkedBlockingQueue<CallbackValue> mCallbacks = new LinkedBlockingQueue<>(); + + @Override + public void onStarted() { + mCallbacks.add(new CallbackValue(CallbackType.ON_STARTED)); + } + + @Override + public void onStopped() { + mCallbacks.add(new CallbackValue(CallbackType.ON_STOPPED)); + } + + @Override + public void onError(int error) { + mCallbacks.add(new CallbackValue(CallbackType.ON_ERROR, error)); + } + + private void expectCallback(CallbackValue callbackValue) { + try { + assertEquals( + callbackValue, + mCallbacks.poll(TIMEOUT_MS, TimeUnit.MILLISECONDS)); + } catch (InterruptedException e) { + fail(callbackValue.callbackType + " callback not seen after " + TIMEOUT_MS + " ms"); + } + } + + public void expectStarted() { + expectCallback(new CallbackValue(CallbackType.ON_STARTED)); + } + + public void expectStopped() { + expectCallback(new CallbackValue(CallbackType.ON_STOPPED)); + } + + public void expectError(int error) { + expectCallback(new CallbackValue(CallbackType.ON_ERROR, error)); + } } -// @Override -// public void tearDown() throws Exception { -// super.tearDown(); -// } -// -// public void testMobileConnectedAddedRoutes() throws Exception { -// Future<?> nextConnBroadcast; -// -// // bring up mobile network -// mMobile.info.setDetailedState(DetailedState.CONNECTED, null, null); -// mMobile.link.setInterfaceName(MOBILE_IFACE); -// mMobile.link.addRoute(MOBILE_ROUTE_V4); -// mMobile.link.addRoute(MOBILE_ROUTE_V6); -// mMobile.doReturnDefaults(); -// -// cv = waitForConnectivityBroadcasts(1); -// mTrackerHandler.obtainMessage(EVENT_STATE_CHANGED, mMobile.info).sendToTarget(); -// waitFor(cv); -// -// // verify that both routes were added -// int mobileNetId = mMobile.tracker.getNetwork().netId; -// verify(mNetManager).addRoute(eq(mobileNetId), eq(MOBILE_ROUTE_V4)); -// verify(mNetManager).addRoute(eq(mobileNetId), eq(MOBILE_ROUTE_V6)); -// } -// -// public void testMobileWifiHandoff() throws Exception { -// Future<?> nextConnBroadcast; -// -// // bring up mobile network -// mMobile.info.setDetailedState(DetailedState.CONNECTED, null, null); -// mMobile.link.setInterfaceName(MOBILE_IFACE); -// mMobile.link.addRoute(MOBILE_ROUTE_V4); -// mMobile.link.addRoute(MOBILE_ROUTE_V6); -// mMobile.doReturnDefaults(); -// -// cv = waitForConnectivityBroadcasts(1); -// mTrackerHandler.obtainMessage(EVENT_STATE_CHANGED, mMobile.info).sendToTarget(); -// waitFor(cv); -// -// reset(mNetManager); -// -// // now bring up wifi network -// mWifi.info.setDetailedState(DetailedState.CONNECTED, null, null); -// mWifi.link.setInterfaceName(WIFI_IFACE); -// mWifi.link.addRoute(WIFI_ROUTE_V4); -// mWifi.link.addRoute(WIFI_ROUTE_V6); -// mWifi.doReturnDefaults(); -// -// // expect that mobile will be torn down -// doReturn(true).when(mMobile.tracker).teardown(); -// -// cv = waitForConnectivityBroadcasts(1); -// mTrackerHandler.obtainMessage(EVENT_STATE_CHANGED, mWifi.info).sendToTarget(); -// waitFor(cv); -// -// // verify that wifi routes added, and teardown requested -// int wifiNetId = mWifi.tracker.getNetwork().netId; -// verify(mNetManager).addRoute(eq(wifiNetId), eq(WIFI_ROUTE_V4)); -// verify(mNetManager).addRoute(eq(wifiNetId), eq(WIFI_ROUTE_V6)); -// verify(mMobile.tracker).teardown(); -// -// int mobileNetId = mMobile.tracker.getNetwork().netId; -// -// reset(mNetManager, mMobile.tracker); -// -// // tear down mobile network, as requested -// mMobile.info.setDetailedState(DetailedState.DISCONNECTED, null, null); -// mMobile.link.clear(); -// mMobile.doReturnDefaults(); -// -// cv = waitForConnectivityBroadcasts(1); -// mTrackerHandler.obtainMessage(EVENT_STATE_CHANGED, mMobile.info).sendToTarget(); -// waitFor(cv); -// -// verify(mNetManager).removeRoute(eq(mobileNetId), eq(MOBILE_ROUTE_V4)); -// verify(mNetManager).removeRoute(eq(mobileNetId), eq(MOBILE_ROUTE_V6)); -// -// } - - private static InetAddress parse(String addr) { - return InetAddress.parseNumericAddress(addr); + private Network connectKeepaliveNetwork(LinkProperties lp) { + // Ensure the network is disconnected before we do anything. + if (mWiFiNetworkAgent != null) { + assertNull(mCm.getNetworkCapabilities(mWiFiNetworkAgent.getNetwork())); + } + + mWiFiNetworkAgent = new MockNetworkAgent(TRANSPORT_WIFI); + ConditionVariable cv = waitForConnectivityBroadcasts(1); + mWiFiNetworkAgent.connect(true); + waitFor(cv); + verifyActiveNetwork(TRANSPORT_WIFI); + mWiFiNetworkAgent.sendLinkProperties(lp); + mService.waitForIdle(); + return mWiFiNetworkAgent.getNetwork(); } + public void testPacketKeepalives() throws Exception { + InetAddress myIPv4 = InetAddress.getByName("192.0.2.129"); + InetAddress notMyIPv4 = InetAddress.getByName("192.0.2.35"); + InetAddress myIPv6 = InetAddress.getByName("2001:db8::1"); + InetAddress dstIPv4 = InetAddress.getByName("8.8.8.8"); + InetAddress dstIPv6 = InetAddress.getByName("2001:4860:4860::8888"); + + LinkProperties lp = new LinkProperties(); + lp.setInterfaceName("wlan12"); + lp.addLinkAddress(new LinkAddress(myIPv6, 64)); + lp.addLinkAddress(new LinkAddress(myIPv4, 25)); + lp.addRoute(new RouteInfo(InetAddress.getByName("fe80::1234"))); + lp.addRoute(new RouteInfo(InetAddress.getByName("192.0.2.254"))); + + Network notMyNet = new Network(61234); + Network myNet = connectKeepaliveNetwork(lp); + + TestKeepaliveCallback callback = new TestKeepaliveCallback(); + PacketKeepalive ka; + + // Attempt to start keepalives with invalid parameters and check for errors. + ka = mCm.startNattKeepalive(notMyNet, 25, callback, myIPv4, 1234, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_INVALID_NETWORK); + + ka = mCm.startNattKeepalive(myNet, 19, callback, notMyIPv4, 1234, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_INVALID_INTERVAL); + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 1234, dstIPv6); + callback.expectError(PacketKeepalive.ERROR_INVALID_IP_ADDRESS); + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv6, 1234, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_INVALID_IP_ADDRESS); + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv6, 1234, dstIPv6); + callback.expectError(PacketKeepalive.ERROR_INVALID_IP_ADDRESS); // NAT-T is IPv4-only. + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 123456, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_INVALID_PORT); + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 123456, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_INVALID_PORT); + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_HARDWARE_UNSUPPORTED); + + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectError(PacketKeepalive.ERROR_HARDWARE_UNSUPPORTED); + + // Check that a started keepalive can be stopped. + mWiFiNetworkAgent.setStartKeepaliveError(PacketKeepalive.SUCCESS); + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectStarted(); + mWiFiNetworkAgent.setStopKeepaliveError(PacketKeepalive.SUCCESS); + ka.stop(); + callback.expectStopped(); + + // Check that deleting the IP address stops the keepalive. + LinkProperties bogusLp = new LinkProperties(lp); + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectStarted(); + bogusLp.removeLinkAddress(new LinkAddress(myIPv4, 25)); + bogusLp.addLinkAddress(new LinkAddress(notMyIPv4, 25)); + mWiFiNetworkAgent.sendLinkProperties(bogusLp); + callback.expectError(PacketKeepalive.ERROR_INVALID_IP_ADDRESS); + mWiFiNetworkAgent.sendLinkProperties(lp); + + // Check that a started keepalive is stopped correctly when the network disconnects. + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectStarted(); + mWiFiNetworkAgent.disconnect(); + callback.expectError(PacketKeepalive.ERROR_INVALID_NETWORK); + + // ... and that stopping it after that has no adverse effects. + assertNull(mCm.getNetworkCapabilities(myNet)); + ka.stop(); + + // Reconnect. + myNet = connectKeepaliveNetwork(lp); + mWiFiNetworkAgent.setStartKeepaliveError(PacketKeepalive.SUCCESS); + + // Check things work as expected when the keepalive is stopped and the network disconnects. + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectStarted(); + ka.stop(); + mWiFiNetworkAgent.disconnect(); + mService.waitForIdle(); + callback.expectStopped(); + + // Reconnect. + myNet = connectKeepaliveNetwork(lp); + mWiFiNetworkAgent.setStartKeepaliveError(PacketKeepalive.SUCCESS); + + // Check that keepalive slots start from 1 and increment. The first one gets slot 1. + mWiFiNetworkAgent.setExpectedKeepaliveSlot(1); + ka = mCm.startNattKeepalive(myNet, 25, callback, myIPv4, 12345, dstIPv4); + callback.expectStarted(); + + // The second one gets slot 2. + mWiFiNetworkAgent.setExpectedKeepaliveSlot(2); + TestKeepaliveCallback callback2 = new TestKeepaliveCallback(); + PacketKeepalive ka2 = mCm.startNattKeepalive(myNet, 25, callback2, myIPv4, 6789, dstIPv4); + callback2.expectStarted(); + + // Now stop the first one and create a third. This also gets slot 1. + ka.stop(); + callback.expectStopped(); + + mWiFiNetworkAgent.setExpectedKeepaliveSlot(1); + TestKeepaliveCallback callback3 = new TestKeepaliveCallback(); + PacketKeepalive ka3 = mCm.startNattKeepalive(myNet, 25, callback3, myIPv4, 9876, dstIPv4); + callback3.expectStarted(); + + ka2.stop(); + callback2.expectStopped(); + + ka3.stop(); + callback3.expectStopped(); + } } diff --git a/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java index 0f20dde23c0c..f9aa124e2bc4 100644 --- a/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/accounts/AccountManagerServiceTest.java @@ -82,7 +82,7 @@ public class AccountManagerServiceTest extends AndroidTestCase { mAms.addAccountExplicitly(a31, "p31", null); mAms.addAccountExplicitly(a32, "p32", null); - Account[] accounts = mAms.getAccounts(null); + Account[] accounts = mAms.getAccounts(null, mContext.getOpPackageName()); Arrays.sort(accounts, new AccountSorter()); assertEquals(6, accounts.length); assertEquals(a11, accounts[0]); @@ -92,7 +92,7 @@ public class AccountManagerServiceTest extends AndroidTestCase { assertEquals(a22, accounts[4]); assertEquals(a32, accounts[5]); - accounts = mAms.getAccounts("type1" ); + accounts = mAms.getAccounts("type1", mContext.getOpPackageName()); Arrays.sort(accounts, new AccountSorter()); assertEquals(3, accounts.length); assertEquals(a11, accounts[0]); @@ -101,7 +101,7 @@ public class AccountManagerServiceTest extends AndroidTestCase { mAms.removeAccountInternal(a21); - accounts = mAms.getAccounts("type1" ); + accounts = mAms.getAccounts("type1", mContext.getOpPackageName()); Arrays.sort(accounts, new AccountSorter()); assertEquals(2, accounts.length); assertEquals(a11, accounts[0]); diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java index 09e15a885bea..49062d068d8a 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -19,15 +19,19 @@ package com.android.server.usb; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; +import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; +import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.res.Resources; import android.database.ContentObserver; import android.hardware.usb.UsbAccessory; import android.hardware.usb.UsbManager; +import android.hardware.usb.UsbPort; +import android.hardware.usb.UsbPortStatus; import android.os.FileUtils; import android.os.Handler; import android.os.Looper; @@ -105,6 +109,7 @@ public class UsbDeviceManager { private static final int MSG_USER_SWITCHED = 5; private static final int MSG_SET_USB_DATA_UNLOCKED = 6; private static final int MSG_UPDATE_USER_RESTRICTIONS = 7; + private static final int MSG_UPDATE_HOST_STATE = 8; private static final int AUDIO_MODE_SOURCE = 1; @@ -175,6 +180,15 @@ public class UsbDeviceManager { } }; + private final BroadcastReceiver mHostReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + UsbPort port = intent.getParcelableExtra(UsbManager.EXTRA_PORT); + UsbPortStatus status = intent.getParcelableExtra(UsbManager.EXTRA_PORT_STATUS); + mHandler.updateHostState(port, status); + } + }; + public UsbDeviceManager(Context context, UsbAlsaManager alsaManager) { mContext = context; mUsbAlsaManager = alsaManager; @@ -197,6 +211,8 @@ public class UsbDeviceManager { if (secureAdbEnabled && !dataEncrypted) { mDebuggingManager = new UsbDebuggingManager(context); } + mContext.registerReceiver(mHostReceiver, + new IntentFilter(UsbManager.ACTION_USB_PORT_CHANGED)); } private UsbSettingsManager getCurrentSettings() { @@ -217,7 +233,8 @@ public class UsbDeviceManager { final StorageManager storageManager = StorageManager.from(mContext); final StorageVolume primary = storageManager.getPrimaryVolume(); massStorageSupported = primary != null && primary.allowMassStorage(); - mUseUsbNotification = !massStorageSupported; + mUseUsbNotification = !massStorageSupported && mContext.getResources().getBoolean( + com.android.internal.R.bool.config_usbChargingMessage); // make sure the ADB_ENABLED setting value matches the current state try { @@ -299,6 +316,7 @@ public class UsbDeviceManager { // current USB state private boolean mConnected; + private boolean mHostConnected; private boolean mConfigured; private boolean mUsbDataUnlocked; private String mCurrentFunctions; @@ -377,6 +395,11 @@ public class UsbDeviceManager { sendMessageDelayed(msg, (connected == 0) ? UPDATE_DELAY : 0); } + public void updateHostState(UsbPort port, UsbPortStatus status) { + boolean hostConnected = status.getCurrentDataRole() == UsbPort.DATA_ROLE_HOST; + obtainMessage(MSG_UPDATE_HOST_STATE, hostConnected ? 1 :0, 0).sendToTarget(); + } + private boolean waitForState(String state) { // wait for the transition to complete. // give up after 1 second. @@ -394,10 +417,9 @@ public class UsbDeviceManager { private boolean setUsbConfig(String config) { if (DEBUG) Slog.d(TAG, "setUsbConfig(" + config + ")"); // set the new configuration - String oldConfig = SystemProperties.get(USB_CONFIG_PROPERTY); - if (!config.equals(oldConfig)) { - SystemProperties.set(USB_CONFIG_PROPERTY, config); - } + // we always set it due to b/23631400, where adbd was getting killed + // and not restarted due to property timeouts on some devices + SystemProperties.set(USB_CONFIG_PROPERTY, config); return waitForState(config); } @@ -652,6 +674,10 @@ public class UsbDeviceManager { updateUsbFunctions(); } break; + case MSG_UPDATE_HOST_STATE: + mHostConnected = (msg.arg1 == 1); + updateUsbNotification(); + break; case MSG_ENABLE_ADB: setAdbEnabled(msg.arg1 == 1); break; @@ -707,7 +733,7 @@ public class UsbDeviceManager { if (mNotificationManager == null || !mUseUsbNotification) return; int id = 0; Resources r = mContext.getResources(); - if (mConnected) { + if (mConnected || mHostConnected) { if (!mUsbDataUnlocked) { id = com.android.internal.R.string.usb_charging_notification_title; } else if (UsbManager.containsFunction(mCurrentFunctions, diff --git a/services/usb/java/com/android/server/usb/UsbPortManager.java b/services/usb/java/com/android/server/usb/UsbPortManager.java index 52abcfee0260..7f182a4f4ee0 100644 --- a/services/usb/java/com/android/server/usb/UsbPortManager.java +++ b/services/usb/java/com/android/server/usb/UsbPortManager.java @@ -26,8 +26,13 @@ import android.hardware.usb.UsbPort; import android.hardware.usb.UsbPortStatus; import android.os.Handler; import android.os.Message; +import android.os.SystemClock; +import android.os.SystemProperties; import android.os.UEventObserver; import android.os.UserHandle; +import android.system.ErrnoException; +import android.system.Os; +import android.system.OsConstants; import android.util.ArrayMap; import android.util.Log; import android.util.Slog; @@ -89,6 +94,9 @@ public class UsbPortManager { private static final String PORT_DATA_ROLE_HOST = "host"; private static final String PORT_DATA_ROLE_DEVICE = "device"; + private static final String USB_TYPEC_PROP_PREFIX = "sys.usb.typec."; + private static final String USB_TYPEC_STATE = "sys.usb.typec.state"; + // All non-trivial role combinations. private static final int COMBO_SOURCE_HOST = UsbPort.combineRolesAsBit(UsbPort.POWER_ROLE_SOURCE, UsbPort.DATA_ROLE_HOST); @@ -621,16 +629,25 @@ public class UsbPortManager { return 0; } + private static boolean fileIsRootWritable(String path) { + try { + // If the file is user writable, then it is root writable. + return (Os.stat(path).st_mode & OsConstants.S_IWUSR) != 0; + } catch (ErrnoException e) { + return false; + } + } + private static boolean canChangeMode(File portDir) { - return new File(portDir, SYSFS_PORT_MODE).canWrite(); + return fileIsRootWritable(new File(portDir, SYSFS_PORT_MODE).getPath()); } private static boolean canChangePowerRole(File portDir) { - return new File(portDir, SYSFS_PORT_POWER_ROLE).canWrite(); + return fileIsRootWritable(new File(portDir, SYSFS_PORT_POWER_ROLE).getPath()); } private static boolean canChangeDataRole(File portDir) { - return new File(portDir, SYSFS_PORT_DATA_ROLE).canWrite(); + return fileIsRootWritable(new File(portDir, SYSFS_PORT_DATA_ROLE).getPath()); } private static String readFile(File dir, String filename) { @@ -642,16 +659,29 @@ public class UsbPortManager { } } - private static boolean writeFile(File dir, String filename, String contents) { - final File file = new File(dir, filename); - try { - try (FileWriter writer = new FileWriter(file)) { - writer.write(contents); - } - return true; - } catch (IOException ex) { - return false; + private static boolean waitForState(String property, String state) { + // wait for the transition to complete. + // give up after 5 seconds. + // 5 seconds is probably too long, but we have seen hardware that takes + // over 3 seconds to change states. + String value = null; + for (int i = 0; i < 100; i++) { + // State transition is done when property is set to the new configuration + value = SystemProperties.get(property); + if (state.equals(value)) return true; + SystemClock.sleep(50); } + Slog.e(TAG, "waitForState(" + state + ") for " + property + " FAILED: got " + value); + return false; + } + + private static String propertyFromFilename(String filename) { + return USB_TYPEC_PROP_PREFIX + filename; + } + + private static boolean writeFile(File dir, String filename, String contents) { + SystemProperties.set(propertyFromFilename(filename), contents); + return waitForState(USB_TYPEC_STATE, contents); } private static void logAndPrint(int priority, IndentingPrintWriter pw, String msg) { diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java index 0a1dbf6215db..65117055045c 100644 --- a/telecomm/java/android/telecom/Call.java +++ b/telecomm/java/android/telecom/Call.java @@ -206,8 +206,14 @@ public final class Call { */ public static final int CAPABILITY_CAN_PAUSE_VIDEO = 0x00100000; + /** + * Call sends responses through connection. + * @hide + */ + public static final int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION = 0x00400000; + //****************************************************************************************** - // Next CAPABILITY value: 0x00004000 + // Next CAPABILITY value: 0x00800000 //****************************************************************************************** /** @@ -970,7 +976,6 @@ public final class Call { unregisterCallback(listener); } - /** {@hide} */ Call(Phone phone, String telecomCallId, InCallAdapter inCallAdapter) { mPhone = phone; @@ -980,6 +985,14 @@ public final class Call { } /** {@hide} */ + Call(Phone phone, String telecomCallId, InCallAdapter inCallAdapter, int state) { + mPhone = phone; + mTelecomCallId = telecomCallId; + mInCallAdapter = inCallAdapter; + mState = state; + } + + /** {@hide} */ final String internalGetCallId() { return mTelecomCallId; } diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java index 7b277c5dcc94..430760a892b7 100644 --- a/telecomm/java/android/telecom/Connection.java +++ b/telecomm/java/android/telecom/Connection.java @@ -248,8 +248,15 @@ public abstract class Connection extends Conferenceable { */ public static final int CAPABILITY_CONFERENCE_HAS_NO_CHILDREN = 0x00200000; + /** + * Indicates that the connection itself wants to handle any sort of reply response, rather than + * relying on SMS. + * @hide + */ + public static final int CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION = 0x00400000; + //********************************************************************************************** - // Next CAPABILITY value: 0x00400000 + // Next CAPABILITY value: 0x00800000 //********************************************************************************************** /** @@ -388,6 +395,10 @@ public abstract class Connection extends Conferenceable { if (can(capabilities, CAPABILITY_CONFERENCE_HAS_NO_CHILDREN)) { builder.append(" CAPABILITY_SINGLE_PARTY_CONFERENCE"); } + if (can(capabilities, CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION)) { + builder.append(" CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION"); + } + builder.append("]"); return builder.toString(); } @@ -1763,6 +1774,13 @@ public abstract class Connection extends Conferenceable { public void onReject() {} /** + * Notifies ths Connection of a request reject with a message. + * + * @hide + */ + public void onReject(String replyMessage) {} + + /** * Notifies this Connection whether the user wishes to proceed with the post-dial DTMF codes. */ public void onPostDialContinue(boolean proceed) {} diff --git a/telecomm/java/android/telecom/ConnectionService.java b/telecomm/java/android/telecom/ConnectionService.java index 96f44b9e421a..4e330bdbf67d 100644 --- a/telecomm/java/android/telecom/ConnectionService.java +++ b/telecomm/java/android/telecom/ConnectionService.java @@ -101,6 +101,7 @@ public abstract class ConnectionService extends Service { private static final int MSG_ANSWER_VIDEO = 17; private static final int MSG_MERGE_CONFERENCE = 18; private static final int MSG_SWAP_CONFERENCE = 19; + private static final int MSG_REJECT_WITH_MESSAGE = 20; private static Connection sNullConnection; @@ -166,6 +167,14 @@ public abstract class ConnectionService extends Service { } @Override + public void rejectWithMessage(String callId, String message) { + SomeArgs args = SomeArgs.obtain(); + args.arg1 = callId; + args.arg2 = message; + mHandler.obtainMessage(MSG_REJECT_WITH_MESSAGE, args).sendToTarget(); + } + + @Override public void disconnect(String callId) { mHandler.obtainMessage(MSG_DISCONNECT, callId).sendToTarget(); } @@ -296,6 +305,15 @@ public abstract class ConnectionService extends Service { case MSG_REJECT: reject((String) msg.obj); break; + case MSG_REJECT_WITH_MESSAGE: { + SomeArgs args = (SomeArgs) msg.obj; + try { + reject((String) args.arg1, (String) args.arg2); + } finally { + args.recycle(); + } + break; + } case MSG_DISCONNECT: disconnect((String) msg.obj); break; @@ -656,6 +674,9 @@ public abstract class ConnectionService extends Service { connection.getDisconnectCause(), createIdList(connection.getConferenceables()), connection.getExtras())); + if (isUnknown) { + triggerConferenceRecalculate(); + } } private void abort(String callId) { @@ -678,6 +699,11 @@ public abstract class ConnectionService extends Service { findConnectionForAction(callId, "reject").onReject(); } + private void reject(String callId, String rejectWithMessage) { + Log.d(this, "reject %s with message", callId); + findConnectionForAction(callId, "reject").onReject(rejectWithMessage); + } + private void disconnect(String callId) { Log.d(this, "disconnect %s", callId); if (mConnectionById.containsKey(callId)) { @@ -1016,6 +1042,16 @@ public abstract class ConnectionService extends Service { } /** + * Trigger recalculate functinality for conference calls. This is used when a Telephony + * Connection is part of a conference controller but is not yet added to Connection + * Service and hence cannot be added to the conference call. + * + * @hide + */ + public void triggerConferenceRecalculate() { + } + + /** * Create a {@code Connection} given an outgoing request. This is used to initiate new * outgoing calls. * diff --git a/telecomm/java/android/telecom/Phone.java b/telecomm/java/android/telecom/Phone.java index 8eb091b732af..47154da242f4 100644 --- a/telecomm/java/android/telecom/Phone.java +++ b/telecomm/java/android/telecom/Phone.java @@ -122,7 +122,8 @@ public final class Phone { } final void internalAddCall(ParcelableCall parcelableCall) { - Call call = new Call(this, parcelableCall.getId(), mInCallAdapter); + Call call = new Call(this, parcelableCall.getId(), mInCallAdapter, + parcelableCall.getState()); mCallByTelecomCallId.put(parcelableCall.getId(), call); mCalls.add(call); checkCallTree(parcelableCall); diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java index 067e7342cc28..b07b018f5a19 100644 --- a/telecomm/java/android/telecom/TelecomManager.java +++ b/telecomm/java/android/telecom/TelecomManager.java @@ -116,6 +116,15 @@ public class TelecomManager { "android.telecom.action.PHONE_ACCOUNT_REGISTERED"; /** + * The {@link android.content.Intent} action used indicate that a phone account was + * just unregistered. + * @hide + */ + @SystemApi + public static final String ACTION_PHONE_ACCOUNT_UNREGISTERED = + "android.telecom.action.PHONE_ACCOUNT_UNREGISTERED"; + + /** * Activity action: Shows a dialog asking the user whether or not they want to replace the * current default Dialer with the one specified in * {@link #EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME}. @@ -367,6 +376,48 @@ public class TelecomManager { "android.telecom.intent.extra.TTY_PREFERRED"; /** + * Broadcast intent action for letting custom component know to show the missed call + * notification. + * @hide + */ + @SystemApi + public static final String ACTION_SHOW_MISSED_CALLS_NOTIFICATION = + "android.telecom.action.SHOW_MISSED_CALLS_NOTIFICATION"; + + /** + * The number of calls associated with the notification. + * @hide + */ + @SystemApi + public static final String EXTRA_NOTIFICATION_COUNT = + "android.telecom.extra.NOTIFICATION_COUNT"; + + /** + * The number associated with the missed calls. This number is only relevant + * when EXTRA_NOTIFICATION_COUNT is 1. + * @hide + */ + @SystemApi + public static final String EXTRA_NOTIFICATION_PHONE_NUMBER = + "android.telecom.extra.NOTIFICATION_PHONE_NUMBER"; + + /** + * The intent to clear missed calls. + * @hide + */ + @SystemApi + public static final String EXTRA_CLEAR_MISSED_CALLS_INTENT = + "android.telecom.extra.CLEAR_MISSED_CALLS_INTENT"; + + /** + * The intent to call back a missed call. + * @hide + */ + @SystemApi + public static final String EXTRA_CALL_BACK_INTENT = + "android.telecom.extra.CALL_BACK_INTENT"; + + /** * The following 4 constants define how properties such as phone numbers and names are * displayed to the user. */ diff --git a/telecomm/java/com/android/internal/telecom/IConnectionService.aidl b/telecomm/java/com/android/internal/telecom/IConnectionService.aidl index c2e8530b2dbd..dd253cfdfbe4 100644 --- a/telecomm/java/com/android/internal/telecom/IConnectionService.aidl +++ b/telecomm/java/com/android/internal/telecom/IConnectionService.aidl @@ -50,6 +50,8 @@ oneway interface IConnectionService { void reject(String callId); + void rejectWithMessage(String callId, String message); + void disconnect(String callId); void hold(String callId); diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index e9c41a1682da..aa4da4b1b690 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -78,6 +78,15 @@ public class CarrierConfigManager { public static final String KEY_WORLD_PHONE_BOOL = "world_phone_bool"; /** + * Flag to require or skip entitlement checks. + * If true, entitlement checks will be executed if device has been configured for it, + * If false, entitlement checks will be skipped. + * @hide + */ + public static final String + KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL = "require_entitlement_checks_bool"; + + /** * If true, enable vibration (haptic feedback) for key presses in the EmergencyDialer activity. * The pattern is set on a per-platform basis using config_virtualKeyVibePattern. To be * consistent with the regular Dialer, this value should agree with the corresponding values @@ -259,6 +268,35 @@ public class CarrierConfigManager { = "carrier_allow_turnoff_ims_bool"; /** + * Flag specifying whether IMS instant lettering is available for the carrier. {@code True} if + * instant lettering is available for the carrier, {@code false} otherwise. + * @hide + */ + public static final String KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL = + "carrier_instant_lettering_available_bool"; + + /** + * When IMS instant lettering is available for a carrier (see + * {@link #KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL}), determines the list of characters + * which may not be contained in messages. Should be specified as a regular expression suitable + * for use with {@link String#matches(String)}. + * @hide + */ + public static final String KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING = + "carrier_instant_lettering_invalid_chars_string"; + + /** + * When IMS instant lettering is available for a carrier (see + * {@link #KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL}), determines a list of characters which + * must be escaped with a backslash '\' character. Should be specified as a string containing + * the characters to be escaped. For example to escape quote and backslash the string would be + * a quote and a backslash. + * @hide + */ + public static final String KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING = + "carrier_instant_lettering_escaped_chars_string"; + + /** * If Voice Radio Technology is RIL_RADIO_TECHNOLOGY_LTE:14 or RIL_RADIO_TECHNOLOGY_UNKNOWN:0 * this is the value that should be used instead. A configuration value of * RIL_RADIO_TECHNOLOGY_UNKNOWN:0 means there is no replacement value and that the default @@ -281,6 +319,14 @@ public class CarrierConfigManager { public static final String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL = "carrier_force_disable_etws_cmas_test_bool"; + /** + * The default flag specifying whether "Turn on Notifications" option will be always shown in + * Settings->More->Emergency broadcasts menu regardless developer options is turned on or not. + * @hide + */ + public static final String KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL = + "always_show_emergency_alert_onoff_bool"; + /* The following 3 fields are related to carrier visual voicemail. */ /** @@ -334,6 +380,47 @@ public class CarrierConfigManager { "ci_action_on_sys_update_extra_val_string"; /** + * Specifies the amount of gap to be added in millis between DTMF tones. When a non-zero value + * is specified, the UE shall wait for the specified amount of time before it sends out + * successive DTMF tones on the network. + * @hide + */ + public static final String KEY_GSM_DTMF_TONE_DELAY_INT = "gsm_dtmf_tone_delay_int"; + + /** + * Specifies the amount of gap to be added in millis between DTMF tones. When a non-zero value + * is specified, the UE shall wait for the specified amount of time before it sends out + * successive DTMF tones on the network. + * @hide + */ + public static final String KEY_IMS_DTMF_TONE_DELAY_INT = "ims_dtmf_tone_delay_int"; + + /** + * Determines whether conference calls are supported by a carrier. When {@code true}, + * conference calling is supported, {@code false otherwise}. + * @hide + */ + public static final String KEY_SUPPORT_CONFERENCE_CALL_BOOL = "support_conference_call_bool"; + + /** + * Determine whether user can toggle Enhanced 4G LTE Mode in Settings. + * @hide + */ + public static final String KEY_EDITABLE_ENHANCED_4G_LTE_BOOL = "editable_enhanced_4g_lte_bool"; + + /** + * Determine whether IMS apn can be shown. + * @hide + */ + public static final String KEY_HIDE_IMS_APN_BOOL = "hide_ims_apn_bool"; + + /** + * Determine whether preferred network type can be shown. + * @hide + */ + public static final String KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL = "hide_preferred_network_type_bool"; + + /** * If this is true, the SIM card (through Customer Service Profile EF file) will be able to * prevent manual operator selection. If false, this SIM setting will be ignored and manual * operator selection will always be available. See CPHS4_2.WW6, CPHS B.4.7.1 for more @@ -375,6 +462,15 @@ public class CarrierConfigManager { public static final String KEY_MMS_UA_PROF_URL_STRING = "uaProfUrl"; public static final String KEY_MMS_USER_AGENT_STRING = "userAgent"; + /** + * Determines whether the carrier supports making non-emergency phone calls while the phone is + * in emergency callback mode. Default value is {@code true}, meaning that non-emergency calls + * are allowed in emergency callback mode. + * @hide + */ + public static final String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL = + "allow_non_emergency_calls_in_ecm_bool"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -393,6 +489,9 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL, true); + sDefaults.putBoolean(KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL, false); + sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING, ""); + sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING, ""); sDefaults.putBoolean(KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL, false); sDefaults.putBoolean(KEY_DTMF_TYPE_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL, true); @@ -413,6 +512,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL, false); sDefaults.putBoolean(KEY_VOICE_PRIVACY_DISABLE_UI_BOOL, false); sDefaults.putBoolean(KEY_WORLD_PHONE_BOOL, false); + sDefaults.putBoolean(KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true); sDefaults.putInt(KEY_VOLTE_REPLACEMENT_RAT_INT, 0); sDefaults.putString(KEY_DEFAULT_SIM_CALL_MANAGER_STRING, ""); sDefaults.putString(KEY_VVM_DESTINATION_NUMBER_STRING, ""); @@ -424,12 +524,19 @@ public class CarrierConfigManager { sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING, ""); sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING, ""); sDefaults.putBoolean(KEY_CSP_ENABLED_BOOL, false); + sDefaults.putBoolean(KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false); sDefaults.putStringArray(KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putBoolean(KEY_FORCE_HOME_NETWORK_BOOL, false); + sDefaults.putInt(KEY_GSM_DTMF_TONE_DELAY_INT, 0); + sDefaults.putInt(KEY_IMS_DTMF_TONE_DELAY_INT, 0); + sDefaults.putBoolean(KEY_SUPPORT_CONFERENCE_CALL_BOOL, true); + sDefaults.putBoolean(KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true); + sDefaults.putBoolean(KEY_HIDE_IMS_APN_BOOL, false); + sDefaults.putBoolean(KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL, false); // MMS defaults sDefaults.putBoolean(KEY_MMS_ALIAS_ENABLED_BOOL, false); @@ -463,6 +570,7 @@ public class CarrierConfigManager { sDefaults.putString(KEY_MMS_UA_PROF_TAG_NAME_STRING, "x-wap-profile"); sDefaults.putString(KEY_MMS_UA_PROF_URL_STRING, ""); sDefaults.putString(KEY_MMS_USER_AGENT_STRING, ""); + sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true); } /** diff --git a/telephony/java/android/telephony/PhoneNumberUtils.java b/telephony/java/android/telephony/PhoneNumberUtils.java index 79146f38c230..b430340a8963 100644 --- a/telephony/java/android/telephony/PhoneNumberUtils.java +++ b/telephony/java/android/telephony/PhoneNumberUtils.java @@ -1135,6 +1135,8 @@ public class PhoneNumberUtils "VI", // U.S. Virgin Islands }; + private static final String KOREA_ISO_COUNTRY_CODE = "KR"; + /** * Breaks the given number down and formats it according to the rules * for the country the number is from. @@ -1455,7 +1457,19 @@ public class PhoneNumberUtils String result = null; try { PhoneNumber pn = util.parseAndKeepRawInput(phoneNumber, defaultCountryIso); - result = util.formatInOriginalFormat(pn, defaultCountryIso); + /** + * Need to reformat any local Korean phone numbers (when the user is in Korea) with + * country code to corresponding national format which would replace the leading + * +82 with 0. + */ + if (KOREA_ISO_COUNTRY_CODE.equals(defaultCountryIso) && + (pn.getCountryCode() == util.getCountryCodeForRegion(KOREA_ISO_COUNTRY_CODE)) && + (pn.getCountryCodeSource() == + PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN)) { + result = util.format(pn, PhoneNumberUtil.PhoneNumberFormat.NATIONAL); + } else { + result = util.formatInOriginalFormat(pn, defaultCountryIso); + } } catch (NumberParseException e) { } return result; diff --git a/telephony/java/android/telephony/RadioAccessFamily.java b/telephony/java/android/telephony/RadioAccessFamily.java index 0c5c5577d511..2bfaf1bfd86d 100644 --- a/telephony/java/android/telephony/RadioAccessFamily.java +++ b/telephony/java/android/telephony/RadioAccessFamily.java @@ -185,6 +185,36 @@ public class RadioAccessFamily implements Parcelable { case RILConstants.NETWORK_MODE_GLOBAL: raf = GSM | WCDMA | CDMA | EVDO; break; + case RILConstants.NETWORK_MODE_TDSCDMA_ONLY: + raf = RAF_TD_SCDMA; + break; + case RILConstants.NETWORK_MODE_TDSCDMA_WCDMA: + raf = RAF_TD_SCDMA | WCDMA; + break; + case RILConstants.NETWORK_MODE_LTE_TDSCDMA: + raf = RAF_LTE | RAF_TD_SCDMA; + break; + case RILConstants.NETWORK_MODE_TDSCDMA_GSM: + raf = RAF_TD_SCDMA | GSM; + break; + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: + raf = RAF_LTE | RAF_TD_SCDMA | GSM; + break; + case RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA: + raf = RAF_TD_SCDMA | GSM | WCDMA; + break; + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA: + raf = RAF_LTE | RAF_TD_SCDMA | WCDMA; + break; + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: + raf = RAF_LTE | RAF_TD_SCDMA | GSM | WCDMA; + break; + case RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + raf = RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; + break; + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: + raf = RAF_LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA; + break; default: raf = RAF_UNKNOWN; break; @@ -248,6 +278,36 @@ public class RadioAccessFamily implements Parcelable { case (GSM | WCDMA | CDMA | EVDO): type = RILConstants.NETWORK_MODE_GLOBAL; break; + case RAF_TD_SCDMA: + type = RILConstants.NETWORK_MODE_TDSCDMA_ONLY; + break; + case (RAF_TD_SCDMA | WCDMA): + type = RILConstants.NETWORK_MODE_TDSCDMA_WCDMA; + break; + case (RAF_LTE | RAF_TD_SCDMA): + type = RILConstants.NETWORK_MODE_LTE_TDSCDMA; + break; + case (RAF_TD_SCDMA | GSM): + type = RILConstants.NETWORK_MODE_TDSCDMA_GSM; + break; + case (RAF_LTE | RAF_TD_SCDMA | GSM): + type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM; + break; + case (RAF_TD_SCDMA | GSM | WCDMA): + type = RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA; + break; + case (RAF_LTE | RAF_TD_SCDMA | WCDMA): + type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA; + break; + case (RAF_LTE | RAF_TD_SCDMA | GSM | WCDMA): + type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA; + break; + case (RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA): + type = RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; + break; + case (RAF_LTE | RAF_TD_SCDMA | RAF_LTE | CDMA | EVDO | GSM | WCDMA): + type = RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA; + break; default: type = RILConstants.PREFERRED_NETWORK_MODE ; break; diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 80515cf7142b..13374879f09b 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -731,6 +731,9 @@ public class ServiceState implements Parcelable { case RIL_RADIO_TECHNOLOGY_IWLAN: rtString = "IWLAN"; break; + case RIL_RADIO_TECHNOLOGY_TD_SCDMA: + rtString = "TD-SCDMA"; + break; default: rtString = "Unexpected"; Rlog.w(LOG_TAG, "Unexpected radioTechnology=" + rt); @@ -1068,6 +1071,8 @@ public class ServiceState implements Parcelable { return TelephonyManager.NETWORK_TYPE_HSPAP; case ServiceState.RIL_RADIO_TECHNOLOGY_GSM: return TelephonyManager.NETWORK_TYPE_GSM; + case ServiceState.RIL_RADIO_TECHNOLOGY_TD_SCDMA: + return TelephonyManager.NETWORK_TYPE_TD_SCDMA; case ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN: return TelephonyManager.NETWORK_TYPE_IWLAN; default: diff --git a/telephony/java/android/telephony/SignalStrength.java b/telephony/java/android/telephony/SignalStrength.java index f02d1096fd28..f535e5d3f945 100644 --- a/telephony/java/android/telephony/SignalStrength.java +++ b/telephony/java/android/telephony/SignalStrength.java @@ -68,6 +68,7 @@ public class SignalStrength implements Parcelable { private int mLteRsrq; private int mLteRssnr; private int mLteCqi; + private int mTdScdmaRscp; private boolean isGsm; // This value is set by the ServiceStateTracker onSignalStrengthResult @@ -107,6 +108,7 @@ public class SignalStrength implements Parcelable { mLteRsrq = INVALID; mLteRssnr = INVALID; mLteCqi = INVALID; + mTdScdmaRscp = INVALID; isGsm = true; } @@ -131,6 +133,7 @@ public class SignalStrength implements Parcelable { mLteRsrq = INVALID; mLteRssnr = INVALID; mLteCqi = INVALID; + mTdScdmaRscp = INVALID; isGsm = gsmFlag; } @@ -143,6 +146,22 @@ public class SignalStrength implements Parcelable { int cdmaDbm, int cdmaEcio, int evdoDbm, int evdoEcio, int evdoSnr, int lteSignalStrength, int lteRsrp, int lteRsrq, int lteRssnr, int lteCqi, + int tdScdmaRscp, boolean gsmFlag) { + initialize(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio, + evdoDbm, evdoEcio, evdoSnr, lteSignalStrength, lteRsrp, + lteRsrq, lteRssnr, lteCqi, gsmFlag); + mTdScdmaRscp = tdScdmaRscp; + } + + /** + * Constructor + * + * @hide + */ + public SignalStrength(int gsmSignalStrength, int gsmBitErrorRate, + int cdmaDbm, int cdmaEcio, + int evdoDbm, int evdoEcio, int evdoSnr, + int lteSignalStrength, int lteRsrp, int lteRsrq, int lteRssnr, int lteCqi, boolean gsmFlag) { initialize(gsmSignalStrength, gsmBitErrorRate, cdmaDbm, cdmaEcio, evdoDbm, evdoEcio, evdoSnr, lteSignalStrength, lteRsrp, @@ -233,6 +252,7 @@ public class SignalStrength implements Parcelable { mLteRsrq = lteRsrq; mLteRssnr = lteRssnr; mLteCqi = lteCqi; + mTdScdmaRscp = INVALID; isGsm = gsm; if (DBG) log("initialize: " + toString()); } @@ -253,6 +273,7 @@ public class SignalStrength implements Parcelable { mLteRsrq = s.mLteRsrq; mLteRssnr = s.mLteRssnr; mLteCqi = s.mLteCqi; + mTdScdmaRscp = s.mTdScdmaRscp; isGsm = s.isGsm; } @@ -276,6 +297,7 @@ public class SignalStrength implements Parcelable { mLteRsrq = in.readInt(); mLteRssnr = in.readInt(); mLteCqi = in.readInt(); + mTdScdmaRscp = in.readInt(); isGsm = (in.readInt() != 0); } @@ -302,7 +324,7 @@ public class SignalStrength implements Parcelable { ss.mLteRsrq = in.readInt(); ss.mLteRssnr = in.readInt(); ss.mLteCqi = in.readInt(); - + ss.mTdScdmaRscp = in.readInt(); return ss; } @@ -322,6 +344,7 @@ public class SignalStrength implements Parcelable { out.writeInt(mLteRsrq); out.writeInt(mLteRssnr); out.writeInt(mLteCqi); + out.writeInt(mTdScdmaRscp); out.writeInt(isGsm ? 1 : 0); } @@ -377,6 +400,9 @@ public class SignalStrength implements Parcelable { mLteRsrq = ((mLteRsrq >= 3) && (mLteRsrq <= 20)) ? -mLteRsrq : SignalStrength.INVALID; mLteRssnr = ((mLteRssnr >= -200) && (mLteRssnr <= 300)) ? mLteRssnr : SignalStrength.INVALID; + + mTdScdmaRscp = ((mTdScdmaRscp >= 25) && (mTdScdmaRscp <= 120)) + ? -mTdScdmaRscp : SignalStrength.INVALID; // Cqi no change if (DBG) log("Signal after validate=" + this); } @@ -477,12 +503,15 @@ public class SignalStrength implements Parcelable { * while 4 represents a very strong signal strength. */ public int getLevel() { - int level; + int level = 0; if (isGsm) { level = getLteLevel(); if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { - level = getGsmLevel(); + level = getTdScdmaLevel(); + if (level == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { + level = getGsmLevel(); + } } } else { int cdmaLevel = getCdmaLevel(); @@ -508,10 +537,14 @@ public class SignalStrength implements Parcelable { * @hide */ public int getAsuLevel() { - int asuLevel; + int asuLevel = 0; if (isGsm) { if (getLteLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { - asuLevel = getGsmAsuLevel(); + if (getTdScdmaLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { + asuLevel = getGsmAsuLevel(); + } else { + asuLevel = getTdScdmaAsuLevel(); + } } else { asuLevel = getLteAsuLevel(); } @@ -539,12 +572,16 @@ public class SignalStrength implements Parcelable { * @hide */ public int getDbm() { - int dBm; + int dBm = INVALID; if(isGsm()) { dBm = getLteDbm(); if (dBm == INVALID) { - dBm = getGsmDbm(); + if (getTdScdmaLevel() == SIGNAL_STRENGTH_NONE_OR_UNKNOWN) { + dBm = getGsmDbm(); + } else { + dBm = getTdScdmaDbm(); + } } } else { int cdmaDbm = getCdmaDbm(); @@ -849,6 +886,54 @@ public class SignalStrength implements Parcelable { } /** + * @return get TD_SCDMA dbm + * + * @hide + */ + public int getTdScdmaDbm() { + return this.mTdScdmaRscp; + } + + /** + * Get TD-SCDMA as level 0..4 + * Range : 25 to 120 + * INT_MAX: 0x7FFFFFFF denotes invalid value + * Reference: 3GPP TS 25.123, section 9.1.1.1 + * + * @hide + */ + public int getTdScdmaLevel() { + final int tdScdmaDbm = getTdScdmaDbm(); + int level; + + if ((tdScdmaDbm > -25) || (tdScdmaDbm == SignalStrength.INVALID)) + level = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; + else if (tdScdmaDbm >= -49) level = SIGNAL_STRENGTH_GREAT; + else if (tdScdmaDbm >= -73) level = SIGNAL_STRENGTH_GOOD; + else if (tdScdmaDbm >= -97) level = SIGNAL_STRENGTH_MODERATE; + else if (tdScdmaDbm >= -120) level = SIGNAL_STRENGTH_POOR; + else level = SIGNAL_STRENGTH_NONE_OR_UNKNOWN; + + if (DBG) log("getTdScdmaLevel = " + level); + return level; + } + + /** + * Get the TD-SCDMA signal level as an asu value. + * + * @hide + */ + public int getTdScdmaAsuLevel() { + final int tdScdmaDbm = getTdScdmaDbm(); + int tdScdmaAsuLevel; + + if (tdScdmaDbm == INVALID) tdScdmaAsuLevel = 255; + else tdScdmaAsuLevel = tdScdmaDbm + 120; + if (DBG) log("TD-SCDMA Asu level: " + tdScdmaAsuLevel); + return tdScdmaAsuLevel; + } + + /** * @return hash code */ @Override @@ -860,7 +945,7 @@ public class SignalStrength implements Parcelable { + (mEvdoDbm * primeNum) + (mEvdoEcio * primeNum) + (mEvdoSnr * primeNum) + (mLteSignalStrength * primeNum) + (mLteRsrp * primeNum) + (mLteRsrq * primeNum) + (mLteRssnr * primeNum) + (mLteCqi * primeNum) - + (isGsm ? 1 : 0)); + + (mTdScdmaRscp * primeNum) + (isGsm ? 1 : 0)); } /** @@ -892,6 +977,7 @@ public class SignalStrength implements Parcelable { && mLteRsrq == s.mLteRsrq && mLteRssnr == s.mLteRssnr && mLteCqi == s.mLteCqi + && mTdScdmaRscp == s.mTdScdmaRscp && isGsm == s.isGsm); } @@ -913,6 +999,7 @@ public class SignalStrength implements Parcelable { + " " + mLteRsrq + " " + mLteRssnr + " " + mLteCqi + + " " + mTdScdmaRscp + " " + (isGsm ? "gsm|lte" : "cdma")); } @@ -935,6 +1022,7 @@ public class SignalStrength implements Parcelable { mLteRsrq = m.getInt("LteRsrq"); mLteRssnr = m.getInt("LteRssnr"); mLteCqi = m.getInt("LteCqi"); + mTdScdmaRscp = m.getInt("TdScdma"); isGsm = m.getBoolean("isGsm"); } @@ -957,6 +1045,7 @@ public class SignalStrength implements Parcelable { m.putInt("LteRsrq", mLteRsrq); m.putInt("LteRssnr", mLteRssnr); m.putInt("LteCqi", mLteCqi); + m.putInt("TdScdma", mTdScdmaRscp); m.putBoolean("isGsm", Boolean.valueOf(isGsm)); } diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 24151658675f..d22727d14829 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -602,6 +602,46 @@ public class TelephonyManager { public static final String EXTRA_DATA_FAILURE_CAUSE = PhoneConstants.DATA_FAILURE_CAUSE_KEY; /** + * Broadcast intent action for letting custom component know to show voicemail notification. + * @hide + */ + @SystemApi + public static final String ACTION_SHOW_VOICEMAIL_NOTIFICATION = + "android.telephony.action.SHOW_VOICEMAIL_NOTIFICATION"; + + /** + * The number of voice messages associated with the notification. + * @hide + */ + @SystemApi + public static final String EXTRA_NOTIFICATION_COUNT = + "android.telephony.extra.NOTIFICATION_COUNT"; + + /** + * The voicemail number. + * @hide + */ + @SystemApi + public static final String EXTRA_VOICEMAIL_NUMBER = + "android.telephony.extra.VOICEMAIL_NUMBER"; + + /** + * The intent to call voicemail. + * @hide + */ + @SystemApi + public static final String EXTRA_CALL_VOICEMAIL_INTENT = + "android.telephony.extra.CALL_VOICEMAIL_INTENT"; + + /** + * The intent to launch voicemail settings. + * @hide + */ + @SystemApi + public static final String EXTRA_LAUNCH_VOICEMAIL_SETTINGS_INTENT = + "android.telephony.extra.LAUNCH_VOICEMAIL_SETTINGS_INTENT"; + + /** * Response codes for sim activation. Activation completed successfully. * @hide */ @@ -1059,11 +1099,21 @@ public class TelephonyManager { case RILConstants.NETWORK_MODE_LTE_GSM_WCDMA: case RILConstants.NETWORK_MODE_LTE_WCDMA: case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA: + case RILConstants.NETWORK_MODE_TDSCDMA_ONLY: + case RILConstants.NETWORK_MODE_TDSCDMA_WCDMA: + case RILConstants.NETWORK_MODE_LTE_TDSCDMA: + case RILConstants.NETWORK_MODE_TDSCDMA_GSM: + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM: + case RILConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA: + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA: + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA: + case RILConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: return PhoneConstants.PHONE_TYPE_GSM; // Use CDMA Phone for the global mode including CDMA case RILConstants.NETWORK_MODE_GLOBAL: case RILConstants.NETWORK_MODE_LTE_CDMA_EVDO: + case RILConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA: return PhoneConstants.PHONE_TYPE_CDMA; case RILConstants.NETWORK_MODE_LTE_ONLY: @@ -3561,11 +3611,12 @@ public class TelephonyManager { * * @hide */ - public boolean setNetworkSelectionModeManual(int subId, OperatorInfo operator) { + public boolean setNetworkSelectionModeManual(int subId, OperatorInfo operator, + boolean persistSelection) { try { ITelephony telephony = getITelephony(); if (telephony != null) - return telephony.setNetworkSelectionModeManual(subId, operator); + return telephony.setNetworkSelectionModeManual(subId, operator, persistSelection); } catch (RemoteException ex) { Rlog.e(TAG, "setNetworkSelectionModeManual RemoteException", ex); } catch (NullPointerException ex) { @@ -4352,13 +4403,13 @@ public class TelephonyManager { } } - /** - * Returns the Status of Volte - *@hide - */ - public boolean isVolteEnabled() { + /** + * Returns the Status of Volte + * @hide + */ + public boolean isVolteAvailable() { try { - return getITelephony().isVolteEnabled(); + return getITelephony().isVolteAvailable(); } catch (RemoteException ex) { return false; } catch (NullPointerException ex) { @@ -4366,13 +4417,27 @@ public class TelephonyManager { } } - /** - * Returns the Status of Wi-Fi Calling - *@hide - */ - public boolean isWifiCallingEnabled() { + /** + * Returns the Status of video telephony (VT) + * @hide + */ + public boolean isVideoTelephonyAvailable() { + try { + return getITelephony().isVideoTelephonyAvailable(); + } catch (RemoteException ex) { + return false; + } catch (NullPointerException ex) { + return false; + } + } + + /** + * Returns the Status of Wi-Fi Calling + * @hide + */ + public boolean isWifiCallingAvailable() { try { - return getITelephony().isWifiCallingEnabled(); + return getITelephony().isWifiCallingAvailable(); } catch (RemoteException ex) { return false; } catch (NullPointerException ex) { diff --git a/telephony/java/com/android/ims/ImsCallProfile.java b/telephony/java/com/android/ims/ImsCallProfile.java index 2c4354b953df..f263b4da7b29 100644 --- a/telephony/java/com/android/ims/ImsCallProfile.java +++ b/telephony/java/com/android/ims/ImsCallProfile.java @@ -174,11 +174,19 @@ public class ImsCallProfile implements Parcelable { * cna : Calling name * ussd : For network-initiated USSD, MT only * remote_uri : Connected user identity (it can be used for the conference) + * ChildNum: Child number info. + * Codec: Codec info. + * DisplayText: Display text for the call. + * AdditionalCallInfo: Additional call info. */ public static final String EXTRA_OI = "oi"; public static final String EXTRA_CNA = "cna"; public static final String EXTRA_USSD = "ussd"; public static final String EXTRA_REMOTE_URI = "remote_uri"; + public static final String EXTRA_CHILD_NUMBER = "ChildNum"; + public static final String EXTRA_CODEC = "Codec"; + public static final String EXTRA_DISPLAY_TEXT = "DisplayText"; + public static final String EXTRA_ADDITIONAL_CALL_INFO = "AdditionalCallInfo"; public int mServiceType; public int mCallType; diff --git a/telephony/java/com/android/ims/ImsReasonInfo.java b/telephony/java/com/android/ims/ImsReasonInfo.java index 96289158cc05..2769a2b27968 100644 --- a/telephony/java/com/android/ims/ImsReasonInfo.java +++ b/telephony/java/com/android/ims/ImsReasonInfo.java @@ -99,6 +99,9 @@ public class ImsReasonInfo implements Parcelable { // MT : No action from user after alerting the call public static final int CODE_TIMEOUT_NO_ANSWER_CALL_UPDATE = 203; + //Call failures for FDN + public static final int CODE_FDN_BLOCKED = 241; + /** * STATUSCODE (SIP response code) (IMS -> Telephony) */ @@ -227,6 +230,12 @@ public class ImsReasonInfo implements Parcelable { public static final int CODE_CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE = 1100; /** + * MT call has ended due to a release from the network + * because the call was answered elsewhere + */ + public static final int CODE_ANSWERED_ELSEWHERE = 1014; + + /** * Network string error messages. * mExtraMessage may have these values. */ diff --git a/telephony/java/com/android/ims/ImsSsInfo.java b/telephony/java/com/android/ims/ImsSsInfo.java index dbde1c62c515..7acc3bfd45c9 100644 --- a/telephony/java/com/android/ims/ImsSsInfo.java +++ b/telephony/java/com/android/ims/ImsSsInfo.java @@ -34,6 +34,7 @@ public class ImsSsInfo implements Parcelable { // 0: disabled, 1: enabled public int mStatus; + public String mIcbNum; public ImsSsInfo() { } @@ -50,6 +51,7 @@ public class ImsSsInfo implements Parcelable { @Override public void writeToParcel(Parcel out, int flags) { out.writeInt(mStatus); + out.writeString(mIcbNum); } @Override @@ -59,6 +61,7 @@ public class ImsSsInfo implements Parcelable { private void readFromParcel(Parcel in) { mStatus = in.readInt(); + mIcbNum = in.readString(); } public static final Creator<ImsSsInfo> CREATOR = diff --git a/telephony/java/com/android/ims/ImsSuppServiceNotification.aidl b/telephony/java/com/android/ims/ImsSuppServiceNotification.aidl new file mode 100644 index 000000000000..6b4479f467c2 --- /dev/null +++ b/telephony/java/com/android/ims/ImsSuppServiceNotification.aidl @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package com.android.ims; + +parcelable ImsSuppServiceNotification; diff --git a/telephony/java/com/android/ims/ImsSuppServiceNotification.java b/telephony/java/com/android/ims/ImsSuppServiceNotification.java new file mode 100644 index 000000000000..faf749972b91 --- /dev/null +++ b/telephony/java/com/android/ims/ImsSuppServiceNotification.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package com.android.ims; + +import android.os.Parcel; +import android.os.Parcelable; + +import java.util.Arrays; + + +/** + * Parcelable object to handle IMS supplementary service notifications. + * + * @hide + */ +public class ImsSuppServiceNotification implements Parcelable { + private static final String TAG = "ImsSuppServiceNotification"; + + /** Type of notification: 0 = MO; 1 = MT */ + public int notificationType; + /** TS 27.007 7.17 "code1" or "code2" */ + public int code; + /** TS 27.007 7.17 "index" - Not used currently*/ + public int index; + /** TS 27.007 7.17 "type" (MT only) - Not used currently */ + public int type; + /** TS 27.007 7.17 "number" (MT only) */ + public String number; + /** List of forwarded numbers, if any */ + public String[] history; + + public ImsSuppServiceNotification() { + } + + public ImsSuppServiceNotification(Parcel in) { + readFromParcel(in); + } + + @Override + public String toString() { + return "{ notificationType=" + notificationType + + ", code=" + code + + ", index=" + index + + ", type=" + type + + ", number=" + number + + ", history=" + Arrays.toString(history) + + " }"; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeInt(notificationType); + out.writeInt(code); + out.writeInt(index); + out.writeInt(type); + out.writeString(number); + out.writeStringArray(history); + } + + private void readFromParcel(Parcel in) { + notificationType = in.readInt(); + code = in.readInt(); + index = in.readInt(); + type = in.readInt(); + number = in.readString(); + history = in.createStringArray(); + } + + public static final Creator<ImsSuppServiceNotification> CREATOR = + new Creator<ImsSuppServiceNotification>() { + @Override + public ImsSuppServiceNotification createFromParcel(Parcel in) { + return new ImsSuppServiceNotification(in); + } + + @Override + public ImsSuppServiceNotification[] newArray(int size) { + return new ImsSuppServiceNotification[size]; + } + }; +} diff --git a/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl b/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl index 0443c3edb974..d562eccd83fc 100644 --- a/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl +++ b/telephony/java/com/android/ims/internal/IImsCallSessionListener.aidl @@ -21,6 +21,7 @@ import com.android.ims.ImsCallProfile; import com.android.ims.ImsReasonInfo; import com.android.ims.ImsConferenceState; import com.android.ims.internal.IImsCallSession; +import com.android.ims.ImsSuppServiceNotification; /** * A listener type for receiving notification on IMS call session events. @@ -123,4 +124,10 @@ interface IImsCallSessionListener { * @param isMultiParty {@code true} if the session became multiparty, {@code false} otherwise. */ void callSessionMultipartyStateChanged(in IImsCallSession session, in boolean isMultiParty); + + /** + * Notifies the supplementary service information for the current session. + */ + void callSessionSuppServiceReceived(in IImsCallSession session, + in ImsSuppServiceNotification suppSrvNotification); } diff --git a/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl b/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl index c91060019c60..23a69d10aa7a 100644 --- a/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl +++ b/telephony/java/com/android/ims/internal/IImsRegistrationListener.aidl @@ -71,5 +71,11 @@ interface IImsRegistrationListener { * @param disabledFeatures features disabled as defined in com.android.ims.ImsConfig#FeatureConstants. */ void registrationFeatureCapabilityChanged(int serviceClass, - out int[] enabledFeatures, out int[] disabledFeatures); + in int[] enabledFeatures, in int[] disabledFeatures); + + /** + * Updates the application with the waiting voice message count. + * @param count The number of waiting voice messages. + */ + void voiceMessageCountUpdate(int count); } diff --git a/telephony/java/com/android/ims/internal/IImsUt.aidl b/telephony/java/com/android/ims/internal/IImsUt.aidl index c531ea59ce45..4ab5ee3c4f8c 100644 --- a/telephony/java/com/android/ims/internal/IImsUt.aidl +++ b/telephony/java/com/android/ims/internal/IImsUt.aidl @@ -74,7 +74,7 @@ interface IImsUt { /** * Updates the configuration of the call barring. */ - int updateCallBarring(int cbType, boolean enable, in String[] barrList); + int updateCallBarring(int cbType, int action, in String[] barrList); /** * Updates the configuration of the call forward. diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index a93e465d992c..dcece26d6c27 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -707,9 +707,13 @@ interface ITelephony { * * @param subId the id of the subscription. * @param operatorInfo the operator to attach to. + * @param persistSelection should the selection persist till reboot or its + * turned off? Will also result in notification being not shown to + * the user if the signal is lost. * @return true if the request suceeded. */ - boolean setNetworkSelectionModeManual(int subId, in OperatorInfo operator); + boolean setNetworkSelectionModeManual(int subId, in OperatorInfo operator, + boolean persistSelection); /** * Set the preferred network type. @@ -951,6 +955,7 @@ interface ITelephony { * @return {@code true} if the device supports hearing aid compatibility. */ boolean isHearingAidCompatibilitySupported(); + /** * Get IMS Registration Status */ @@ -958,15 +963,18 @@ interface ITelephony { /** * Returns the Status of Wi-Fi Calling - *@hide */ - boolean isWifiCallingEnabled(); + boolean isWifiCallingAvailable(); + + /** + * Returns the Status of Volte + */ + boolean isVolteAvailable(); /** - * Returns the Status of Volte - *@hide + * Returns the Status of VT (video telephony) */ - boolean isVolteEnabled(); + boolean isVideoTelephonyAvailable(); /** * Returns the unique device ID of phone, for example, the IMEI for @@ -995,7 +1003,6 @@ interface ITelephony { /** * Return the modem activity info. - *@hide */ ModemActivityInfo getModemActivityInfo(); } diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index 8d48c861ccbf..7088be828408 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -96,6 +96,16 @@ public interface RILConstants { int NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA = 10; /* LTE, CDMA, EvDo, GSM/WCDMA */ int NETWORK_MODE_LTE_ONLY = 11; /* LTE Only mode. */ int NETWORK_MODE_LTE_WCDMA = 12; /* LTE/WCDMA */ + int NETWORK_MODE_TDSCDMA_ONLY = 13; /* TD-SCDMA only */ + int NETWORK_MODE_TDSCDMA_WCDMA = 14; /* TD-SCDMA and WCDMA */ + int NETWORK_MODE_LTE_TDSCDMA = 15; /* TD-SCDMA and LTE */ + int NETWORK_MODE_TDSCDMA_GSM = 16; /* TD-SCDMA and GSM */ + int NETWORK_MODE_LTE_TDSCDMA_GSM = 17; /* TD-SCDMA,GSM and LTE */ + int NETWORK_MODE_TDSCDMA_GSM_WCDMA = 18; /* TD-SCDMA, GSM/WCDMA */ + int NETWORK_MODE_LTE_TDSCDMA_WCDMA = 19; /* TD-SCDMA, WCDMA and LTE */ + int NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA = 20; /* TD-SCDMA, GSM/WCDMA and LTE */ + int NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 21; /*TD-SCDMA,EvDo,CDMA,GSM/WCDMA*/ + int NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA = 22; /* TD-SCDMA/LTE/GSM/WCDMA, CDMA, and EvDo */ int PREFERRED_NETWORK_MODE = SystemProperties.getInt("ro.telephony.default_network", NETWORK_MODE_WCDMA_PREF); diff --git a/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/CameraActivity.java b/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/CameraActivity.java index 0b43666a5453..8085db72fba5 100644 --- a/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/CameraActivity.java +++ b/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/CameraActivity.java @@ -31,5 +31,7 @@ public class CameraActivity extends Activity { super.onCreate(savedInstanceState); setContentView(R.layout.camera_activity); Log.i(TAG, "Activity created"); + Log.i(TAG, "Source: " + + getIntent().getStringExtra("com.android.systemui.camera_launch_source")); } } diff --git a/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/SecureCameraActivity.java b/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/SecureCameraActivity.java index 530fe0063954..242d3b2c2a98 100644 --- a/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/SecureCameraActivity.java +++ b/tests/CameraPrewarmTest/src/com/google/android/test/cameraprewarm/SecureCameraActivity.java @@ -17,6 +17,7 @@ package com.google.android.test.cameraprewarm; import android.app.Activity; +import android.graphics.Camera; import android.os.Bundle; import android.util.Log; import android.view.WindowManager; @@ -31,5 +32,7 @@ public class SecureCameraActivity extends Activity { setContentView(R.layout.camera_activity); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); Log.i(CameraActivity.TAG, "Activity created"); + Log.i(CameraActivity.TAG, "Source: " + + getIntent().getStringExtra("com.android.systemui.camera_launch_source")); } } diff --git a/tools/layoutlib/bridge/src/android/content/res/BridgeResources.java b/tools/layoutlib/bridge/src/android/content/res/BridgeResources.java index 163fbcb7f900..3b7bf8549181 100644 --- a/tools/layoutlib/bridge/src/android/content/res/BridgeResources.java +++ b/tools/layoutlib/bridge/src/android/content/res/BridgeResources.java @@ -48,9 +48,6 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Iterator; -/** - * - */ public final class BridgeResources extends Resources { private BridgeContext mContext; @@ -278,7 +275,7 @@ public final class BridgeResources extends Resources { * always Strings. The ideal signature for the method should be <T super String>, but java * generics don't support it. */ - private <T extends CharSequence> T[] fillValues(ArrayResourceValue resValue, T[] values) { + <T extends CharSequence> T[] fillValues(ArrayResourceValue resValue, T[] values) { int i = 0; for (Iterator<String> iterator = resValue.iterator(); iterator.hasNext(); i++) { @SuppressWarnings("unchecked") diff --git a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java index 6a6109047573..31dd3d943769 100644 --- a/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java +++ b/tools/layoutlib/bridge/src/android/content/res/BridgeTypedArray.java @@ -16,6 +16,7 @@ package android.content.res; +import com.android.ide.common.rendering.api.ArrayResourceValue; import com.android.ide.common.rendering.api.AttrResourceValue; import com.android.ide.common.rendering.api.LayoutLog; import com.android.ide.common.rendering.api.RenderResources; @@ -33,6 +34,7 @@ import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.annotation.Nullable; +import android.content.res.Resources.NotFoundException; import android.content.res.Resources.Theme; import android.graphics.drawable.Drawable; import android.util.DisplayMetrics; @@ -740,12 +742,20 @@ public final class BridgeTypedArray extends TypedArray { */ @Override public CharSequence[] getTextArray(int index) { - String value = getString(index); - if (value != null) { - return new CharSequence[] { value }; + if (!hasValue(index)) { + return null; } - - return null; + ResourceValue resVal = mResourceData[index]; + if (resVal instanceof ArrayResourceValue) { + ArrayResourceValue array = (ArrayResourceValue) resVal; + int count = array.getElementCount(); + return count >= 0 ? mBridgeResources.fillValues(array, new CharSequence[count]) : null; + } + int id = getResourceId(index, 0); + String resIdMessage = id > 0 ? " (resource id 0x" + Integer.toHexString(id) + ')' : ""; + throw new NotFoundException( + String.format("%1$s in %2$s%3$s is not a valid array resource.", + resVal.getValue(), mNames[index], resIdMessage)); } @Override diff --git a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java index 1e33e3ab2090..f1726ebae4cb 100644 --- a/tools/layoutlib/bridge/src/android/view/BridgeInflater.java +++ b/tools/layoutlib/bridge/src/android/view/BridgeInflater.java @@ -36,6 +36,7 @@ import org.xmlpull.v1.XmlPullParser; import android.annotation.NonNull; import android.content.Context; +import android.content.res.TypedArray; import android.util.AttributeSet; import java.io.File; @@ -54,6 +55,9 @@ public final class BridgeInflater extends LayoutInflater { private ResourceReference mResourceReference; private Map<View, String> mOpenDrawerLayouts; + // Keep in sync with the same value in LayoutInflater. + private static final int[] ATTRS_THEME = new int[] {com.android.internal.R.attr.theme }; + /** * List of class prefixes which are tried first by default. * <p/> @@ -135,11 +139,23 @@ public final class BridgeInflater extends LayoutInflater { @Override public View createViewFromTag(View parent, String name, Context context, AttributeSet attrs, - boolean ignoreThemeAttrs) { + boolean ignoreThemeAttr) { View view; try { - view = super.createViewFromTag(parent, name, context, attrs, ignoreThemeAttrs); + view = super.createViewFromTag(parent, name, context, attrs, ignoreThemeAttr); } catch (InflateException e) { + // Creation of ContextThemeWrapper code is same as in the super method. + // Apply a theme wrapper, if allowed and one is specified. + if (!ignoreThemeAttr) { + final TypedArray ta = context.obtainStyledAttributes(attrs, ATTRS_THEME); + final int themeResId = ta.getResourceId(0, 0); + if (themeResId != 0) { + context = new ContextThemeWrapper(context, themeResId); + } + ta.recycle(); + } + final Object lastContext = mConstructorArgs[0]; + mConstructorArgs[0] = context; // try to load the class from using the custom view loader try { view = loadCustomView(name, attrs); @@ -153,6 +169,8 @@ public final class BridgeInflater extends LayoutInflater { exception.initCause(e); } throw exception; + } finally { + mConstructorArgs[0] = lastContext; } } diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java index 1f3802ed21ac..689e3597720b 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeContext.java @@ -36,8 +36,8 @@ import com.android.util.Pair; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; -import android.annotation.Nullable; import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; @@ -139,8 +139,9 @@ public final class BridgeContext extends Context { private Map<StyleResourceValue, Integer> mStyleToDynamicIdMap; private int mDynamicIdGenerator = 0x02030000; // Base id for R.style in custom namespace - // cache for TypedArray generated from IStyleResourceValue object - private Map<int[], Map<Integer, BridgeTypedArray>> mTypedArrayCache; + // cache for TypedArray generated from StyleResourceValue object + private Map<int[], Map<List<StyleResourceValue>, Map<Integer, BridgeTypedArray>>> + mTypedArrayCache; private BridgeInflater mBridgeInflater; private BridgeContentResolver mContentResolver; @@ -621,31 +622,38 @@ public final class BridgeContext extends Context { } } + // The map is from + // attrs (int[]) -> context's current themes (List<StyleRV>) -> resid (int) -> typed array. if (mTypedArrayCache == null) { - mTypedArrayCache = new HashMap<int[], Map<Integer,BridgeTypedArray>>(); - - Map<Integer, BridgeTypedArray> map = new HashMap<Integer, BridgeTypedArray>(); - mTypedArrayCache.put(attrs, map); - - BridgeTypedArray ta = createStyleBasedTypedArray(style, attrs); - map.put(resid, ta); - - return ta; + mTypedArrayCache = new IdentityHashMap<int[], + Map<List<StyleResourceValue>, Map<Integer, BridgeTypedArray>>>(); } // get the 2nd map - Map<Integer, BridgeTypedArray> map = mTypedArrayCache.get(attrs); - if (map == null) { - map = new HashMap<Integer, BridgeTypedArray>(); - mTypedArrayCache.put(attrs, map); + Map<List<StyleResourceValue>, Map<Integer, BridgeTypedArray>> map2 = + mTypedArrayCache.get(attrs); + if (map2 == null) { + map2 = new HashMap<List<StyleResourceValue>, Map<Integer, BridgeTypedArray>>(); + mTypedArrayCache.put(attrs, map2); + } + + // get the 3rd map + List<StyleResourceValue> currentThemes = mRenderResources.getAllThemes(); + Map<Integer, BridgeTypedArray> map3 = map2.get(currentThemes); + if (map3 == null) { + map3 = new HashMap<Integer, BridgeTypedArray>(); + // Create a copy of the list before adding it to the map. This allows reusing the + // existing list. + currentThemes = new ArrayList<StyleResourceValue>(currentThemes); + map2.put(currentThemes, map3); } - // get the array from the 2nd map - BridgeTypedArray ta = map.get(resid); + // get the array from the 3rd map + BridgeTypedArray ta = map3.get(resid); if (ta == null) { ta = createStyleBasedTypedArray(style, attrs); - map.put(resid, ta); + map3.put(resid, ta); } return ta; diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java index b76ec1707fcc..567002e564b7 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/CustomBar.java @@ -33,6 +33,7 @@ import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.annotation.NonNull; +import android.annotation.Nullable; import android.content.res.ColorStateList; import android.graphics.Bitmap; import android.graphics.Bitmap_Delegate; @@ -227,16 +228,18 @@ abstract class CustomBar extends LinearLayout { * Find the background color for this bar from the theme attributes. Only relevant to StatusBar * and NavigationBar. * <p/> - * Returns 0 if not found. + * Returns null if not found. * * @param colorAttrName the attribute name for the background color * @param translucentAttrName the attribute name for the translucency property of the bar. * * @throws NumberFormatException if color resolved to an invalid string. */ - protected int getBarColor(@NonNull String colorAttrName, @NonNull String translucentAttrName) { + @Nullable + protected Integer getBarColor(@NonNull String colorAttrName, + @NonNull String translucentAttrName) { if (!Config.isGreaterOrEqual(mSimulatedPlatformVersion, LOLLIPOP)) { - return 0; + return null; } RenderResources renderResources = getContext().getRenderResources(); // First check if the bar is translucent. @@ -251,10 +254,11 @@ abstract class CustomBar extends LinearLayout { if (transparent) { return getColor(renderResources, colorAttrName); } - return 0; + return null; } - private static int getColor(RenderResources renderResources, String attr) { + @Nullable + private static Integer getColor(RenderResources renderResources, String attr) { // From ?attr/foo to @color/bar. This is most likely an ItemResourceValue. ResourceValue resource = renderResources.findItemInTheme(attr, true); // Form @color/bar to the #AARRGGBB @@ -275,7 +279,7 @@ abstract class CustomBar extends LinearLayout { } } } - return 0; + return null; } private ResourceValue getResourceValue(String reference) { diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/NavigationBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/NavigationBar.java index 9c89bfe2a28f..d50ce23a0902 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/NavigationBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/NavigationBar.java @@ -65,8 +65,8 @@ public class NavigationBar extends CustomBar { super(context, orientation, getShortestWidth(context)>= 600 ? LAYOUT_600DP_XML : LAYOUT_XML, "navigation_bar.xml", simulatedPlatformVersion); - int color = getBarColor(ATTR_COLOR, ATTR_TRANSLUCENT); - setBackgroundColor(color == 0 ? 0xFF000000 : color); + Integer color = getBarColor(ATTR_COLOR, ATTR_TRANSLUCENT); + setBackgroundColor(color == null ? 0xFF000000 : color); // Cannot access the inside items through id because no R.id values have been // created for them. diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java index 2dc7c65e2085..95a5a58c535f 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/bars/StatusBar.java @@ -71,8 +71,9 @@ public class StatusBar extends CustomBar { // FIXME: use FILL_H? setGravity(Gravity.START | Gravity.TOP | Gravity.RIGHT); - int color = getBarColor(ATTR_COLOR, ATTR_TRANSLUCENT); - setBackgroundColor(color == 0 ? Config.getStatusBarColor(simulatedPlatformVersion) : color); + Integer color = getBarColor(ATTR_COLOR, ATTR_TRANSLUCENT); + setBackgroundColor( + color == null ? Config.getStatusBarColor(simulatedPlatformVersion) : color); // Cannot access the inside items through id because no R.id values have been // created for them. diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java index ac7c4097e271..2a4f58381aee 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/impl/RenderSessionImpl.java @@ -421,8 +421,7 @@ public class RenderSessionImpl extends RenderAction<SessionParams> { gc.setComposite(AlphaComposite.Src); gc.setColor(new Color(0x00000000, true)); - gc.fillRect(0, 0, - mMeasuredScreenWidth, mMeasuredScreenHeight); + gc.fillRect(0, 0, mMeasuredScreenWidth, mMeasuredScreenHeight); // done gc.dispose(); @@ -1051,11 +1050,7 @@ public class RenderSessionImpl extends RenderAction<SessionParams> { } if (scrollPos != 0) { view.scrollBy(0, scrollPos); - } else { - view.scrollBy(0, scrollPos); } - } else { - view.scrollBy(0, scrollPos); } if (!(view instanceof ViewGroup)) { |