diff options
186 files changed, 2737 insertions, 1962 deletions
diff --git a/api/current.txt b/api/current.txt index 49c12725f43c..d17f4b64d264 100644 --- a/api/current.txt +++ b/api/current.txt @@ -20303,6 +20303,8 @@ package android.media { field public static final java.lang.String MIMETYPE_TEXT_CEA_608 = "text/cea-608"; field public static final java.lang.String MIMETYPE_TEXT_VTT = "text/vtt"; field public static final java.lang.String MIMETYPE_VIDEO_AVC = "video/avc"; + field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_AVC = "video/dolby-avc"; + field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_HEVC = "video/dolby-hevc"; field public static final java.lang.String MIMETYPE_VIDEO_H263 = "video/3gpp"; field public static final java.lang.String MIMETYPE_VIDEO_HEVC = "video/hevc"; field public static final java.lang.String MIMETYPE_VIDEO_MPEG2 = "video/mpeg2"; @@ -28098,11 +28100,13 @@ package android.os { method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); - method public boolean isUserRunningAndLocked(); - method public boolean isUserRunningAndLocked(android.os.UserHandle); - method public boolean isUserRunningAndUnlocked(); - method public boolean isUserRunningAndUnlocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndLocked(); + method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndUnlocked(); + method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); + method public boolean isUserUnlocked(); + method public boolean isUserUnlocked(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated void setUserRestriction(java.lang.String, boolean); method public deprecated void setUserRestrictions(android.os.Bundle); @@ -33264,11 +33268,11 @@ package android.service.notification { method public int getSuppressedVisualEffects(); method public boolean isAmbient(); method public boolean matchesInterruptionFilter(); - field public static final int IMPORTANCE_DEFAULT = 0; // 0x0 - field public static final int IMPORTANCE_HIGH = 1; // 0x1 - field public static final int IMPORTANCE_LOW = -1; // 0xffffffff - field public static final int IMPORTANCE_MAX = 2; // 0x2 - field public static final int IMPORTANCE_NONE = -2; // 0xfffffffe + field public static final int IMPORTANCE_DEFAULT = 2; // 0x2 + field public static final int IMPORTANCE_HIGH = 3; // 0x3 + field public static final int IMPORTANCE_LOW = 1; // 0x1 + field public static final int IMPORTANCE_MAX = 4; // 0x4 + field public static final int IMPORTANCE_NONE = 0; // 0x0 field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18 } @@ -34901,6 +34905,7 @@ package android.telecom { field public static final int CAPABILITY_PLACE_EMERGENCY_CALLS = 16; // 0x10 field public static final int CAPABILITY_SIM_SUBSCRIPTION = 4; // 0x4 field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8 + field public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 256; // 0x100 field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR; field public static final java.lang.String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING"; field public static final java.lang.String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH"; diff --git a/api/system-current.txt b/api/system-current.txt index 0fe65c33e4f7..492d6a923f51 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -21594,6 +21594,8 @@ package android.media { field public static final java.lang.String MIMETYPE_TEXT_CEA_608 = "text/cea-608"; field public static final java.lang.String MIMETYPE_TEXT_VTT = "text/vtt"; field public static final java.lang.String MIMETYPE_VIDEO_AVC = "video/avc"; + field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_AVC = "video/dolby-avc"; + field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_HEVC = "video/dolby-hevc"; field public static final java.lang.String MIMETYPE_VIDEO_H263 = "video/3gpp"; field public static final java.lang.String MIMETYPE_VIDEO_HEVC = "video/hevc"; field public static final java.lang.String MIMETYPE_VIDEO_MPEG2 = "video/mpeg2"; @@ -30092,11 +30094,13 @@ package android.os { method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); - method public boolean isUserRunningAndLocked(); - method public boolean isUserRunningAndLocked(android.os.UserHandle); - method public boolean isUserRunningAndUnlocked(); - method public boolean isUserRunningAndUnlocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndLocked(); + method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndUnlocked(); + method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); + method public boolean isUserUnlocked(); + method public boolean isUserUnlocked(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated void setUserRestriction(java.lang.String, boolean); method public deprecated void setUserRestrictions(android.os.Bundle); @@ -35398,11 +35402,11 @@ package android.service.notification { method public int getSuppressedVisualEffects(); method public boolean isAmbient(); method public boolean matchesInterruptionFilter(); - field public static final int IMPORTANCE_DEFAULT = 0; // 0x0 - field public static final int IMPORTANCE_HIGH = 1; // 0x1 - field public static final int IMPORTANCE_LOW = -1; // 0xffffffff - field public static final int IMPORTANCE_MAX = 2; // 0x2 - field public static final int IMPORTANCE_NONE = -2; // 0xfffffffe + field public static final int IMPORTANCE_DEFAULT = 2; // 0x2 + field public static final int IMPORTANCE_HIGH = 3; // 0x3 + field public static final int IMPORTANCE_LOW = 1; // 0x1 + field public static final int IMPORTANCE_MAX = 4; // 0x4 + field public static final int IMPORTANCE_NONE = 0; // 0x0 field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18 } @@ -37139,6 +37143,7 @@ package android.telecom { field public static final int CAPABILITY_PLACE_EMERGENCY_CALLS = 16; // 0x10 field public static final int CAPABILITY_SIM_SUBSCRIPTION = 4; // 0x4 field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8 + field public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 256; // 0x100 field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR; field public static final java.lang.String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING"; field public static final java.lang.String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH"; @@ -46474,8 +46479,6 @@ package android.webkit { method public static android.content.pm.PackageInfo getLoadedPackageInfo(); method public static java.lang.String getWebViewPackageName(); method public static int loadWebViewNativeLibraryFromPackage(java.lang.String); - method public static void onWebViewUpdateInstalled(); - method public static void prepareWebViewInSystemServer(); method public static void prepareWebViewInZygote(); field public static final java.lang.String CHROMIUM_WEBVIEW_VMSIZE_SIZE_PROPERTY = "persist.sys.webview.vmsize"; field public static final int LIBLOAD_ADDRESS_SPACE_NOT_RESERVED = 2; // 0x2 @@ -46484,7 +46487,9 @@ package android.webkit { field public static final int LIBLOAD_FAILED_TO_LOAD_LIBRARY = 6; // 0x6 field public static final int LIBLOAD_FAILED_TO_OPEN_RELRO_FILE = 5; // 0x5 field public static final int LIBLOAD_FAILED_WAITING_FOR_RELRO = 3; // 0x3 + field public static final int LIBLOAD_FAILED_WAITING_FOR_WEBVIEW_REASON_UNKNOWN = 9; // 0x9 field public static final int LIBLOAD_SUCCESS = 0; // 0x0 + field public static final int LIBLOAD_WEBVIEW_BEING_REPLACED = 8; // 0x8 field public static final int LIBLOAD_WRONG_PACKAGE_NAME = 1; // 0x1 } diff --git a/api/test-current.txt b/api/test-current.txt index e343cfbc404e..680f7835b204 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -20303,6 +20303,8 @@ package android.media { field public static final java.lang.String MIMETYPE_TEXT_CEA_608 = "text/cea-608"; field public static final java.lang.String MIMETYPE_TEXT_VTT = "text/vtt"; field public static final java.lang.String MIMETYPE_VIDEO_AVC = "video/avc"; + field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_AVC = "video/dolby-avc"; + field public static final java.lang.String MIMETYPE_VIDEO_DOLBY_HEVC = "video/dolby-hevc"; field public static final java.lang.String MIMETYPE_VIDEO_H263 = "video/3gpp"; field public static final java.lang.String MIMETYPE_VIDEO_HEVC = "video/hevc"; field public static final java.lang.String MIMETYPE_VIDEO_MPEG2 = "video/mpeg2"; @@ -28098,11 +28100,13 @@ package android.os { method public boolean isSystemUser(); method public boolean isUserAGoat(); method public boolean isUserRunning(android.os.UserHandle); - method public boolean isUserRunningAndLocked(); - method public boolean isUserRunningAndLocked(android.os.UserHandle); - method public boolean isUserRunningAndUnlocked(); - method public boolean isUserRunningAndUnlocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndLocked(); + method public deprecated boolean isUserRunningAndLocked(android.os.UserHandle); + method public deprecated boolean isUserRunningAndUnlocked(); + method public deprecated boolean isUserRunningAndUnlocked(android.os.UserHandle); method public boolean isUserRunningOrStopping(android.os.UserHandle); + method public boolean isUserUnlocked(); + method public boolean isUserUnlocked(android.os.UserHandle); method public deprecated boolean setRestrictionsChallenge(java.lang.String); method public deprecated void setUserRestriction(java.lang.String, boolean); method public deprecated void setUserRestrictions(android.os.Bundle); @@ -33266,11 +33270,11 @@ package android.service.notification { method public int getSuppressedVisualEffects(); method public boolean isAmbient(); method public boolean matchesInterruptionFilter(); - field public static final int IMPORTANCE_DEFAULT = 0; // 0x0 - field public static final int IMPORTANCE_HIGH = 1; // 0x1 - field public static final int IMPORTANCE_LOW = -1; // 0xffffffff - field public static final int IMPORTANCE_MAX = 2; // 0x2 - field public static final int IMPORTANCE_NONE = -2; // 0xfffffffe + field public static final int IMPORTANCE_DEFAULT = 2; // 0x2 + field public static final int IMPORTANCE_HIGH = 3; // 0x3 + field public static final int IMPORTANCE_LOW = 1; // 0x1 + field public static final int IMPORTANCE_MAX = 4; // 0x4 + field public static final int IMPORTANCE_NONE = 0; // 0x0 field public static final int IMPORTANCE_UNSPECIFIED = -1000; // 0xfffffc18 } @@ -34903,6 +34907,7 @@ package android.telecom { field public static final int CAPABILITY_PLACE_EMERGENCY_CALLS = 16; // 0x10 field public static final int CAPABILITY_SIM_SUBSCRIPTION = 4; // 0x4 field public static final int CAPABILITY_VIDEO_CALLING = 8; // 0x8 + field public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 256; // 0x100 field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR; field public static final java.lang.String EXTRA_CALL_SUBJECT_CHARACTER_ENCODING = "android.telecom.extra.CALL_SUBJECT_CHARACTER_ENCODING"; field public static final java.lang.String EXTRA_CALL_SUBJECT_MAX_LENGTH = "android.telecom.extra.CALL_SUBJECT_MAX_LENGTH"; diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java index 4cb261927ef8..f11bf742c925 100644 --- a/core/java/android/app/ActivityManagerNative.java +++ b/core/java/android/app/ActivityManagerNative.java @@ -1558,6 +1558,15 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; } + case KILL_PACKAGE_DEPENDENTS_TRANSACTION: { + data.enforceInterface(IActivityManager.descriptor); + String packageName = data.readString(); + int userId = data.readInt(); + killPackageDependents(packageName, userId); + reply.writeNoException(); + return true; + } + case FORCE_STOP_PACKAGE_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); String packageName = data.readString(); @@ -4736,6 +4745,18 @@ class ActivityManagerProxy implements IActivityManager reply.recycle(); } + public void killPackageDependents(String packageName, int userId) throws RemoteException { + Parcel data = Parcel.obtain(); + Parcel reply = Parcel.obtain(); + data.writeInterfaceToken(IActivityManager.descriptor); + data.writeString(packageName); + data.writeInt(userId); + mRemote.transact(KILL_PACKAGE_DEPENDENTS_TRANSACTION, data, reply, 0); + reply.readException(); + data.recycle(); + reply.recycle(); + } + public void forceStopPackage(String packageName, int userId) throws RemoteException { Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); diff --git a/core/java/android/app/ApplicationLoaders.java b/core/java/android/app/ApplicationLoaders.java index 413c3699db08..ddb2d46eb118 100644 --- a/core/java/android/app/ApplicationLoaders.java +++ b/core/java/android/app/ApplicationLoaders.java @@ -27,7 +27,8 @@ class ApplicationLoaders return gApplicationLoaders; } - public ClassLoader getClassLoader(String zip, String libPath, ClassLoader parent) + public ClassLoader getClassLoader(String zip, String librarySearchPath, + String libraryPermittedPath, ClassLoader parent) { /* * This is the parent we use if they pass "null" in. In theory @@ -55,7 +56,7 @@ class ApplicationLoaders Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, zip); PathClassLoader pathClassloader = - new PathClassLoader(zip, libPath, parent); + new PathClassLoader(zip, librarySearchPath, libraryPermittedPath, parent); Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER); mLoaders.put(zip, pathClassloader); diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java index eb8d6bc1e92a..64c69af8691d 100644 --- a/core/java/android/app/IActivityManager.java +++ b/core/java/android/app/IActivityManager.java @@ -259,6 +259,7 @@ public interface IActivityManager extends IInterface { public void killBackgroundProcesses(final String packageName, int userId) throws RemoteException; public void killAllBackgroundProcesses() throws RemoteException; + public void killPackageDependents(final String packageName, int userId) throws RemoteException; public void forceStopPackage(final String packageName, int userId) throws RemoteException; // Note: probably don't want to allow applications access to these. @@ -912,4 +913,5 @@ public interface IActivityManager extends IInterface { int UNLOCK_USER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 351; int IN_MULTI_WINDOW_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 352; int IN_PICTURE_IN_PICTURE_MODE_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 353; + int KILL_PACKAGE_DEPENDENTS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION + 354; } diff --git a/core/java/android/app/LoadedApk.java b/core/java/android/app/LoadedApk.java index 891558f22a3d..7313fd197c6d 100644 --- a/core/java/android/app/LoadedApk.java +++ b/core/java/android/app/LoadedApk.java @@ -366,7 +366,15 @@ public final class LoadedApk { } } - final String lib = TextUtils.join(File.pathSeparator, libPaths); + if (mApplicationInfo.isSystemApp()) { + // Add path to system libraries to libPaths; + // Access to system libs should be limited + // to bundled applications; this is why updated + // system apps are not included. + libPaths.add(System.getProperty("java.library.path")); + } + + final String librarySearchPath = TextUtils.join(File.pathSeparator, libPaths); /* * With all the combination done (if necessary, actually @@ -374,14 +382,17 @@ public final class LoadedApk { */ if (ActivityThread.localLOGV) - Slog.v(ActivityThread.TAG, "Class path: " + zip + ", JNI path: " + lib); + Slog.v(ActivityThread.TAG, "Class path: " + zip + + ", JNI path: " + librarySearchPath); // Temporarily disable logging of disk reads on the Looper thread // as this is early and necessary. StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); - mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, lib, - mBaseClassLoader); + String libraryPermittedPath = mAppDir + File.pathSeparator + mDataDir; + + mClassLoader = ApplicationLoaders.getDefault().getClassLoader(zip, librarySearchPath, + libraryPermittedPath, mBaseClassLoader); StrictMode.setThreadPolicy(oldPolicy); } else { diff --git a/core/java/android/app/NativeActivity.java b/core/java/android/app/NativeActivity.java index 1370000fe092..aa14cb513d46 100644 --- a/core/java/android/app/NativeActivity.java +++ b/core/java/android/app/NativeActivity.java @@ -35,6 +35,8 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; +import dalvik.system.BaseDexClassLoader; + import java.io.File; /** @@ -93,7 +95,9 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2, private native long loadNativeCode(String path, String funcname, MessageQueue queue, String internalDataPath, String obbPath, String externalDataPath, int sdkVersion, - AssetManager assetMgr, byte[] savedState); + AssetManager assetMgr, byte[] savedState, ClassLoader classLoader, String libraryPath, + String isolationPath); + private native String getDlError(); private native void unloadNativeCode(long handle); private native void onStartNative(long handle); private native void onResumeNative(long handle); @@ -157,15 +161,10 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2, } catch (PackageManager.NameNotFoundException e) { throw new RuntimeException("Error getting activity info", e); } - - String path = null; - - File libraryFile = new File(ai.applicationInfo.nativeLibraryDir, - System.mapLibraryName(libname)); - if (libraryFile.exists()) { - path = libraryFile.getPath(); - } - + + BaseDexClassLoader classLoader = (BaseDexClassLoader) getClassLoader(); + String path = classLoader.findLibrary(libname); + if (path == null) { throw new IllegalArgumentException("Unable to find native library: " + libname); } @@ -176,10 +175,13 @@ public class NativeActivity extends Activity implements SurfaceHolder.Callback2, mNativeHandle = loadNativeCode(path, funcname, Looper.myQueue(), getAbsolutePath(getFilesDir()), getAbsolutePath(getObbDir()), getAbsolutePath(getExternalFilesDir(null)), - Build.VERSION.SDK_INT, getAssets(), nativeSavedState); + Build.VERSION.SDK_INT, getAssets(), nativeSavedState, + classLoader, classLoader.getLdLibraryPath(), + classLoader.getLibraryPermittedPath()); if (mNativeHandle == 0) { - throw new IllegalArgumentException("Unable to load native library: " + path); + throw new UnsatisfiedLinkError( + "Unable to load native library \"" + path + "\": " + getDlError()); } super.onCreate(savedInstanceState); } diff --git a/core/java/android/app/NotificationManager.java b/core/java/android/app/NotificationManager.java index 89610e99a718..85d9831921ac 100644 --- a/core/java/android/app/NotificationManager.java +++ b/core/java/android/app/NotificationManager.java @@ -128,6 +128,14 @@ public class NotificationManager = "android.app.action.INTERRUPTION_FILTER_CHANGED"; /** + * Intent that is broadcast when the state of getCurrentInterruptionFilter() changes. + * @hide + */ + @SdkConstant(SdkConstant.SdkConstantType.BROADCAST_INTENT_ACTION) + public static final String ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL + = "android.app.action.INTERRUPTION_FILTER_CHANGED_INTERNAL"; + + /** * {@link #getCurrentInterruptionFilter() Interruption filter} constant - * Normal interruption filter. */ diff --git a/core/java/android/app/StatusBarManager.java b/core/java/android/app/StatusBarManager.java index 5e8ad68957b2..b899116142c8 100644 --- a/core/java/android/app/StatusBarManager.java +++ b/core/java/android/app/StatusBarManager.java @@ -180,10 +180,17 @@ public class StatusBarManager { * Expand the settings panel. */ public void expandSettingsPanel() { + expandSettingsPanel(null); + } + + /** + * Expand the settings panel and open a subPanel, pass null to just open the settings panel. + */ + public void expandSettingsPanel(String subPanel) { try { final IStatusBarService svc = getService(); if (svc != null) { - svc.expandSettingsPanel(); + svc.expandSettingsPanel(subPanel); } } catch (RemoteException ex) { // system process is dead anyway. diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 6b900a8ab36d..08b7d62963a4 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -89,7 +89,6 @@ public class DevicePolicyManager { private final Context mContext; private final IDevicePolicyManager mService; - // TODO Use it everywhere. private static final String REMOTE_EXCEPTION_MESSAGE = "Failed to talk with device policy manager service"; @@ -167,7 +166,7 @@ public class DevicePolicyManager { * Activity action: Starts the provisioning flow which sets up a managed user. * * <p>This intent will typically be sent by a mobile device management application (MDM). - * Provisioning configures the current user as managed user and sets the MDM as the profile + * Provisioning configures the user as managed user and sets the MDM as the profile * owner who has full control over the user. Provisioning can only happen before user setup has * been completed. Use {@link #isProvisioningAllowed(String)} to check if provisioning is * allowed. @@ -841,7 +840,7 @@ public class DevicePolicyManager { try { return mService.isAdminActive(admin, userId); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -856,7 +855,7 @@ public class DevicePolicyManager { try { return mService.isRemovingAdmin(admin, userId); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -881,7 +880,7 @@ public class DevicePolicyManager { try { return mService.getActiveAdmins(userId); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -897,7 +896,7 @@ public class DevicePolicyManager { try { return mService.packageHasActiveAdmins(packageName, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -914,7 +913,7 @@ public class DevicePolicyManager { try { mService.removeActiveAdmin(admin, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -933,7 +932,7 @@ public class DevicePolicyManager { try { return mService.hasGrantedPolicy(admin, usesPolicy, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -1034,7 +1033,7 @@ public class DevicePolicyManager { try { mService.setPasswordQuality(admin, quality); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1055,7 +1054,7 @@ public class DevicePolicyManager { try { return mService.getPasswordQuality(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return PASSWORD_QUALITY_UNSPECIFIED; @@ -1087,7 +1086,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumLength(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1108,7 +1107,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumLength(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1141,7 +1140,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumUpperCase(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1169,7 +1168,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumUpperCase(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1202,7 +1201,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumLowerCase(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1230,7 +1229,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumLowerCase(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1262,7 +1261,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumLetters(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1288,7 +1287,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumLetters(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1320,7 +1319,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumNumeric(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1347,7 +1346,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumNumeric(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1379,7 +1378,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumSymbols(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1405,7 +1404,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumSymbols(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1437,7 +1436,7 @@ public class DevicePolicyManager { try { mService.setPasswordMinimumNonLetter(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1464,7 +1463,7 @@ public class DevicePolicyManager { try { return mService.getPasswordMinimumNonLetter(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1497,7 +1496,7 @@ public class DevicePolicyManager { try { mService.setPasswordHistoryLength(admin, length); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1529,7 +1528,7 @@ public class DevicePolicyManager { try { mService.setPasswordExpirationTimeout(admin, timeout); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1548,7 +1547,7 @@ public class DevicePolicyManager { try { return mService.getPasswordExpirationTimeout(admin, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1569,7 +1568,7 @@ public class DevicePolicyManager { try { return mService.getPasswordExpiration(admin, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1592,7 +1591,7 @@ public class DevicePolicyManager { try { return mService.getPasswordHistoryLength(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1625,7 +1624,7 @@ public class DevicePolicyManager { try { return mService.isActivePasswordSufficient(myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -1644,7 +1643,7 @@ public class DevicePolicyManager { try { return mService.getCurrentFailedPasswordAttempts(myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return -1; @@ -1661,7 +1660,7 @@ public class DevicePolicyManager { try { return mService.getDoNotAskCredentialsOnBoot(); } catch (RemoteException e) { - Log.w(TAG, "Failed to call getDoNotAskCredentialsOnBoot()", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -1691,7 +1690,7 @@ public class DevicePolicyManager { try { mService.setMaximumFailedPasswordsForWipe(admin, num); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1713,7 +1712,7 @@ public class DevicePolicyManager { try { return mService.getMaximumFailedPasswordsForWipe(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1731,7 +1730,7 @@ public class DevicePolicyManager { try { return mService.getProfileWithMinimumFailedPasswordsForWipe(userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return UserHandle.USER_NULL; @@ -1796,7 +1795,7 @@ public class DevicePolicyManager { try { return mService.resetPassword(password, flags); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -1820,7 +1819,7 @@ public class DevicePolicyManager { try { mService.setMaximumTimeToLock(admin, timeMs); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1843,7 +1842,7 @@ public class DevicePolicyManager { try { return mService.getMaximumTimeToLock(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -1862,7 +1861,7 @@ public class DevicePolicyManager { try { mService.lockNow(); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1899,7 +1898,7 @@ public class DevicePolicyManager { try { mService.wipeData(flags); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -1969,7 +1968,7 @@ public class DevicePolicyManager { } return mService.setGlobalProxy(admin, hostSpec, exclSpec); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -1997,7 +1996,7 @@ public class DevicePolicyManager { try { mService.setRecommendedGlobalProxy(admin, proxyInfo); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2013,7 +2012,7 @@ public class DevicePolicyManager { try { return mService.getGlobalProxyAdmin(myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -2143,7 +2142,7 @@ public class DevicePolicyManager { try { return mService.setStorageEncryption(admin, encrypt); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return ENCRYPTION_STATUS_UNSUPPORTED; @@ -2163,7 +2162,7 @@ public class DevicePolicyManager { try { return mService.getStorageEncryption(admin, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -2198,7 +2197,7 @@ public class DevicePolicyManager { try { return mService.getStorageEncryptionStatus(userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return ENCRYPTION_STATUS_UNSUPPORTED; @@ -2219,7 +2218,7 @@ public class DevicePolicyManager { try { return mService.installCaCert(admin, certBuffer); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -2240,7 +2239,7 @@ public class DevicePolicyManager { } catch (CertificateException e) { Log.w(TAG, "Unable to parse certificate", e); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2268,7 +2267,7 @@ public class DevicePolicyManager { } } } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return certs; @@ -2287,7 +2286,7 @@ public class DevicePolicyManager { mService.uninstallCaCerts(admin, new TrustedCertificateStore().userAliases() .toArray(new String[0])); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -2305,7 +2304,7 @@ public class DevicePolicyManager { mService.enforceCanManageCaCerts(admin); return getCaCertAlias(certBuffer) != null; } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } catch (CertificateException ce) { Log.w(TAG, "Could not parse certificate", ce); } @@ -2333,7 +2332,7 @@ public class DevicePolicyManager { .getKeySpec(privKey, PKCS8EncodedKeySpec.class).getEncoded(); return mService.installKeyPair(admin, pkcs8Key, pemCert, alias); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } catch (NoSuchAlgorithmException | InvalidKeySpecException e) { Log.w(TAG, "Failed to obtain private key material", e); } catch (CertificateException | IOException e) { @@ -2391,14 +2390,14 @@ public class DevicePolicyManager { try { mService.setCertInstallerPackage(admin, installerPackage); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } /** * Called by a profile owner or device owner to retrieve the certificate installer for the - * current user. null if none is set. + * user. null if none is set. * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. * @return The package name of the current delegated certificate installer, or {@code null} @@ -2409,7 +2408,7 @@ public class DevicePolicyManager { try { return mService.getCertInstallerPackage(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -2434,14 +2433,14 @@ public class DevicePolicyManager { try { mService.setCameraDisabled(admin, disabled); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } /** * Determine whether or not the device's cameras have been disabled for this user, - * either by the current admin, if specified, or all admins. + * either by the calling admin, if specified, or all admins. * @param admin The name of the admin component to check, or {@code null} to check whether any admins * have disabled the camera */ @@ -2455,7 +2454,7 @@ public class DevicePolicyManager { try { return mService.getCameraDisabled(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -2492,13 +2491,13 @@ public class DevicePolicyManager { try { mService.setScreenCaptureDisabled(admin, disabled); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } /** - * Determine whether or not screen capture has been disabled by the current + * Determine whether or not screen capture has been disabled by the calling * admin, if specified, or all admins. * @param admin The name of the admin component to check, or {@code null} to check whether any admins * have disabled screen capture. @@ -2513,7 +2512,7 @@ public class DevicePolicyManager { try { return mService.getScreenCaptureDisabled(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -2536,7 +2535,7 @@ public class DevicePolicyManager { try { mService.setAutoTimeRequired(admin, required); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2549,7 +2548,7 @@ public class DevicePolicyManager { try { return mService.getAutoTimeRequired(); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -2590,13 +2589,13 @@ public class DevicePolicyManager { try { mService.setKeyguardDisabledFeatures(admin, which); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } /** - * Determine whether or not features have been disabled in keyguard either by the current + * Determine whether or not features have been disabled in keyguard either by the calling * admin, if specified, or all admins. * @param admin The name of the admin component to check, or {@code null} to check whether any admins * have disabled features in keyguard. @@ -2613,7 +2612,7 @@ public class DevicePolicyManager { try { return mService.getKeyguardDisabledFeatures(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return KEYGUARD_DISABLE_FEATURES_NONE; @@ -2628,7 +2627,7 @@ public class DevicePolicyManager { try { mService.setActiveAdmin(policyReceiver, refreshing, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2659,10 +2658,7 @@ public class DevicePolicyManager { try { return new DeviceAdminInfo(mContext, ri); - } catch (XmlPullParserException e) { - Log.w(TAG, "Unable to parse device policy " + cn, e); - return null; - } catch (IOException e) { + } catch (XmlPullParserException | IOException e) { Log.w(TAG, "Unable to parse device policy " + cn, e); return null; } @@ -2676,7 +2672,7 @@ public class DevicePolicyManager { try { mService.getRemoveWarning(admin, result, myUserId()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2691,7 +2687,7 @@ public class DevicePolicyManager { mService.setActivePasswordState(quality, length, letters, uppercase, lowercase, numbers, symbols, nonletter, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2704,7 +2700,7 @@ public class DevicePolicyManager { try { mService.reportFailedPasswordAttempt(userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2717,7 +2713,7 @@ public class DevicePolicyManager { try { mService.reportSuccessfulPasswordAttempt(userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -2770,7 +2766,7 @@ public class DevicePolicyManager { try { return mService.setDeviceOwner(who, ownerName, userId); } catch (RemoteException re) { - Log.w(TAG, "Failed to set device owner"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -2852,7 +2848,7 @@ public class DevicePolicyManager { try { return mService.getDeviceOwnerComponent(callingUserOnly); } catch (RemoteException re) { - Log.w(TAG, REMOTE_EXCEPTION_MESSAGE); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return null; @@ -2871,7 +2867,7 @@ public class DevicePolicyManager { try { return mService.getDeviceOwnerUserId(); } catch (RemoteException re) { - Log.w(TAG, REMOTE_EXCEPTION_MESSAGE); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return UserHandle.USER_NULL; @@ -2891,7 +2887,7 @@ public class DevicePolicyManager { try { mService.clearDeviceOwner(packageName); } catch (RemoteException re) { - Log.w(TAG, "Failed to clear device owner"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -2933,7 +2929,7 @@ public class DevicePolicyManager { try { return mService.getDeviceOwnerName(); } catch (RemoteException re) { - Log.w(TAG, REMOTE_EXCEPTION_MESSAGE); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return null; @@ -2986,7 +2982,6 @@ public class DevicePolicyManager { mService.setActiveAdmin(admin, false, myUserId); return mService.setProfileOwner(admin, ownerName, myUserId); } catch (RemoteException re) { - Log.w(TAG, "Failed to set profile owner " + re); throw new IllegalArgumentException("Couldn't set profile owner.", re); } } @@ -3008,7 +3003,7 @@ public class DevicePolicyManager { try { mService.clearProfileOwner(admin); } catch (RemoteException re) { - Log.w(TAG, "Failed to clear profile owner " + admin + re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -3022,7 +3017,7 @@ public class DevicePolicyManager { try { return mService.hasUserSetupCompleted(); } catch (RemoteException re) { - Log.w(TAG, "Failed to check whether user setup has completed"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return true; @@ -3053,7 +3048,7 @@ public class DevicePolicyManager { } return mService.setProfileOwner(admin, ownerName, userHandle); } catch (RemoteException re) { - Log.w(TAG, "Failed to set profile owner", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); throw new IllegalArgumentException("Couldn't set profile owner.", re); } } @@ -3076,7 +3071,7 @@ public class DevicePolicyManager { try { return mService.setDeviceOwnerLockScreenInfo(admin, info); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -3090,7 +3085,7 @@ public class DevicePolicyManager { try { return mService.getDeviceOwnerLockScreenInfo(); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return null; @@ -3109,7 +3104,7 @@ public class DevicePolicyManager { try { mService.setProfileEnabled(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3130,14 +3125,14 @@ public class DevicePolicyManager { try { mService.setProfileName(admin, profileName); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } /** * Used to determine if a particular package is registered as the profile owner for the - * current user. A profile owner is a special device admin that has additional privileges + * user. A profile owner is a special device admin that has additional privileges * within the profile. * * @param packageName The package name of the app to compare with the registered profile owner. @@ -3151,7 +3146,7 @@ public class DevicePolicyManager { return profileOwner != null && profileOwner.getPackageName().equals(packageName); } catch (RemoteException re) { - Log.w(TAG, "Failed to check profile owner"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -3177,7 +3172,7 @@ public class DevicePolicyManager { try { return mService.getProfileOwner(userId); } catch (RemoteException re) { - Log.w(TAG, "Failed to get profile owner"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); throw new IllegalArgumentException( "Requested profile owner for invalid userId", re); } @@ -3196,7 +3191,7 @@ public class DevicePolicyManager { try { return mService.getProfileOwnerName(Process.myUserHandle().getIdentifier()); } catch (RemoteException re) { - Log.w(TAG, "Failed to get profile owner"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); throw new IllegalArgumentException( "Requested profile owner for invalid userId", re); } @@ -3217,7 +3212,7 @@ public class DevicePolicyManager { try { return mService.getProfileOwnerName(userId); } catch (RemoteException re) { - Log.w(TAG, "Failed to get profile owner"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); throw new IllegalArgumentException( "Requested profile owner for invalid userId", re); } @@ -3248,7 +3243,7 @@ public class DevicePolicyManager { try { mService.addPersistentPreferredActivity(admin, filter, activity); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3269,7 +3264,7 @@ public class DevicePolicyManager { try { mService.clearPackagePersistentPreferredActivities(admin, packageName); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3309,7 +3304,7 @@ public class DevicePolicyManager { try { mService.setApplicationRestrictions(admin, packageName, settings); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3339,7 +3334,7 @@ public class DevicePolicyManager { try { mService.setTrustAgentConfiguration(admin, target, configuration); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3370,7 +3365,7 @@ public class DevicePolicyManager { try { return mService.getTrustAgentConfiguration(admin, agent, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return new ArrayList<PersistableBundle>(); // empty list @@ -3391,7 +3386,7 @@ public class DevicePolicyManager { try { mService.setCrossProfileCallerIdDisabled(admin, disabled); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3410,7 +3405,7 @@ public class DevicePolicyManager { try { return mService.getCrossProfileCallerIdDisabled(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -3427,14 +3422,14 @@ public class DevicePolicyManager { try { return mService.getCrossProfileCallerIdDisabledForUser(userHandle.getIdentifier()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; } /** - * Start Quick Contact on the managed profile for the current user, if the policy allows. + * Start Quick Contact on the managed profile for the user, if the policy allows. * @hide */ public void startManagedQuickContact(String actualLookupKey, long actualContactId, @@ -3444,13 +3439,13 @@ public class DevicePolicyManager { mService.startManagedQuickContact( actualLookupKey, actualContactId, directoryId, originalIntent); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } /** - * Start Quick Contact on the managed profile for the current user, if the policy allows. + * Start Quick Contact on the managed profile for the user, if the policy allows. * @hide */ public void startManagedQuickContact(String actualLookupKey, long actualContactId, @@ -3478,7 +3473,7 @@ public class DevicePolicyManager { try { mService.setBluetoothContactSharingDisabled(admin, disabled); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3500,7 +3495,7 @@ public class DevicePolicyManager { try { return mService.getBluetoothContactSharingDisabled(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return true; @@ -3520,7 +3515,7 @@ public class DevicePolicyManager { return mService.getBluetoothContactSharingDisabledForUser(userHandle .getIdentifier()); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return true; @@ -3542,7 +3537,7 @@ public class DevicePolicyManager { try { mService.addCrossProfileIntentFilter(admin, filter, flags); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3558,7 +3553,7 @@ public class DevicePolicyManager { try { mService.clearCrossProfileIntentFilters(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3590,7 +3585,7 @@ public class DevicePolicyManager { try { return mService.setPermittedAccessibilityServices(admin, packageNames); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -3610,7 +3605,7 @@ public class DevicePolicyManager { try { return mService.getPermittedAccessibilityServices(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -3634,7 +3629,7 @@ public class DevicePolicyManager { try { return mService.getPermittedAccessibilityServicesForUser(userId); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -3668,7 +3663,7 @@ public class DevicePolicyManager { try { return mService.setPermittedInputMethods(admin, packageNames); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -3689,7 +3684,7 @@ public class DevicePolicyManager { try { return mService.getPermittedInputMethods(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -3697,7 +3692,7 @@ public class DevicePolicyManager { /** * Returns the list of input methods permitted by the device or profiles - * owners of the current user. + * owners of the current user. (*Not* calling user, due to a limitation in InputMethodManager.) * * <p>Null means all input methods are allowed, if a non-null list is returned * it will contain the intersection of the permitted lists for any device or profile @@ -3712,7 +3707,7 @@ public class DevicePolicyManager { try { return mService.getPermittedInputMethodsForCurrentUser(); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -3732,7 +3727,7 @@ public class DevicePolicyManager { try { return mService.getKeepUninstalledPackages(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -3755,7 +3750,7 @@ public class DevicePolicyManager { try { mService.setKeepUninstalledPackages(admin, packageNames); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3779,7 +3774,7 @@ public class DevicePolicyManager { try { return mService.createUser(admin, name); } catch (RemoteException re) { - Log.w(TAG, "Could not create a user", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } return null; } @@ -3818,7 +3813,7 @@ public class DevicePolicyManager { return mService.createAndInitializeUser(admin, name, ownerName, profileOwnerComponent, adminExtras); } catch (RemoteException re) { - Log.w(TAG, "Could not create a user", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } return null; } @@ -3835,7 +3830,7 @@ public class DevicePolicyManager { try { return mService.removeUser(admin, userHandle); } catch (RemoteException re) { - Log.w(TAG, "Could not remove user ", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -3853,7 +3848,7 @@ public class DevicePolicyManager { try { return mService.switchUser(admin, userHandle); } catch (RemoteException re) { - Log.w(TAG, "Could not switch user ", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -3876,7 +3871,7 @@ public class DevicePolicyManager { try { return mService.getApplicationRestrictions(admin, packageName); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -3898,7 +3893,7 @@ public class DevicePolicyManager { try { mService.setUserRestriction(admin, key, true); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3919,7 +3914,7 @@ public class DevicePolicyManager { try { mService.setUserRestriction(admin, key, false); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -3946,7 +3941,7 @@ public class DevicePolicyManager { try { ret = mService.getUserRestrictions(admin, userHandle); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return ret == null ? new Bundle() : ret; @@ -3968,7 +3963,7 @@ public class DevicePolicyManager { try { return mService.setApplicationHidden(admin, packageName, hidden); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -3986,7 +3981,7 @@ public class DevicePolicyManager { try { return mService.isApplicationHidden(admin, packageName); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -3997,14 +3992,14 @@ public class DevicePolicyManager { * when the user was initialized. * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. - * @param packageName The package to be re-enabled in the current profile. + * @param packageName The package to be re-enabled in the calling profile. */ public void enableSystemApp(@NonNull ComponentName admin, String packageName) { if (mService != null) { try { mService.enableSystemApp(admin, packageName); } catch (RemoteException e) { - Log.w(TAG, "Failed to install package: " + packageName); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -4015,7 +4010,7 @@ public class DevicePolicyManager { * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. * @param intent An intent matching the app(s) to be installed. All apps that resolve for this - * intent will be re-enabled in the current profile. + * intent will be re-enabled in the calling profile. * @return int The number of activities that matched the intent and were installed. */ public int enableSystemApp(@NonNull ComponentName admin, Intent intent) { @@ -4023,7 +4018,7 @@ public class DevicePolicyManager { try { return mService.enableSystemAppWithIntent(admin, intent); } catch (RemoteException e) { - Log.w(TAG, "Failed to install packages matching filter: " + intent); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return 0; @@ -4050,7 +4045,7 @@ public class DevicePolicyManager { try { mService.setAccountManagementDisabled(admin, accountType, disabled); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -4078,7 +4073,7 @@ public class DevicePolicyManager { try { return mService.getAccountTypesWithManagementDisabledAsUser(userId); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } @@ -4109,7 +4104,7 @@ public class DevicePolicyManager { try { mService.setLockTaskPackages(admin, packages); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -4125,7 +4120,7 @@ public class DevicePolicyManager { try { return mService.getLockTaskPackages(admin); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return null; @@ -4141,7 +4136,7 @@ public class DevicePolicyManager { try { return mService.isLockTaskPermitted(pkg); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } return false; @@ -4188,7 +4183,7 @@ public class DevicePolicyManager { try { mService.setGlobalSetting(admin, setting, value); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -4216,7 +4211,7 @@ public class DevicePolicyManager { try { mService.setSecureSetting(admin, setting, value); } catch (RemoteException e) { - Log.w(TAG, "Failed talking with device policy service", e); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, e); } } } @@ -4237,7 +4232,7 @@ public class DevicePolicyManager { try { mService.setRestrictionsProvider(admin, provider); } catch (RemoteException re) { - Log.w(TAG, "Failed to set permission provider on device policy service"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -4253,7 +4248,7 @@ public class DevicePolicyManager { try { mService.setMasterVolumeMuted(admin, on); } catch (RemoteException re) { - Log.w(TAG, "Failed to setMasterMute on device policy service"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -4269,7 +4264,7 @@ public class DevicePolicyManager { try { return mService.isMasterVolumeMuted(admin); } catch (RemoteException re) { - Log.w(TAG, "Failed to get isMasterMute on device policy service"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -4289,13 +4284,13 @@ public class DevicePolicyManager { try { mService.setUninstallBlocked(admin, packageName, uninstallBlocked); } catch (RemoteException re) { - Log.w(TAG, "Failed to call block uninstall on device policy service"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } /** - * Check whether the current user has been blocked by device policy from uninstalling a package. + * Check whether the user has been blocked by device policy from uninstalling a package. * Requires the caller to be the profile owner if checking a specific admin's policy. * <p> * <strong>Note:</strong> Starting from {@link android.os.Build.VERSION_CODES#LOLLIPOP_MR1}, the @@ -4313,7 +4308,7 @@ public class DevicePolicyManager { try { return mService.isUninstallBlocked(admin, packageName); } catch (RemoteException re) { - Log.w(TAG, "Failed to call block uninstall on device policy service"); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -4341,7 +4336,7 @@ public class DevicePolicyManager { try { return mService.addCrossProfileWidgetProvider(admin, packageName); } catch (RemoteException re) { - Log.w(TAG, "Error calling addCrossProfileWidgetProvider", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -4368,7 +4363,7 @@ public class DevicePolicyManager { try { return mService.removeCrossProfileWidgetProvider(admin, packageName); } catch (RemoteException re) { - Log.w(TAG, "Error calling removeCrossProfileWidgetProvider", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return false; @@ -4392,14 +4387,14 @@ public class DevicePolicyManager { return providers; } } catch (RemoteException re) { - Log.w(TAG, "Error calling getCrossProfileWidgetProviders", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return Collections.emptyList(); } /** - * Called by profile or device owners to set the current user's photo. + * Called by profile or device owners to set the user's photo. * * @param admin Which {@link DeviceAdminReceiver} this request is associated with. * @param icon the bitmap to set as the photo. @@ -4408,7 +4403,7 @@ public class DevicePolicyManager { try { mService.setUserIcon(admin, icon); } catch (RemoteException re) { - Log.w(TAG, "Could not set the user icon ", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } @@ -4428,7 +4423,7 @@ public class DevicePolicyManager { try { mService.setSystemUpdatePolicy(admin, policy); } catch (RemoteException re) { - Log.w(TAG, "Error calling setSystemUpdatePolicy", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -4443,7 +4438,7 @@ public class DevicePolicyManager { try { return mService.getSystemUpdatePolicy(); } catch (RemoteException re) { - Log.w(TAG, "Error calling getSystemUpdatePolicy", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } return null; @@ -4467,7 +4462,7 @@ public class DevicePolicyManager { try { return mService.setKeyguardDisabled(admin, disabled); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -4487,7 +4482,7 @@ public class DevicePolicyManager { try { return mService.setStatusBarDisabled(admin, disabled); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -4507,7 +4502,7 @@ public class DevicePolicyManager { try { mService.notifyPendingSystemUpdate(updateReceivedTime); } catch (RemoteException re) { - Log.w(TAG, "Could not notify device owner about pending system update", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } } @@ -4533,7 +4528,7 @@ public class DevicePolicyManager { try { mService.setPermissionPolicy(admin, policy); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); } } @@ -4584,7 +4579,7 @@ public class DevicePolicyManager { try { return mService.setPermissionGrantState(admin, packageName, permission, grantState); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -4611,7 +4606,7 @@ public class DevicePolicyManager { try { return mService.getPermissionGrantState(admin, packageName, permission); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return PERMISSION_GRANT_STATE_DEFAULT; } } @@ -4630,7 +4625,7 @@ public class DevicePolicyManager { try { return mService.isProvisioningAllowed(action); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -4647,7 +4642,7 @@ public class DevicePolicyManager { try { return mService.isManagedProfile(admin); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -4663,7 +4658,7 @@ public class DevicePolicyManager { try { return mService.isSystemOnlyUser(admin); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return false; } } @@ -4680,7 +4675,7 @@ public class DevicePolicyManager { try { return mService.getWifiMacAddress(); } catch (RemoteException re) { - Log.w(TAG, "Failed talking with device policy service", re); + Log.w(TAG, REMOTE_EXCEPTION_MESSAGE, re); return null; } } diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java index 54bfca365769..eca2c3b0579d 100644 --- a/core/java/android/os/Process.java +++ b/core/java/android/os/Process.java @@ -144,6 +144,12 @@ public class Process { public static final int SHARED_RELRO_UID = 1037; /** + * Defines the UID/GID for the audioserver process. + * @hide + */ + public static final int AUDIOSERVER_UID = 1041; + + /** * Defines the start of a range of UIDs (and GIDs), going from this * number to {@link #LAST_APPLICATION_UID} that are reserved for assigning * to applications. diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java index 00a874b2d6fe..1f16c4a4cded 100644 --- a/core/java/android/os/UserManager.java +++ b/core/java/android/os/UserManager.java @@ -781,6 +781,7 @@ public class UserManager { * pattern or PIN), and credential-encrypted private app data storage is * available. */ + @Deprecated public boolean isUserRunningAndLocked() { return isUserRunningAndLocked(Process.myUserHandle()); } @@ -793,6 +794,7 @@ public class UserManager { * * @param user to retrieve the unlocked state for. */ + @Deprecated public boolean isUserRunningAndLocked(UserHandle user) { try { return ActivityManagerNative.getDefault().isUserRunning( @@ -808,6 +810,7 @@ public class UserManager { * pattern or PIN), and credential-encrypted private app data storage is * available. */ + @Deprecated public boolean isUserRunningAndUnlocked() { return isUserRunningAndUnlocked(Process.myUserHandle()); } @@ -820,6 +823,7 @@ public class UserManager { * * @param user to retrieve the unlocked state for. */ + @Deprecated public boolean isUserRunningAndUnlocked(UserHandle user) { try { return ActivityManagerNative.getDefault().isUserRunning( @@ -830,6 +834,33 @@ public class UserManager { } /** + * Return whether the calling user is running in an "unlocked" state. A user + * is unlocked only after they've entered their credentials (such as a lock + * pattern or PIN), and credential-encrypted private app data storage is + * available. + */ + public boolean isUserUnlocked() { + return isUserUnlocked(Process.myUserHandle()); + } + + /** + * Return whether the given user is running in an "unlocked" state. A user + * is unlocked only after they've entered their credentials (such as a lock + * pattern or PIN), and credential-encrypted private app data storage is + * available. + * + * @param user to retrieve the unlocked state for. + */ + public boolean isUserUnlocked(UserHandle user) { + try { + return ActivityManagerNative.getDefault().isUserRunning( + user.getIdentifier(), ActivityManager.FLAG_AND_UNLOCKED); + } catch (RemoteException e) { + return false; + } + } + + /** * Returns the UserInfo object describing a specific user. * Requires {@link android.Manifest.permission#MANAGE_USERS} permission. * @param userHandle the user handle of the user whose information is being requested. diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 74fd8cd10de3..a1e551082799 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5749,6 +5749,13 @@ public final class Settings { "camera_double_tap_power_gesture_disabled"; /** + * Name of the package used as WebView provider (if unset the provider is instead determined + * by the system). + * @hide + */ + public static final String WEBVIEW_PROVIDER = "webview_provider"; + + /** * This are the settings to be backed up. * * NOTE: Settings are backed up and restored in the order they appear diff --git a/core/java/android/security/net/config/ApplicationConfig.java b/core/java/android/security/net/config/ApplicationConfig.java index b6276418c49d..71d9d5d0e04d 100644 --- a/core/java/android/security/net/config/ApplicationConfig.java +++ b/core/java/android/security/net/config/ApplicationConfig.java @@ -68,7 +68,7 @@ public final class ApplicationConfig { */ public NetworkSecurityConfig getConfigForHostname(String hostname) { ensureInitialized(); - if (hostname.isEmpty() || mConfigs == null) { + if (hostname == null || hostname.isEmpty() || mConfigs == null) { return mDefaultConfig; } if (hostname.charAt(0) == '.') { diff --git a/core/java/android/service/notification/NotificationListenerService.java b/core/java/android/service/notification/NotificationListenerService.java index a7545f21ad22..232d4fe4e979 100644 --- a/core/java/android/service/notification/NotificationListenerService.java +++ b/core/java/android/service/notification/NotificationListenerService.java @@ -713,10 +713,10 @@ public abstract class NotificationListenerService extends Service { createLegacyIconExtras(sbn.getNotification()); maybePopulateRemoteViews(sbn.getNotification()); } catch (IllegalArgumentException e) { - // drop corrupt notification - sbn = null; + // warn and drop corrupt notification Log.w(TAG, "onNotificationPosted: can't rebuild notification from " + sbn.getPackageName()); + sbn = null; } // protect subclass from concurrent modifications of (@link mNotificationKeys}. @@ -833,29 +833,29 @@ public abstract class NotificationListenerService extends Service { /** * A notification with no importance: shows nowhere, is blocked. */ - public static final int IMPORTANCE_NONE = -2; + public static final int IMPORTANCE_NONE = 0; /** * Low notification importance: only shows in the shade, below the fold. */ - public static final int IMPORTANCE_LOW = -1; + public static final int IMPORTANCE_LOW = 1; /** * Default notification importance: shows everywhere, but is not intrusive. */ - public static final int IMPORTANCE_DEFAULT = 0; + public static final int IMPORTANCE_DEFAULT = 2; /** * Higher notification importance: shows everywhere, makes noise, * but does not visually intrude. */ - public static final int IMPORTANCE_HIGH = 1; + public static final int IMPORTANCE_HIGH = 3; /** * Highest notification importance: shows everywhere, makes noise, * and also visually intrudes. */ - public static final int IMPORTANCE_MAX = 2; + public static final int IMPORTANCE_MAX = 4; private String mKey; private int mRank = -1; @@ -863,6 +863,8 @@ public abstract class NotificationListenerService extends Service { private boolean mMatchesInterruptionFilter; private int mVisibilityOverride; private int mSuppressedVisualEffects; + private int mImportance; + private CharSequence mImportanceExplanation; public Ranking() {} @@ -928,7 +930,7 @@ public abstract class NotificationListenerService extends Service { * @return the rank of the notification */ public int getImportance() { - return IMPORTANCE_DEFAULT; // TODO implement; + return mImportance; } /** @@ -939,18 +941,21 @@ public abstract class NotificationListenerService extends Service { * @return the explanation for the importance, or null if it is the natural importance */ public CharSequence getImportanceExplanation() { - return null; // TODO implement + return mImportanceExplanation; } private void populate(String key, int rank, boolean isAmbient, boolean matchesInterruptionFilter, int visibilityOverride, - int suppressedVisualEffects) { + int suppressedVisualEffects, int importance, + CharSequence explanation) { mKey = key; mRank = rank; mIsAmbient = isAmbient; mMatchesInterruptionFilter = matchesInterruptionFilter; mVisibilityOverride = visibilityOverride; mSuppressedVisualEffects = suppressedVisualEffects; + mImportance = importance; + mImportanceExplanation = explanation; } /** @@ -990,6 +995,8 @@ public abstract class NotificationListenerService extends Service { private ArraySet<Object> mIntercepted; private ArrayMap<String, Integer> mVisibilityOverrides; private ArrayMap<String, Integer> mSuppressedVisualEffects; + private ArrayMap<String, Integer> mImportance; + private ArrayMap<String, String> mImportanceExplanation; private RankingMap(NotificationRankingUpdate rankingUpdate) { mRankingUpdate = rankingUpdate; @@ -1015,7 +1022,8 @@ public abstract class NotificationListenerService extends Service { public boolean getRanking(String key, Ranking outRanking) { int rank = getRank(key); outRanking.populate(key, rank, isAmbient(key), !isIntercepted(key), - getVisibilityOverride(key), getSuppressedVisualEffects(key)); + getVisibilityOverride(key), getSuppressedVisualEffects(key), + getImportance(key), getImportanceExplanation(key)); return rank >= 0; } @@ -1073,6 +1081,28 @@ public abstract class NotificationListenerService extends Service { return suppressed.intValue(); } + private int getImportance(String key) { + synchronized (this) { + if (mImportance == null) { + buildImportanceLocked(); + } + } + Integer importance = mImportance.get(key); + if (importance == null) { + return Ranking.IMPORTANCE_DEFAULT; + } + return importance.intValue(); + } + + private String getImportanceExplanation(String key) { + synchronized (this) { + if (mImportanceExplanation == null) { + buildImportanceExplanationLocked(); + } + } + return mImportanceExplanation.get(key); + } + // Locked by 'this' private void buildRanksLocked() { String[] orderedKeys = mRankingUpdate.getOrderedKeys(); @@ -1107,6 +1137,25 @@ public abstract class NotificationListenerService extends Service { mSuppressedVisualEffects.put(key, suppressedBundle.getInt(key)); } } + // Locked by 'this' + private void buildImportanceLocked() { + String[] orderedKeys = mRankingUpdate.getOrderedKeys(); + int[] importance = mRankingUpdate.getImportance(); + mImportance = new ArrayMap<>(orderedKeys.length); + for (int i = 0; i < orderedKeys.length; i++) { + String key = orderedKeys[i]; + mImportance.put(key, importance[i]); + } + } + + // Locked by 'this' + private void buildImportanceExplanationLocked() { + Bundle explanationBundle = mRankingUpdate.getImportanceExplanation(); + mImportanceExplanation = new ArrayMap<>(explanationBundle.size()); + for (String key: explanationBundle.keySet()) { + mImportanceExplanation.put(key, explanationBundle.getString(key)); + } + } // ----------- Parcelable diff --git a/core/java/android/service/notification/NotificationRankingUpdate.java b/core/java/android/service/notification/NotificationRankingUpdate.java index 1282fb11b666..0d42ffb4c30f 100644 --- a/core/java/android/service/notification/NotificationRankingUpdate.java +++ b/core/java/android/service/notification/NotificationRankingUpdate.java @@ -29,14 +29,19 @@ public class NotificationRankingUpdate implements Parcelable { private final int mFirstAmbientIndex; private final Bundle mVisibilityOverrides; private final Bundle mSuppressedVisualEffects; + private final int[] mImportance; + private final Bundle mImportanceExplanation; public NotificationRankingUpdate(String[] keys, String[] interceptedKeys, - Bundle visibilityOverrides, int firstAmbientIndex, Bundle suppressedVisualEffects) { + Bundle visibilityOverrides, int firstAmbientIndex, Bundle suppressedVisualEffects, + int[] importance, Bundle explanation) { mKeys = keys; mFirstAmbientIndex = firstAmbientIndex; mInterceptedKeys = interceptedKeys; mVisibilityOverrides = visibilityOverrides; mSuppressedVisualEffects = suppressedVisualEffects; + mImportance = importance; + mImportanceExplanation = explanation; } public NotificationRankingUpdate(Parcel in) { @@ -45,6 +50,9 @@ public class NotificationRankingUpdate implements Parcelable { mInterceptedKeys = in.readStringArray(); mVisibilityOverrides = in.readBundle(); mSuppressedVisualEffects = in.readBundle(); + mImportance = new int[mKeys.length]; + in.readIntArray(mImportance); + mImportanceExplanation = in.readBundle(); } @Override @@ -59,6 +67,8 @@ public class NotificationRankingUpdate implements Parcelable { out.writeStringArray(mInterceptedKeys); out.writeBundle(mVisibilityOverrides); out.writeBundle(mSuppressedVisualEffects); + out.writeIntArray(mImportance); + out.writeBundle(mImportanceExplanation); } public static final Parcelable.Creator<NotificationRankingUpdate> CREATOR @@ -91,4 +101,12 @@ public class NotificationRankingUpdate implements Parcelable { public Bundle getSuppressedVisualEffects() { return mSuppressedVisualEffects; } + + public int[] getImportance() { + return mImportance; + } + + public Bundle getImportanceExplanation() { + return mImportanceExplanation; + } } diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java index 2cab914bed62..198e43dae4e9 100644 --- a/core/java/android/service/notification/StatusBarNotification.java +++ b/core/java/android/service/notification/StatusBarNotification.java @@ -42,7 +42,6 @@ public class StatusBarNotification implements Parcelable { private final UserHandle user; private final long postTime; - private final int score; private Context mContext; // used for inflation & icon expansion /** @hide */ @@ -64,7 +63,6 @@ public class StatusBarNotification implements Parcelable { this.tag = tag; this.uid = uid; this.initialPid = initialPid; - this.score = score; this.notification = notification; this.user = user; this.postTime = postTime; @@ -83,7 +81,6 @@ public class StatusBarNotification implements Parcelable { } this.uid = in.readInt(); this.initialPid = in.readInt(); - this.score = in.readInt(); this.notification = new Notification(in); this.user = UserHandle.readFromParcel(in); this.postTime = in.readLong(); @@ -120,7 +117,6 @@ public class StatusBarNotification implements Parcelable { } out.writeInt(this.uid); out.writeInt(this.initialPid); - out.writeInt(this.score); this.notification.writeToParcel(out, flags); user.writeToParcel(out, flags); @@ -153,14 +149,14 @@ public class StatusBarNotification implements Parcelable { this.notification.cloneInto(no, false); // light copy return new StatusBarNotification(this.pkg, this.opPkg, this.id, this.tag, this.uid, this.initialPid, - this.score, no, this.user, this.postTime); + 0, no, this.user, this.postTime); } @Override public StatusBarNotification clone() { return new StatusBarNotification(this.pkg, this.opPkg, this.id, this.tag, this.uid, this.initialPid, - this.score, this.notification.clone(), this.user, this.postTime); + 0, this.notification.clone(), this.user, this.postTime); } @Override @@ -168,7 +164,7 @@ public class StatusBarNotification implements Parcelable { return String.format( "StatusBarNotification(pkg=%s user=%s id=%d tag=%s score=%d key=%s: %s)", this.pkg, this.user, this.id, this.tag, - this.score, this.key, this.notification); + 0, this.key, this.notification); } /** Convenience method to check the notification's flags for @@ -247,11 +243,6 @@ public class StatusBarNotification implements Parcelable { return postTime; } - /** @hide */ - public int getScore() { - return score; - } - /** * A unique instance key for this notification record. */ diff --git a/core/java/android/webkit/IWebViewUpdateService.aidl b/core/java/android/webkit/IWebViewUpdateService.aidl index a77459b09251..89d5d69de392 100644 --- a/core/java/android/webkit/IWebViewUpdateService.aidl +++ b/core/java/android/webkit/IWebViewUpdateService.aidl @@ -16,6 +16,10 @@ package android.webkit; +import android.content.pm.PackageInfo; +import android.webkit.WebViewProviderInfo; +import android.webkit.WebViewProviderResponse; + /** * Private service to wait for the updatable WebView to be ready for use. * @hide @@ -25,12 +29,28 @@ interface IWebViewUpdateService { /** * Used by the relro file creator to notify the service that it's done. */ - void notifyRelroCreationCompleted(boolean is64Bit, boolean success); + void notifyRelroCreationCompleted(); /** * Used by WebViewFactory to block loading of WebView code until - * preparations are complete. + * preparations are complete. Returns the package used as WebView provider. */ - void waitForRelroCreationCompleted(boolean is64Bit); + WebViewProviderResponse waitForAndGetProvider(); + /** + * DevelopmentSettings uses this to notify WebViewUpdateService that a + * new provider has been selected by the user. + */ + void changeProviderAndSetting(String newProvider); + + /** + * DevelopmentSettings uses this to get the current available WebView + * providers (to display as choices to the user). + */ + WebViewProviderInfo[] getValidWebViewPackages(); + + /** + * Used by DevelopmentSetting to get the name of the WebView provider currently in use. + */ + String getCurrentWebViewPackageName(); } diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index 229011db049c..01d15664f24a 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -24,6 +24,7 @@ import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.res.XmlResourceParser; import android.os.Build; import android.os.Process; import android.os.RemoteException; @@ -31,20 +32,27 @@ import android.os.ServiceManager; import android.os.StrictMode; import android.os.SystemProperties; import android.os.Trace; +import android.provider.Settings; +import android.provider.Settings.Secure; import android.text.TextUtils; import android.util.AndroidRuntimeException; import android.util.Log; +import com.android.internal.util.XmlUtils; import com.android.server.LocalServices; import dalvik.system.VMRuntime; import java.io.File; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; +import org.xmlpull.v1.XmlPullParserException; + /** * Top level factory, used creating all the main WebView implementation classes. * @@ -83,6 +91,8 @@ public final class WebViewFactory { public static final int LIBLOAD_SUCCESS = 0; public static final int LIBLOAD_WRONG_PACKAGE_NAME = 1; public static final int LIBLOAD_ADDRESS_SPACE_NOT_RESERVED = 2; + + // error codes for waiting for WebView preparation public static final int LIBLOAD_FAILED_WAITING_FOR_RELRO = 3; public static final int LIBLOAD_FAILED_LISTING_WEBVIEW_PACKAGES = 4; @@ -91,57 +101,95 @@ public final class WebViewFactory { public static final int LIBLOAD_FAILED_TO_LOAD_LIBRARY = 6; public static final int LIBLOAD_FAILED_JNI_CALL = 7; - private static class MissingWebViewPackageException extends AndroidRuntimeException { - public MissingWebViewPackageException(String message) { super(message); } - public MissingWebViewPackageException(Exception e) { super(e); } - } - - /** @hide */ - public static String[] getWebViewPackageNames() { - return AppGlobals.getInitialApplication().getResources().getStringArray( - com.android.internal.R.array.config_webViewPackageNames); - } - - // TODO (gsennton) remove when committing webview xts test change - public static String getWebViewPackageName() { - String[] webViewPackageNames = getWebViewPackageNames(); - return webViewPackageNames[webViewPackageNames.length-1]; + // more error codes for waiting for WebView preparation + public static final int LIBLOAD_WEBVIEW_BEING_REPLACED = 8; + public static final int LIBLOAD_FAILED_WAITING_FOR_WEBVIEW_REASON_UNKNOWN = 9; + + private static String getWebViewPreparationErrorReason(int error) { + switch (error) { + case LIBLOAD_FAILED_WAITING_FOR_RELRO: + return "Time out waiting for Relro files being created"; + case LIBLOAD_FAILED_LISTING_WEBVIEW_PACKAGES: + return "No WebView installed"; + case LIBLOAD_WEBVIEW_BEING_REPLACED: + return "Time out waiting for WebView to be replaced"; + case LIBLOAD_FAILED_WAITING_FOR_WEBVIEW_REASON_UNKNOWN: + return "Crashed for unknown reason"; + } + return "Unknown"; } /** - * Return the package info of the first package in the webview priority list that contains - * webview. - * * @hide */ - public static PackageInfo findPreferredWebViewPackage() { - PackageManager pm = AppGlobals.getInitialApplication().getPackageManager(); + public static class MissingWebViewPackageException extends AndroidRuntimeException { + public MissingWebViewPackageException(String message) { super(message); } + public MissingWebViewPackageException(Exception e) { super(e); } + } - for (String packageName : getWebViewPackageNames()) { - try { - PackageInfo packageInfo = pm.getPackageInfo(packageName, - PackageManager.GET_META_DATA); - ApplicationInfo applicationInfo = packageInfo.applicationInfo; + private static String TAG_START = "webviewproviders"; + private static String TAG_WEBVIEW_PROVIDER = "webviewprovider"; + private static String TAG_PACKAGE_NAME = "packageName"; + private static String TAG_DESCRIPTION = "description"; + private static String TAG_SIGNATURE = "signature"; - // If the correct flag is set the package contains webview. - if (getWebViewLibrary(applicationInfo) != null) { - return packageInfo; + /** + * Returns all packages declared in the framework resources as potential WebView providers. + * @hide + * */ + public static WebViewProviderInfo[] getWebViewPackages() { + XmlResourceParser parser = null; + List<WebViewProviderInfo> webViewProviders = new ArrayList<WebViewProviderInfo>(); + try { + parser = AppGlobals.getInitialApplication().getResources().getXml( + com.android.internal.R.xml.config_webview_packages); + XmlUtils.beginDocument(parser, TAG_START); + while(true) { + XmlUtils.nextElement(parser); + String element = parser.getName(); + if (element == null) { + break; + } + if (element.equals(TAG_WEBVIEW_PROVIDER)) { + String packageName = parser.getAttributeValue(null, TAG_PACKAGE_NAME); + if (packageName == null) { + throw new MissingWebViewPackageException( + "WebView provider in framework resources missing package name"); + } + String description = parser.getAttributeValue(null, TAG_DESCRIPTION); + if (description == null) { + throw new MissingWebViewPackageException( + "WebView provider in framework resources missing description"); + } + String signature = parser.getAttributeValue(null, TAG_SIGNATURE); + webViewProviders.add( + new WebViewProviderInfo(packageName, description, signature)); + } + else { + Log.e(LOGTAG, "Found an element that is not a webview provider"); } - } catch (PackageManager.NameNotFoundException e) { } + } catch(XmlPullParserException e) { + throw new MissingWebViewPackageException("Error when parsing WebView meta data " + e); + } catch(IOException e) { + throw new MissingWebViewPackageException("Error when parsing WebView meta data " + e); + } finally { + if (parser != null) parser.close(); } - throw new MissingWebViewPackageException("Could not find a loadable WebView package"); + return webViewProviders.toArray(new WebViewProviderInfo[webViewProviders.size()]); } - // throws MissingWebViewPackageException - private static ApplicationInfo getWebViewApplicationInfo() { - if (sPackageInfo == null) - return findPreferredWebViewPackage().applicationInfo; - else - return sPackageInfo.applicationInfo; + + // TODO (gsennton) remove when committing webview xts test change + public static String getWebViewPackageName() { + WebViewProviderInfo[] providers = getWebViewPackages(); + return providers[0].packageName; } - private static String getWebViewLibrary(ApplicationInfo ai) { + /** + * @hide + */ + public static String getWebViewLibrary(ApplicationInfo ai) { if (ai.metaData != null) return ai.metaData.getString("com.android.webview.WebViewLibrary"); return null; @@ -156,16 +204,14 @@ public final class WebViewFactory { * name is the same as the one providing the webview. */ public static int loadWebViewNativeLibraryFromPackage(String packageName) { - try { - sPackageInfo = findPreferredWebViewPackage(); - } catch (MissingWebViewPackageException e) { - return LIBLOAD_FAILED_LISTING_WEBVIEW_PACKAGES; + int ret = waitForProviderAndSetPackageInfo(); + if (ret != LIBLOAD_SUCCESS) { + return ret; } + if (!sPackageInfo.packageName.equals(packageName)) + return LIBLOAD_WRONG_PACKAGE_NAME; - if (packageName != null && packageName.equals(sPackageInfo.packageName)) { - return loadNativeLibrary(); - } - return LIBLOAD_WRONG_PACKAGE_NAME; + return loadNativeLibrary(); } static WebViewFactoryProvider getProvider() { @@ -207,17 +253,45 @@ public final class WebViewFactory { private static Class<WebViewFactoryProvider> getProviderClass() { try { // First fetch the package info so we can log the webview package version. - sPackageInfo = findPreferredWebViewPackage(); + int res = waitForProviderAndSetPackageInfo(); + if (res != LIBLOAD_SUCCESS) { + throw new MissingWebViewPackageException( + "Failed to load WebView provider, error: " + + getWebViewPreparationErrorReason(res)); + } Log.i(LOGTAG, "Loading " + sPackageInfo.packageName + " version " + sPackageInfo.versionName + " (code " + sPackageInfo.versionCode + ")"); + Application initialApplication = AppGlobals.getInitialApplication(); + Context webViewContext = null; + try { + // Construct a package context to load the Java code into the current app. + // This is done as early as possible since by constructing a package context we + // register the WebView package as a dependency for the current application so that + // when the WebView package is updated this application will be killed. + webViewContext = initialApplication.createPackageContext( + sPackageInfo.packageName, + Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); + } catch (PackageManager.NameNotFoundException e) { + throw new MissingWebViewPackageException(e); + } + Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.loadNativeLibrary()"); loadNativeLibrary(); Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW); Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "WebViewFactory.getChromiumProviderClass()"); try { - return getChromiumProviderClass(); + initialApplication.getAssets().addAssetPathAsSharedLibrary( + webViewContext.getApplicationInfo().sourceDir); + ClassLoader clazzLoader = webViewContext.getClassLoader(); + Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "Class.forName()"); + try { + return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, + true, clazzLoader); + } finally { + Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW); + } } catch (ClassNotFoundException e) { Log.e(LOGTAG, "error loading provider", e); throw new AndroidRuntimeException(e); @@ -239,30 +313,6 @@ public final class WebViewFactory { } } - // throws MissingWebViewPackageException - private static Class<WebViewFactoryProvider> getChromiumProviderClass() - throws ClassNotFoundException { - Application initialApplication = AppGlobals.getInitialApplication(); - try { - // Construct a package context to load the Java code into the current app. - Context webViewContext = initialApplication.createPackageContext( - sPackageInfo.packageName, - Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); - initialApplication.getAssets().addAssetPathAsSharedLibrary( - webViewContext.getApplicationInfo().sourceDir); - ClassLoader clazzLoader = webViewContext.getClassLoader(); - Trace.traceBegin(Trace.TRACE_TAG_WEBVIEW, "Class.forName()"); - try { - return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, true, - clazzLoader); - } finally { - Trace.traceEnd(Trace.TRACE_TAG_WEBVIEW); - } - } catch (PackageManager.NameNotFoundException e) { - throw new MissingWebViewPackageException(e); - } - } - /** * Perform any WebView loading preparations that must happen in the zygote. * Currently, this means allocating address space to load the real JNI library later. @@ -289,44 +339,34 @@ public final class WebViewFactory { } } - /** - * Perform any WebView loading preparations that must happen at boot from the system server, - * after the package manager has started or after an update to the webview is installed. - * This must be called in the system server. - * Currently, this means spawning the child processes which will create the relro files. - */ - public static void prepareWebViewInSystemServer() { - String[] nativePaths = null; - try { - nativePaths = getWebViewNativeLibraryPaths(); - } catch (Throwable t) { - // Log and discard errors at this stage as we must not crash the system server. - Log.e(LOGTAG, "error preparing webview native library", t); - } - prepareWebViewInSystemServer(nativePaths); - } - - private static void prepareWebViewInSystemServer(String[] nativeLibraryPaths) { + private static int prepareWebViewInSystemServer(String[] nativeLibraryPaths) { if (DEBUG) Log.v(LOGTAG, "creating relro files"); + int numRelros = 0; // We must always trigger createRelRo regardless of the value of nativeLibraryPaths. Any // unexpected values will be handled there to ensure that we trigger notifying any process - // waiting on relreo creation. + // waiting on relro creation. if (Build.SUPPORTED_32_BIT_ABIS.length > 0) { if (DEBUG) Log.v(LOGTAG, "Create 32 bit relro"); createRelroFile(false /* is64Bit */, nativeLibraryPaths); + numRelros++; } if (Build.SUPPORTED_64_BIT_ABIS.length > 0) { if (DEBUG) Log.v(LOGTAG, "Create 64 bit relro"); createRelroFile(true /* is64Bit */, nativeLibraryPaths); + numRelros++; } + return numRelros; } - public static void onWebViewUpdateInstalled() { + /** + * @hide + */ + public static int onWebViewProviderChanged(PackageInfo packageInfo) { String[] nativeLibs = null; try { - nativeLibs = WebViewFactory.getWebViewNativeLibraryPaths(); + nativeLibs = WebViewFactory.getWebViewNativeLibraryPaths(packageInfo); if (nativeLibs != null) { long newVmSize = 0L; @@ -373,7 +413,7 @@ public final class WebViewFactory { // Log and discard errors at this stage as we must not crash the system server. Log.e(LOGTAG, "error preparing webview native library", t); } - prepareWebViewInSystemServer(nativeLibs); + return prepareWebViewInSystemServer(nativeLibs); } // throws MissingWebViewPackageException @@ -397,8 +437,8 @@ public final class WebViewFactory { } // throws MissingWebViewPackageException - private static String[] getWebViewNativeLibraryPaths() { - ApplicationInfo ai = getWebViewApplicationInfo(); + private static String[] getWebViewNativeLibraryPaths(PackageInfo packageInfo) { + ApplicationInfo ai = packageInfo.applicationInfo; final String NATIVE_LIB_FILE_NAME = getWebViewLibrary(ai); String path32; @@ -460,7 +500,7 @@ public final class WebViewFactory { public void run() { try { Log.e(LOGTAG, "relro file creator for " + abi + " crashed. Proceeding without"); - getUpdateService().notifyRelroCreationCompleted(is64Bit, false); + getUpdateService().notifyRelroCreationCompleted(); } catch (RemoteException e) { Log.e(LOGTAG, "Cannot reach WebViewUpdateService. " + e.getMessage()); } @@ -508,7 +548,7 @@ public final class WebViewFactory { } finally { // We must do our best to always notify the update service, even if something fails. try { - getUpdateService().notifyRelroCreationCompleted(is64Bit, result); + getUpdateService().notifyRelroCreationCompleted(); } catch (RemoteException e) { Log.e(LOGTAG, "error notifying update service", e); } @@ -521,35 +561,38 @@ public final class WebViewFactory { } } + private static int waitForProviderAndSetPackageInfo() { + WebViewProviderResponse response = null; + try { + response = + getUpdateService().waitForAndGetProvider(); + if (response.status == WebViewFactory.LIBLOAD_SUCCESS) + sPackageInfo = response.packageInfo; + } catch (RemoteException e) { + Log.e(LOGTAG, "error waiting for relro creation", e); + return LIBLOAD_FAILED_WAITING_FOR_WEBVIEW_REASON_UNKNOWN; + } + return response.status; + } + + // Assumes that we have waited for relro creation and set sPackageInfo private static int loadNativeLibrary() { if (!sAddressSpaceReserved) { Log.e(LOGTAG, "can't load with relro file; address space not reserved"); return LIBLOAD_ADDRESS_SPACE_NOT_RESERVED; } - try { - getUpdateService().waitForRelroCreationCompleted(VMRuntime.getRuntime().is64Bit()); - } catch (RemoteException e) { - Log.e(LOGTAG, "error waiting for relro creation, proceeding without", e); - return LIBLOAD_FAILED_WAITING_FOR_RELRO; - } - - try { - String[] args = getWebViewNativeLibraryPaths(); - int result = nativeLoadWithRelroFile(args[0] /* path32 */, - args[1] /* path64 */, - CHROMIUM_WEBVIEW_NATIVE_RELRO_32, - CHROMIUM_WEBVIEW_NATIVE_RELRO_64); - if (result != LIBLOAD_SUCCESS) { - Log.w(LOGTAG, "failed to load with relro file, proceeding without"); - } else if (DEBUG) { - Log.v(LOGTAG, "loaded with relro file"); - } - return result; - } catch (MissingWebViewPackageException e) { - Log.e(LOGTAG, "Failed to list WebView package libraries for loadNativeLibrary", e); - return LIBLOAD_FAILED_LISTING_WEBVIEW_PACKAGES; + String[] args = getWebViewNativeLibraryPaths(sPackageInfo); + int result = nativeLoadWithRelroFile(args[0] /* path32 */, + args[1] /* path64 */, + CHROMIUM_WEBVIEW_NATIVE_RELRO_32, + CHROMIUM_WEBVIEW_NATIVE_RELRO_64); + if (result != LIBLOAD_SUCCESS) { + Log.w(LOGTAG, "failed to load with relro file, proceeding without"); + } else if (DEBUG) { + Log.v(LOGTAG, "loaded with relro file"); } + return result; } private static IWebViewUpdateService getUpdateService() { diff --git a/core/java/android/webkit/WebViewProviderInfo.aidl b/core/java/android/webkit/WebViewProviderInfo.aidl new file mode 100644 index 000000000000..82e5a7936de8 --- /dev/null +++ b/core/java/android/webkit/WebViewProviderInfo.aidl @@ -0,0 +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.webkit; + +parcelable WebViewProviderInfo; diff --git a/core/java/android/webkit/WebViewProviderInfo.java b/core/java/android/webkit/WebViewProviderInfo.java new file mode 100644 index 000000000000..d5e3a230919b --- /dev/null +++ b/core/java/android/webkit/WebViewProviderInfo.java @@ -0,0 +1,140 @@ +/* + * 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.webkit; + +import android.app.AppGlobals; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.Signature; +import android.os.Build; +import android.os.Parcel; +import android.os.Parcelable; +import android.util.AndroidRuntimeException; +import android.util.Base64; + +import java.util.Arrays; + +/** @hide */ +public class WebViewProviderInfo implements Parcelable { + + /** + * @hide + */ + public static class WebViewPackageNotFoundException extends AndroidRuntimeException { + public WebViewPackageNotFoundException(String message) { super(message); } + public WebViewPackageNotFoundException(Exception e) { super(e); } + } + + public WebViewProviderInfo(String packageName, String description, String signature) { + this.packageName = packageName; + this.description = description; + this.signature = signature; + } + + private boolean hasValidSignature() { + if (Build.IS_DEBUGGABLE) + return true; + Signature[] packageSignatures; + try { + // If no signature is declared, instead check whether the package is included in the + // system. + if (signature == null) + return getPackageInfo().applicationInfo.isSystemApp(); + + packageSignatures = getPackageInfo().signatures; + } catch (WebViewPackageNotFoundException e) { + return false; + } + if (packageSignatures.length != 1) + return false; + final byte[] releaseSignature = Base64.decode(signature, Base64.DEFAULT); + return Arrays.equals(releaseSignature, packageSignatures[0].toByteArray()); + } + + /** + * Returns whether this provider is valid for use as a WebView provider. + */ + public boolean isValidProvider() { + ApplicationInfo applicationInfo; + try { + applicationInfo = getPackageInfo().applicationInfo; + } catch (WebViewPackageNotFoundException e) { + return false; + } + if (hasValidSignature() && WebViewFactory.getWebViewLibrary(applicationInfo) != null) { + return true; + } + return false; + } + + public PackageInfo getPackageInfo() { + if (packageInfo == null) { + try { + PackageManager pm = AppGlobals.getInitialApplication().getPackageManager(); + packageInfo = pm.getPackageInfo(packageName, PACKAGE_FLAGS); + } catch (PackageManager.NameNotFoundException e) { + throw new WebViewPackageNotFoundException(e); + } + } + return packageInfo; + } + + // aidl stuff + public static final Parcelable.Creator<WebViewProviderInfo> CREATOR = + new Parcelable.Creator<WebViewProviderInfo>() { + public WebViewProviderInfo createFromParcel(Parcel in) { + return new WebViewProviderInfo(in); + } + + public WebViewProviderInfo[] newArray(int size) { + return new WebViewProviderInfo[size]; + } + }; + + private WebViewProviderInfo(Parcel in) { + packageName = in.readString(); + description = in.readString(); + signature = in.readString(); + packageInfo = null; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeString(packageName); + out.writeString(description); + out.writeString(signature); + } + + // fields read from framework resource + public String packageName; + public String description; + + private String signature; + + private PackageInfo packageInfo; + // flags declaring we want extra info from the package manager + private final static int PACKAGE_FLAGS = + PackageManager.GET_META_DATA + | PackageManager.GET_SIGNATURES; +} + diff --git a/core/java/android/webkit/WebViewProviderResponse.aidl b/core/java/android/webkit/WebViewProviderResponse.aidl new file mode 100644 index 000000000000..9c884cc7ad33 --- /dev/null +++ b/core/java/android/webkit/WebViewProviderResponse.aidl @@ -0,0 +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.webkit; + +parcelable WebViewProviderResponse; diff --git a/core/java/android/webkit/WebViewProviderResponse.java b/core/java/android/webkit/WebViewProviderResponse.java new file mode 100644 index 000000000000..f5e09e2be71e --- /dev/null +++ b/core/java/android/webkit/WebViewProviderResponse.java @@ -0,0 +1,61 @@ +/* + * 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.webkit; + +import android.content.pm.PackageInfo; +import android.os.Parcel; +import android.os.Parcelable; + +/** @hide */ +public class WebViewProviderResponse implements Parcelable { + + public WebViewProviderResponse(PackageInfo packageInfo, int status) { + this.packageInfo = packageInfo; + this.status = status; + } + + // aidl stuff + public static final Parcelable.Creator<WebViewProviderResponse> CREATOR = + new Parcelable.Creator<WebViewProviderResponse>() { + public WebViewProviderResponse createFromParcel(Parcel in) { + return new WebViewProviderResponse(in); + } + + public WebViewProviderResponse[] newArray(int size) { + return new WebViewProviderResponse[size]; + } + }; + + private WebViewProviderResponse(Parcel in) { + packageInfo = in.readTypedObject(PackageInfo.CREATOR); + status = in.readInt(); + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel out, int flags) { + out.writeTypedObject(packageInfo, flags); + out.writeInt(status); + } + + PackageInfo packageInfo; + int status; +} diff --git a/core/java/com/android/internal/logging/MetricsLogger.java b/core/java/com/android/internal/logging/MetricsLogger.java index cc677cc60acb..e276bc62ab09 100644 --- a/core/java/com/android/internal/logging/MetricsLogger.java +++ b/core/java/com/android/internal/logging/MetricsLogger.java @@ -36,6 +36,24 @@ public class MetricsLogger implements MetricsConstants { public static final int NOTIFICATION_TOPIC_NOTIFICATION = 263; public static final int ACTION_DEFAULT_SMS_APP_CHANGED = 264; + /** + * Logged when the user docks a window from recents by longpressing a task and dragging it to + * the dock area. + */ + public static final int ACTION_WINDOW_DOCK_DRAG_DROP = 265; + + /** + * Logged when the user docks a fullscreen window by long pressing recents which also opens + * recents on the lower/right side. + */ + public static final int ACTION_WINDOW_DOCK_LONGPRESS = 266; + + /** + * Logged when the user docks a window by dragging from the navbar which also opens recents on + * the lower/right side. + */ + public static final int ACTION_WINDOW_DOCK_SWIPE = 267; + public static void visible(Context context, int category) throws IllegalArgumentException { if (Build.IS_DEBUGGABLE && category == VIEW_UNKNOWN) { throw new IllegalArgumentException("Must define metric category"); diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java index 8186378bfb6f..d23f26d675c4 100644 --- a/core/java/com/android/internal/os/Zygote.java +++ b/core/java/com/android/internal/os/Zygote.java @@ -145,8 +145,9 @@ public final class Zygote { native private static int nativeForkSystemServer(int uid, int gid, int[] gids, int debugFlags, int[][] rlimits, long permittedCapabilities, long effectiveCapabilities); - private static void callPostForkChildHooks(int debugFlags, String instructionSet) { - VM_HOOKS.postForkChild(debugFlags, instructionSet); + private static void callPostForkChildHooks(int debugFlags, boolean isSystemServer, + String instructionSet) { + VM_HOOKS.postForkChild(debugFlags, isSystemServer, instructionSet); } diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index 11ef18b4d5c0..849d3145bb56 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -28,7 +28,7 @@ oneway interface IStatusBar void removeIcon(int index); void disable(int state1, int state2); void animateExpandNotificationsPanel(); - void animateExpandSettingsPanel(); + void animateExpandSettingsPanel(String subPanel); void animateCollapsePanels(); void setSystemUiVisibility(int vis, int mask); void topAppWindowChanged(boolean menuVisible); diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl index 6c957becc5e5..0a4ad0661c64 100644 --- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl @@ -39,7 +39,7 @@ interface IStatusBarService void topAppWindowChanged(boolean menuVisible); void setImeWindowStatus(in IBinder token, int vis, int backDisposition, boolean showImeSwitcher); - void expandSettingsPanel(); + void expandSettingsPanel(String subPanel); void setCurrentUser(int newUserId); // ---- Methods below are for use by the status bar policy services ---- diff --git a/core/java/com/android/internal/util/StateMachine.java b/core/java/com/android/internal/util/StateMachine.java index 554d367f6cea..8c4d078ecd78 100644 --- a/core/java/com/android/internal/util/StateMachine.java +++ b/core/java/com/android/internal/util/StateMachine.java @@ -778,6 +778,7 @@ public class StateMachine { */ @Override public final void handleMessage(Message msg) { + mSm.onPreHandleMessage(msg); if (!mHasQuit) { if (mDbg) mSm.log("handleMessage: E msg.what=" + msg.what); @@ -803,6 +804,7 @@ public class StateMachine { // We need to check if mSm == null here as we could be quitting. if (mDbg && mSm != null) mSm.log("handleMessage: X"); } + mSm.onPostHandleMessage(msg); } /** @@ -1274,6 +1276,21 @@ public class StateMachine { } /** + * Notifies subclass that the StateMachine handler is about to process the Message msg + * @param msg The message that is being handled + */ + protected void onPreHandleMessage(Message msg) { + } + + /** + * Notifies subclass that the StateMachine handler has finished processing the Message msg and + * has possibly transitioned to a new state. + * @param msg The message that is being handled + */ + protected void onPostHandleMessage(Message msg) { + } + + /** * Add a new state to the state machine * @param state the state to add * @param parent the parent of state diff --git a/core/jni/Android.mk b/core/jni/Android.mk index f1e7afbfa32e..bdbd096326d5 100644 --- a/core/jni/Android.mk +++ b/core/jni/Android.mk @@ -250,7 +250,8 @@ LOCAL_SHARED_LIBRARIES := \ libminikin \ libprocessgroup \ libnativebridge \ - libradio_metadata + libradio_metadata \ + libnativeloader LOCAL_SHARED_LIBRARIES += \ libhwui \ diff --git a/core/jni/android_app_NativeActivity.cpp b/core/jni/android_app_NativeActivity.cpp index 95be3f27b625..6ecb3fb19f62 100644 --- a/core/jni/android_app_NativeActivity.cpp +++ b/core/jni/android_app_NativeActivity.cpp @@ -21,6 +21,8 @@ #include <dlfcn.h> #include <fcntl.h> +#include <memory> + #include <android_runtime/android_app_NativeActivity.h> #include <android_runtime/android_util_AssetManager.h> #include <android_runtime/android_view_Surface.h> @@ -39,6 +41,7 @@ #include "android_view_KeyEvent.h" #include "nativebridge/native_bridge.h" +#include "nativeloader/native_loader.h" #include "core_jni_helpers.h" @@ -255,18 +258,19 @@ static int mainWorkCallback(int fd, int events, void* data) { static jlong loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName, jobject messageQueue, jstring internalDataDir, jstring obbDir, - jstring externalDataDir, jint sdkVersion, - jobject jAssetMgr, jbyteArray savedState) -{ + jstring externalDataDir, jint sdkVersion, jobject jAssetMgr, + jbyteArray savedState, jobject classLoader, jstring libraryPath, + jstring isolationPath) { if (kLogTrace) { ALOGD("loadNativeCode_native"); } const char* pathStr = env->GetStringUTFChars(path, NULL); - NativeCode* code = NULL; + std::unique_ptr<NativeCode> code; bool needNativeBridge = false; - void* handle = dlopen(pathStr, RTLD_LAZY); + void* handle = OpenNativeLibrary(env, sdkVersion, pathStr, classLoader, + libraryPath, isolationPath); if (handle == NULL) { if (NativeBridgeIsSupported(pathStr)) { handle = NativeBridgeLoadLibrary(pathStr, RTLD_LAZY); @@ -284,26 +288,23 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName funcPtr = dlsym(handle, funcStr); } - code = new NativeCode(handle, (ANativeActivity_createFunc*)funcPtr); + code.reset(new NativeCode(handle, (ANativeActivity_createFunc*)funcPtr)); env->ReleaseStringUTFChars(funcName, funcStr); if (code->createActivityFunc == NULL) { ALOGW("ANativeActivity_onCreate not found"); - delete code; return 0; } code->messageQueue = android_os_MessageQueue_getMessageQueue(env, messageQueue); if (code->messageQueue == NULL) { ALOGW("Unable to retrieve native MessageQueue"); - delete code; return 0; } int msgpipe[2]; if (pipe(msgpipe)) { ALOGW("could not create pipe: %s", strerror(errno)); - delete code; return 0; } code->mainWorkRead = msgpipe[0]; @@ -315,12 +316,11 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName SLOGW_IF(result != 0, "Could not make main work write pipe " "non-blocking: %s", strerror(errno)); code->messageQueue->getLooper()->addFd( - code->mainWorkRead, 0, ALOOPER_EVENT_INPUT, mainWorkCallback, code); + code->mainWorkRead, 0, ALOOPER_EVENT_INPUT, mainWorkCallback, code.get()); code->ANativeActivity::callbacks = &code->callbacks; if (env->GetJavaVM(&code->vm) < 0) { ALOGW("NativeActivity GetJavaVM failed"); - delete code; return 0; } code->env = env; @@ -356,14 +356,18 @@ loadNativeCode_native(JNIEnv* env, jobject clazz, jstring path, jstring funcName rawSavedSize = env->GetArrayLength(savedState); } - code->createActivityFunc(code, rawSavedState, rawSavedSize); + code->createActivityFunc(code.get(), rawSavedState, rawSavedSize); if (rawSavedState != NULL) { env->ReleaseByteArrayElements(savedState, rawSavedState, 0); } } - return (jlong)code; + return (jlong)code.release(); +} + +static jstring getDlError_native(JNIEnv* env, jobject clazz) { + return env->NewStringUTF(dlerror()); } static void @@ -651,8 +655,10 @@ onContentRectChanged_native(JNIEnv* env, jobject clazz, jlong handle, } static const JNINativeMethod g_methods[] = { - { "loadNativeCode", "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[B)J", - (void*)loadNativeCode_native }, + { "loadNativeCode", + "(Ljava/lang/String;Ljava/lang/String;Landroid/os/MessageQueue;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILandroid/content/res/AssetManager;[BLjava/lang/ClassLoader;Ljava/lang/String;Ljava/lang/String;)J", + (void*)loadNativeCode_native }, + { "getDlError", "()Ljava/lang/String;", (void*) getDlError_native }, { "unloadNativeCode", "(J)V", (void*)unloadNativeCode_native }, { "onStartNative", "(J)V", (void*)onStart_native }, { "onResumeNative", "(J)V", (void*)onResume_native }, diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 73c74876c292..96d150be0234 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -581,7 +581,7 @@ static pid_t ForkAndSpecializeCommon(JNIEnv* env, uid_t uid, gid_t gid, jintArra UnsetSigChldHandler(); env->CallStaticVoidMethod(gZygoteClass, gCallPostForkChildHooks, debug_flags, - is_system_server ? NULL : instructionSet); + is_system_server, instructionSet); if (env->ExceptionCheck()) { RuntimeAbort(env, __LINE__, "Error calling post fork hooks."); } @@ -652,7 +652,7 @@ static const JNINativeMethod gMethods[] = { int register_com_android_internal_os_Zygote(JNIEnv* env) { gZygoteClass = MakeGlobalRefOrDie(env, FindClassOrDie(env, kZygoteClassName)); gCallPostForkChildHooks = GetStaticMethodIDOrDie(env, gZygoteClass, "callPostForkChildHooks", - "(ILjava/lang/String;)V"); + "(IZLjava/lang/String;)V"); return RegisterMethodsOrDie(env, "com/android/internal/os/Zygote", gMethods, NELEM(gMethods)); } diff --git a/core/res/res/values/colors_material.xml b/core/res/res/values/colors_material.xml index 7399fa9d58ce..dd18544783a5 100644 --- a/core/res/res/values/colors_material.xml +++ b/core/res/res/values/colors_material.xml @@ -48,6 +48,8 @@ <color name="primary_text_default_material_light">#de000000</color> <!-- 54% black --> <color name="secondary_text_default_material_light">#8a000000</color> + <!-- 38% black --> + <color name="tertiary_text_default_material_light">#61000000</color> <!-- 100% white --> <color name="primary_text_default_material_dark">#ffffffff</color> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 97c0e07186e0..e2b1dbb6300e 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2154,11 +2154,6 @@ string that's stored in 8-bit unpacked format) characters.--> <bool translatable="false" name="config_sms_decode_gsm_8bit_data">false</bool> - <!-- List of package names (ordered by preference) providing WebView implementations. --> - <string-array name="config_webViewPackageNames" translatable="false"> - <item>com.android.webview</item> - </string-array> - <!-- If EMS is not supported, framework breaks down EMS into single segment SMS and adds page info " x/y". This config is used to set which carrier doesn't support EMS and whether page info should be added at the beginning or the end. diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index e5415dfb58cb..4d967ff45513 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3955,6 +3955,9 @@ <string name="battery_saver_description">To help improve battery life, battery saver reduces your device’s performance and limits vibration, location services, and most background data. Email, messaging, and other apps that rely on syncing may not update unless you open them.\n\nBattery saver turns off automatically when your device is charging.</string> + <!-- [CHAR LIMIT=100] Notification importance slider title --> + <string name="notification_importance_title">Importance</string> + <!-- [CHAR LIMIT=100] Notification Importance slider: blocked importance level description --> <string name="notification_importance_blocked">Blocked: Never show these notifications</string> @@ -4102,4 +4105,7 @@ </plurals> <string name="default_notification_topic_label">Miscellaneous</string> + + <string name="importance_from_topic">You set the importance of these notifications.</string> + <string name="importance_from_person">This is important because of the people involved.</string> </resources> diff --git a/core/res/res/values/styles_material.xml b/core/res/res/values/styles_material.xml index adcb79b9ff7f..74ebf266910a 100644 --- a/core/res/res/values/styles_material.xml +++ b/core/res/res/values/styles_material.xml @@ -442,12 +442,11 @@ please see styles_device_defaults.xml. </style> <style name="TextAppearance.Material.Notification.Info"> + <item name="textColor">@color/tertiary_text_default_material_light</item> <item name="textSize">@dimen/notification_subtext_size</item> </style> - <style name="TextAppearance.Material.Notification.Time"> - <item name="textSize">@dimen/notification_subtext_size</item> - </style> + <style name="TextAppearance.Material.Notification.Time" parent="TextAppearance.Material.Notification.Info" /> <style name="TextAppearance.Material.Notification.Emphasis"> <item name="textColor">#66000000</item> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index dd81f89f10c5..bf758c225859 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2018,7 +2018,7 @@ <java-symbol type="attr" name="actionModeWebSearchDrawable" /> <java-symbol type="string" name="websearch" /> <java-symbol type="drawable" name="ic_media_video_poster" /> - <java-symbol type="array" name="config_webViewPackageNames" /> + <java-symbol type="xml" name="config_webview_packages" /> <!-- From SubtitleView --> <java-symbol type="dimen" name="subtitle_corner_radius" /> @@ -2088,6 +2088,7 @@ <java-symbol type="string" name="notification_importance_default" /> <java-symbol type="string" name="notification_importance_high" /> <java-symbol type="string" name="notification_importance_max" /> + <java-symbol type="string" name="notification_importance_title" /> <java-symbol type="string" name="select_day" /> <java-symbol type="string" name="select_year" /> @@ -2379,4 +2380,6 @@ <java-symbol type="dimen" name="notification_content_margin_end" /> <java-symbol type="dimen" name="notification_content_picture_margin" /> <java-symbol type="dimen" name="notification_content_margin_top" /> + <java-symbol type="string" name="importance_from_topic" /> + <java-symbol type="string" name="importance_from_person" /> </resources> diff --git a/core/res/res/xml/config_webview_packages.xml b/core/res/res/xml/config_webview_packages.xml new file mode 100644 index 000000000000..6f9c58d2f9b7 --- /dev/null +++ b/core/res/res/xml/config_webview_packages.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright 2015 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<webviewproviders> + <!-- The default WebView implementation --> + <webviewprovider description="Android WebView" packageName="com.android.webview" /> +</webviewproviders> diff --git a/data/etc/platform.xml b/data/etc/platform.xml index 51019cc1d46c..b4f88c332314 100644 --- a/data/etc/platform.xml +++ b/data/etc/platform.xml @@ -106,6 +106,7 @@ </permission> <permission name="android.permission.ACCESS_FM_RADIO" > + <!-- /dev/fm is gid media, not audio --> <group gid="media" /> </permission> @@ -128,6 +129,12 @@ <assign-permission name="android.permission.UPDATE_APP_OPS_STATS" uid="media" /> <assign-permission name="android.permission.GET_PROCESS_STATE_AND_OOM_SCORE" uid="media" /> + <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="audioserver" /> + <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="audioserver" /> + <assign-permission name="android.permission.WAKE_LOCK" uid="audioserver" /> + <assign-permission name="android.permission.UPDATE_DEVICE_STATS" uid="audioserver" /> + <assign-permission name="android.permission.UPDATE_APP_OPS_STATS" uid="audioserver" /> + <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" /> <!-- This is a list of all the libraries available for application diff --git a/data/fonts/Android.mk b/data/fonts/Android.mk index 3181017a2e5a..d2bd10613ded 100644 --- a/data/fonts/Android.mk +++ b/data/fonts/Android.mk @@ -17,11 +17,6 @@ LOCAL_PATH := $(call my-dir) -# Use full Noto Sans Japanese font on non-smaller footprints -ifneq ($(SMALLER_FONT_FOOTPRINT),true) -FONT_NOTOSANS_JP_FULL := true -endif - ########################################## # create symlink for given font # $(1): new font $(2): link target @@ -52,24 +47,6 @@ extra_font_files := \ DroidSans-Bold.ttf ################################ -# Do not include Motoya on space-constrained devices -ifneq ($(SMALLER_FONT_FOOTPRINT),true) -# Do not include Motoya if we are including Noto Sans Japanese -ifneq ($(FONT_NOTOSANS_JP_FULL),true) - -include $(CLEAR_VARS) -LOCAL_MODULE := MTLmr3m.ttf -LOCAL_SRC_FILES := $(LOCAL_MODULE) -LOCAL_MODULE_CLASS := ETC -LOCAL_MODULE_TAGS := optional -LOCAL_MODULE_PATH := $(TARGET_OUT)/fonts -include $(BUILD_PREBUILT) -extra_font_files += MTLmr3m.ttf - -endif # !FONT_NOTOSANS_JP_FULL -endif # !SMALLER_FONT_FOOTPRINT - -################################ # Use DroidSansMono to hang extra_font_files on include $(CLEAR_VARS) LOCAL_MODULE := DroidSansMono.ttf diff --git a/data/fonts/fonts.xml b/data/fonts/fonts.xml index 0e663747eb04..554b6f1ba6c0 100644 --- a/data/fonts/fonts.xml +++ b/data/fonts/fonts.xml @@ -330,16 +330,16 @@ <font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted.ttf</font> </family> <family lang="zh-Hans"> - <font weight="400" style="normal">NotoSansSC-Regular.otf</font> + <font weight="400" style="normal" index="2">NotoSansCJK-Regular.ttc</font> </family> <family lang="zh-Hant"> - <font weight="400" style="normal">NotoSansTC-Regular.otf</font> + <font weight="400" style="normal" index="3">NotoSansCJK-Regular.ttc</font> </family> <family lang="ja"> - <font weight="400" style="normal">NotoSansJP-Regular.otf</font> + <font weight="400" style="normal" index="0">NotoSansCJK-Regular.ttc</font> </family> <family lang="ko"> - <font weight="400" style="normal">NotoSansKR-Regular.otf</font> + <font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font> </family> <family> <font weight="400" style="normal">NanumGothic.ttf</font> @@ -350,9 +350,6 @@ <family> <font weight="400" style="normal">DroidSansFallback.ttf</font> </family> - <family lang="ja"> - <font weight="400" style="normal">MTLmr3m.ttf</font> - </family> <!-- Tai Le and Mongolian are intentionally kept last, to make sure they don't override the East Asian punctuation for Chinese. diff --git a/docs/html/tools/help/index.jd b/docs/html/tools/help/index.jd index f90d0294c60d..53247d1e5825 100644 --- a/docs/html/tools/help/index.jd +++ b/docs/html/tools/help/index.jd @@ -100,10 +100,6 @@ you can view the file in a profiling tool of your choice.</dd> <dt><a href="{@docRoot}tools/help/traceview.html">traceview</a></dt> <dd>Provides a graphical viewer for execution logs saved by your application.</dd> - <dt><a href="{@docRoot}tools/help/systrace.html">Systrace</a></dt> - <dd>Lets you analyze the execution of your application in the context of system processes, - to help diagnose display and performance issues.</dd> - </dl> diff --git a/graphics/java/android/graphics/FontListParser.java b/graphics/java/android/graphics/FontListParser.java index 2596f53cb9f4..774f6b8922e0 100644 --- a/graphics/java/android/graphics/FontListParser.java +++ b/graphics/java/android/graphics/FontListParser.java @@ -114,7 +114,7 @@ public class FontListParser { if (parser.getEventType() != XmlPullParser.START_TAG) continue; String tag = parser.getName(); if (tag.equals("font")) { - String ttcIndexStr = parser.getAttributeValue(null, "ttcIndex"); + String ttcIndexStr = parser.getAttributeValue(null, "index"); int ttcIndex = ttcIndexStr == null ? 0 : Integer.parseInt(ttcIndexStr); String weightStr = parser.getAttributeValue(null, "weight"); int weight = weightStr == null ? 400 : Integer.parseInt(weightStr); diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp index 94a11f131229..eaa1c330d5dd 100644 --- a/libs/hwui/Caches.cpp +++ b/libs/hwui/Caches.cpp @@ -103,7 +103,7 @@ void Caches::initStaticProperties() { void Caches::terminate() { if (!mInitialized) return; - mRegionMesh.release(); + mRegionMesh.reset(nullptr); fboCache.clear(); diff --git a/libs/hwui/GammaFontRenderer.h b/libs/hwui/GammaFontRenderer.h index 146d385e1173..5813e7f717ee 100644 --- a/libs/hwui/GammaFontRenderer.h +++ b/libs/hwui/GammaFontRenderer.h @@ -30,7 +30,7 @@ public: GammaFontRenderer(); void clear() { - mRenderer.release(); + mRenderer.reset(nullptr); } void flush() { diff --git a/libs/hwui/Layer.cpp b/libs/hwui/Layer.cpp index 489ebc116a2a..0fe20ad1b662 100644 --- a/libs/hwui/Layer.cpp +++ b/libs/hwui/Layer.cpp @@ -248,7 +248,7 @@ void Layer::defer(const OpenGLRenderer& rootRenderer) { void Layer::cancelDefer() { renderNode = nullptr; deferredUpdateScheduled = false; - deferredList.release(); + deferredList.reset(nullptr); } void Layer::flush() { diff --git a/media/java/android/media/MediaCodecInfo.java b/media/java/android/media/MediaCodecInfo.java index 41019357a0e4..e6bc8f1048b6 100644 --- a/media/java/android/media/MediaCodecInfo.java +++ b/media/java/android/media/MediaCodecInfo.java @@ -1735,7 +1735,8 @@ public final class MediaCodecInfo { CodecProfileLevel[] profileLevels = mParent.profileLevels; String mime = mParent.getMimeType(); - if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_AVC)) { + if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_AVC) || + mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_DOLBY_AVC)) { maxBlocks = 99; maxBlocksPerSecond = 1485; maxBps = 64000; @@ -2089,7 +2090,8 @@ public final class MediaCodecInfo { applyMacroBlockLimits(Short.MAX_VALUE, Short.MAX_VALUE, maxBlocks, maxBlocksPerSecond, blockSize, blockSize, 1 /* widthAlignment */, 1 /* heightAlignment */); - } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_HEVC)) { + } else if (mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_HEVC) || + mime.equalsIgnoreCase(MediaFormat.MIMETYPE_VIDEO_DOLBY_HEVC)) { maxBlocks = 36864; maxBlocksPerSecond = maxBlocks * 15; maxBps = 128000; diff --git a/media/java/android/media/MediaFormat.java b/media/java/android/media/MediaFormat.java index b2fa0acf7f57..a102e51de3d0 100644 --- a/media/java/android/media/MediaFormat.java +++ b/media/java/android/media/MediaFormat.java @@ -92,6 +92,8 @@ public final class MediaFormat { public static final String MIMETYPE_VIDEO_H263 = "video/3gpp"; public static final String MIMETYPE_VIDEO_MPEG2 = "video/mpeg2"; public static final String MIMETYPE_VIDEO_RAW = "video/raw"; + public static final String MIMETYPE_VIDEO_DOLBY_AVC = "video/dolby-avc"; + public static final String MIMETYPE_VIDEO_DOLBY_HEVC = "video/dolby-hevc"; public static final String MIMETYPE_AUDIO_AMR_NB = "audio/3gpp"; public static final String MIMETYPE_AUDIO_AMR_WB = "audio/amr-wb"; diff --git a/packages/DocumentsUI/res/values-ky-rKG/strings.xml b/packages/DocumentsUI/res/values-ky-rKG/strings.xml index aecf5426fd68..6172c77c961c 100644 --- a/packages/DocumentsUI/res/values-ky-rKG/strings.xml +++ b/packages/DocumentsUI/res/values-ky-rKG/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="2783841764617238354">"Документтер"</string> <string name="files_label" msgid="6051402950202690279">"Файлдар"</string> - <string name="downloads_label" msgid="959113951084633612">"Жүктөөлөр"</string> + <string name="downloads_label" msgid="959113951084633612">"Жүктөлүп алынгандар"</string> <string name="title_open" msgid="4353228937663917801">"Кийинкиден ачуу:"</string> <string name="title_save" msgid="2433679664882857999">"Кийинкиге сактоо:"</string> <string name="menu_create_dir" msgid="2547620241173881754">"Жаңы куржун"</string> diff --git a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml index b944736d78fd..1b5ace461884 100644 --- a/packages/DocumentsUI/res/values-uz-rUZ/strings.xml +++ b/packages/DocumentsUI/res/values-uz-rUZ/strings.xml @@ -18,7 +18,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="2783841764617238354">"Hujjatlar"</string> <string name="files_label" msgid="6051402950202690279">"Fayllar"</string> - <string name="downloads_label" msgid="959113951084633612">"Yuklanmalar"</string> + <string name="downloads_label" msgid="959113951084633612">"Yuklanishlar"</string> <string name="title_open" msgid="4353228937663917801">"Ochish"</string> <string name="title_save" msgid="2433679664882857999">"Saqlash"</string> <string name="menu_create_dir" msgid="2547620241173881754">"Yangi jild"</string> diff --git a/packages/FusedLocation/res/values-de/strings.xml b/packages/FusedLocation/res/values-de/strings.xml index d7e5faabe2a3..5c846d8efd16 100644 --- a/packages/FusedLocation/res/values-de/strings.xml +++ b/packages/FusedLocation/res/values-de/strings.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> - <string name="app_label" msgid="5379477904423203699">"Kombinierte Standortbestimmung"</string> + <string name="app_label" msgid="5379477904423203699">"Kombinierte Standortbest."</string> </resources> diff --git a/packages/Keyguard/res/values-mr-rIN/strings.xml b/packages/Keyguard/res/values-mr-rIN/strings.xml index 3d9e90194903..da9863fb9cea 100644 --- a/packages/Keyguard/res/values-mr-rIN/strings.xml +++ b/packages/Keyguard/res/values-mr-rIN/strings.xml @@ -31,7 +31,7 @@ <string name="keyguard_password_wrong_pin_code" msgid="2422225591006134936">"अयोग्य पिन कोड."</string> <string name="keyguard_charged" msgid="3272223906073492454">"चार्ज झाली"</string> <string name="keyguard_plugged_in" msgid="9087497435553252863">"चार्ज होत आहे"</string> - <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"दृतपणे चार्ज होत आहे"</string> + <string name="keyguard_plugged_in_charging_fast" msgid="6671162730167305479">"द्रुतपणे चार्ज होत आहे"</string> <string name="keyguard_plugged_in_charging_slowly" msgid="1964714661071163229">"धीमेपणे चार्ज होत आहे"</string> <string name="keyguard_low_battery" msgid="8143808018719173859">"आपले चार्जर कनेक्ट करा."</string> <string name="keyguard_instructions_when_pattern_disabled" msgid="1332288268600329841">"अनलॉक करण्यासाठी मेनू दाबा."</string> diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java index 51c0281c51b5..0e91fddd79f4 100644 --- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java +++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java @@ -22,7 +22,6 @@ import android.content.ContentValues; import android.content.Context; import android.content.res.Resources; import android.database.Cursor; -import android.database.DatabaseUtils; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; @@ -35,9 +34,10 @@ import android.provider.DocumentsContract.Root; import com.android.internal.annotations.VisibleForTesting; -import java.io.File; import java.io.FileNotFoundException; +import java.util.HashSet; import java.util.Objects; +import java.util.Set; /** * Database for MTP objects. @@ -397,6 +397,7 @@ class MtpDatabase { values.putNull(COLUMN_OBJECT_HANDLE); values.putNull(COLUMN_PARENT_DOCUMENT_ID); values.put(COLUMN_ROW_STATE, ROW_STATE_VALID); + values.put(COLUMN_DOCUMENT_TYPE, DOCUMENT_TYPE_STORAGE); values.put(Document.COLUMN_MIME_TYPE, Document.MIME_TYPE_DIR); values.put(Document.COLUMN_DISPLAY_NAME, root.getRootName(resources)); values.putNull(Document.COLUMN_SUMMARY); @@ -436,6 +437,7 @@ class MtpDatabase { values.put(COLUMN_OBJECT_HANDLE, info.getObjectHandle()); values.put(COLUMN_PARENT_DOCUMENT_ID, parentId); values.put(COLUMN_ROW_STATE, ROW_STATE_VALID); + values.put(COLUMN_DOCUMENT_TYPE, DOCUMENT_TYPE_OBJECT); values.put(Document.COLUMN_MIME_TYPE, mimeType); values.put(Document.COLUMN_DISPLAY_NAME, info.getName()); values.putNull(Document.COLUMN_SUMMARY); diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabaseConstants.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabaseConstants.java index 0ead2d5331b7..72bd6ee56537 100644 --- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabaseConstants.java +++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabaseConstants.java @@ -49,6 +49,7 @@ class MtpDatabaseConstants { static final String COLUMN_STORAGE_ID = "storage_id"; static final String COLUMN_OBJECT_HANDLE = "object_handle"; static final String COLUMN_PARENT_DOCUMENT_ID = "parent_document_id"; + static final String COLUMN_DOCUMENT_TYPE = "document_type"; static final String COLUMN_ROW_STATE = "row_state"; /** @@ -83,6 +84,23 @@ class MtpDatabaseConstants { */ static final int MAP_BY_NAME = 1; + /** + * Document that represents a MTP device. + * Note we have "device" document only when the device has multiple storage volumes. Otherwise + * we regard the single "storage" document as root. + */ + static final int DOCUMENT_TYPE_DEVICE = 0; + + /** + * Document that represents a MTP storage. + */ + static final int DOCUMENT_TYPE_STORAGE = 1; + + /** + * Document that represents a MTP object. + */ + static final int DOCUMENT_TYPE_OBJECT = 2; + static final String SELECTION_DOCUMENT_ID = Document.COLUMN_DOCUMENT_ID + " = ?"; static final String SELECTION_ROOT_ID = Root.COLUMN_ROOT_ID + " = ?"; static final String SELECTION_ROOT_DOCUMENTS = @@ -98,6 +116,7 @@ class MtpDatabaseConstants { COLUMN_OBJECT_HANDLE + " INTEGER," + COLUMN_PARENT_DOCUMENT_ID + " INTEGER," + COLUMN_ROW_STATE + " INTEGER NOT NULL," + + COLUMN_DOCUMENT_TYPE + " INTEGER NOT NULL," + Document.COLUMN_MIME_TYPE + " TEXT," + Document.COLUMN_DISPLAY_NAME + " TEXT NOT NULL," + Document.COLUMN_SUMMARY + " TEXT," + diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java index 67b06729d389..8166de19e5eb 100644 --- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java +++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java @@ -42,7 +42,8 @@ public class MtpDatabaseTest extends AndroidTestCase { DocumentsContract.Document.COLUMN_LAST_MODIFIED, DocumentsContract.Document.COLUMN_ICON, DocumentsContract.Document.COLUMN_FLAGS, - DocumentsContract.Document.COLUMN_SIZE + DocumentsContract.Document.COLUMN_SIZE, + MtpDatabaseConstants.COLUMN_DOCUMENT_TYPE }; private final TestResources resources = new TestResources(); @@ -83,6 +84,8 @@ public class MtpDatabaseTest extends AndroidTestCase { assertEquals("icon", R.drawable.ic_root_mtp, cursor.getInt(8)); assertEquals("flag", 0, cursor.getInt(9)); assertEquals("size", 1000, cursor.getInt(10)); + assertEquals( + "documentType", MtpDatabaseConstants.DOCUMENT_TYPE_STORAGE, cursor.getInt(11)); cursor.moveToNext(); assertEquals("documentId", 2, cursor.getInt(0)); @@ -178,6 +181,8 @@ public class MtpDatabaseTest extends AndroidTestCase { DocumentsContract.Document.FLAG_SUPPORTS_WRITE, cursor.getInt(9)); assertEquals("size", 1024, cursor.getInt(10)); + assertEquals( + "documentType", MtpDatabaseConstants.DOCUMENT_TYPE_OBJECT, cursor.getInt(11)); cursor.moveToNext(); assertEquals("documentId", 2, cursor.getInt(0)); @@ -195,6 +200,8 @@ public class MtpDatabaseTest extends AndroidTestCase { DocumentsContract.Document.FLAG_SUPPORTS_WRITE, cursor.getInt(9)); assertEquals("size", 2 * 1024 * 1024, cursor.getInt(10)); + assertEquals( + "documentType", MtpDatabaseConstants.DOCUMENT_TYPE_OBJECT, cursor.getInt(11)); cursor.moveToNext(); assertEquals("documentId", 3, cursor.getInt(0)); @@ -212,6 +219,8 @@ public class MtpDatabaseTest extends AndroidTestCase { DocumentsContract.Document.FLAG_SUPPORTS_WRITE, cursor.getInt(9)); assertEquals("size", 3 * 1024 * 1024, cursor.getInt(10)); + assertEquals( + "documentType", MtpDatabaseConstants.DOCUMENT_TYPE_OBJECT, cursor.getInt(11)); cursor.close(); } diff --git a/packages/SettingsLib/res/values-gl-rES/strings.xml b/packages/SettingsLib/res/values-gl-rES/strings.xml index d7ef503122e0..df58657246b5 100644 --- a/packages/SettingsLib/res/values-gl-rES/strings.xml +++ b/packages/SettingsLib/res/values-gl-rES/strings.xml @@ -138,7 +138,7 @@ <string name="development_settings_title" msgid="215179176067683667">"Opcións de programador"</string> <string name="development_settings_enable" msgid="542530994778109538">"Activar opcións de programador"</string> <string name="development_settings_summary" msgid="1815795401632854041">"Definir as opcións de desenvolvemento de aplicacións"</string> - <string name="development_settings_not_available" msgid="4308569041701535607">"As opcións do programador non están dispoñibles para este usuario"</string> + <string name="development_settings_not_available" msgid="4308569041701535607">"As opcións de programador non están dispoñibles para este usuario"</string> <string name="vpn_settings_not_available" msgid="956841430176985598">"A configuración da VPN non está dispoñible para este usuario"</string> <string name="tethering_settings_not_available" msgid="6765770438438291012">"A configuración da ancoraxe non está dispoñible para este usuario"</string> <string name="apn_settings_not_available" msgid="7873729032165324000">"A configuración do nome do punto de acceso non está dispoñible para este usuario"</string> diff --git a/packages/SettingsLib/res/values-ky-rKG/strings.xml b/packages/SettingsLib/res/values-ky-rKG/strings.xml index 43d979098ce5..77c5ab8afc7e 100644 --- a/packages/SettingsLib/res/values-ky-rKG/strings.xml +++ b/packages/SettingsLib/res/values-ky-rKG/strings.xml @@ -136,7 +136,7 @@ <string name="category_personal" msgid="1299663247844969448">"Жеке"</string> <string name="category_work" msgid="8699184680584175622">"Жумуш"</string> <string name="development_settings_title" msgid="215179176067683667">"Иштеп чыгуучунун параметрлери"</string> - <string name="development_settings_enable" msgid="542530994778109538">"Иштеп чыгуучунун параметрлери иштетүү"</string> + <string name="development_settings_enable" msgid="542530994778109538">"Иштеп чыгуучунун параметрлерин иштетүү"</string> <string name="development_settings_summary" msgid="1815795401632854041">"Колдонмо өндүрүү мүмкүнчүлүктөрүн орнотуу"</string> <string name="development_settings_not_available" msgid="4308569041701535607">"Бул колдонуучуга өнүктүүрүүчү мүмкүнчүлүктөрү берилген эмес."</string> <string name="vpn_settings_not_available" msgid="956841430176985598">"Бул колдонуучу VPN жөндөөлөрүн колдоно албайт"</string> diff --git a/packages/SettingsLib/res/values-uz-rUZ/strings.xml b/packages/SettingsLib/res/values-uz-rUZ/strings.xml index 82e8dc694cde..1033bb19c10c 100644 --- a/packages/SettingsLib/res/values-uz-rUZ/strings.xml +++ b/packages/SettingsLib/res/values-uz-rUZ/strings.xml @@ -141,7 +141,7 @@ <string name="development_settings_not_available" msgid="4308569041701535607">"Bu foydalanuvchiga dasturchi imkoniyatlari taqdim etilmagan"</string> <string name="vpn_settings_not_available" msgid="956841430176985598">"Ushbu foydalanuvchi uchun VPN sozlamalari mavjud emas"</string> <string name="tethering_settings_not_available" msgid="6765770438438291012">"Ushbu foydalanuvchi uchun Modem rejimi sozlamalari mavjud emas"</string> - <string name="apn_settings_not_available" msgid="7873729032165324000">"Ushbu foydalanuvchi uchun Ulanish nuqtasi nomi (APN) sozlamalari mavjud emas"</string> + <string name="apn_settings_not_available" msgid="7873729032165324000">"Ushbu foydalanuvchi uchun Internetga kirish nuqtasi (APN) sozlamalari mavjud emas"</string> <string name="enable_adb" msgid="7982306934419797485">"USB orqali nosozliklarni tuzatish"</string> <string name="enable_adb_summary" msgid="4881186971746056635">"USB orqali kompyuterga ulanganda tuzatish rejimi yoqilsin"</string> <string name="clear_adb_keys" msgid="4038889221503122743">"USB orqali nosozliklarni tuzatishni taqiqlash"</string> diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 55bd08a16d8f..7e2288133ab3 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -675,6 +675,11 @@ <!-- Sound & display settings screen, theme setting value to automatically switch between a light- or dark-colored user interface [CHAR LIMIT=30] --> <string name="night_mode_auto">Automatic</string> + <!-- Developer settings: select WebView provider title --> + <string name="select_webview_provider_title">WebView implementation</string> + <!-- Developer settings: select WebView provider dialog title --> + <string name="select_webview_provider_dialog_title">Set WebView implementation</string> + <!-- Developer settings screen, convert userdata to file encryption option name --> <string name="convert_to_file_encryption">Convert to file encryption</string> <!-- Developer settings screen, convert userdata to file encryption summary when option is available --> diff --git a/packages/Shell/res/values-ky-rKG/strings.xml b/packages/Shell/res/values-ky-rKG/strings.xml index aafeb2433d89..c5b4144a3d44 100644 --- a/packages/Shell/res/values-ky-rKG/strings.xml +++ b/packages/Shell/res/values-ky-rKG/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="app_label" msgid="3701846017049540910">"Командалык кабык"</string> - <string name="bugreport_in_progress_title" msgid="7409917338223386637">"Мүчүлүштүктөр тууралуу билдирүү өндүрүлүүдө"</string> + <string name="bugreport_in_progress_title" msgid="7409917338223386637">"Мүчүлүштүктөр тууралуу билдирүү түзүлүүдө"</string> <string name="bugreport_finished_title" msgid="2293711546892863898">"Ката тууралуу билдирүү түзүлдү"</string> <string name="bugreport_finished_text" product="watch" msgid="8389172248433597683">"Ката жөнүндө кабар менен бөлүшүү үчүн солго серпип коюңуз"</string> <string name="bugreport_finished_text" product="default" msgid="3559904746859400732">"Ката тууралуу билдирүүңүздү жөнөтүш үчүн, тийиңиз"</string> @@ -25,5 +25,5 @@ <string name="bugreport_confirm_repeat" msgid="4926842460688645058">"Бул билдирүү кийин көрсөтүлсүн"</string> <string name="bugreport_storage_title" msgid="5332488144740527109">"Мүчүлүштүктөрдү кабарлоолор"</string> <string name="bugreport_unreadable_text" msgid="586517851044535486">"Мүчүлүштүк тууралуу кабарлаган файл окулбай койду"</string> - <string name="bugreport_unnamed" msgid="2800582406842092709">"аты жок"</string> + <string name="bugreport_unnamed" msgid="2800582406842092709">"аталышы жок"</string> </resources> diff --git a/packages/Shell/res/values-ms-rMY/strings.xml b/packages/Shell/res/values-ms-rMY/strings.xml index 4491add52dd0..db8b5dcfe5fe 100644 --- a/packages/Shell/res/values-ms-rMY/strings.xml +++ b/packages/Shell/res/values-ms-rMY/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="app_label" msgid="3701846017049540910">"Shell"</string> - <string name="bugreport_in_progress_title" msgid="7409917338223386637">"Laporan pepijat sedang dijanakan"</string> + <string name="bugreport_in_progress_title" msgid="7409917338223386637">"Laporan pepijat sedang dijana"</string> <string name="bugreport_finished_title" msgid="2293711546892863898">"Laporan pepijat telah ditangkap"</string> <string name="bugreport_finished_text" product="watch" msgid="8389172248433597683">"Leret ke kiri untuk berkongsi laporan pepijat anda"</string> <string name="bugreport_finished_text" product="default" msgid="3559904746859400732">"Sentuh untuk berkongsi laporan pepijat anda"</string> diff --git a/packages/Shell/res/values-ne-rNP/strings.xml b/packages/Shell/res/values-ne-rNP/strings.xml index 1decb9806afb..03aef3c8f6ca 100644 --- a/packages/Shell/res/values-ne-rNP/strings.xml +++ b/packages/Shell/res/values-ne-rNP/strings.xml @@ -25,5 +25,5 @@ <string name="bugreport_confirm_repeat" msgid="4926842460688645058">"यो सन्देश अर्को पटक देखाउनुहोस्"</string> <string name="bugreport_storage_title" msgid="5332488144740527109">"बग रिपोर्टहरू"</string> <string name="bugreport_unreadable_text" msgid="586517851044535486">"बग रिपोर्ट फाइल पढ्न सकिएन"</string> - <string name="bugreport_unnamed" msgid="2800582406842092709">"(बेनामी)"</string> + <string name="bugreport_unnamed" msgid="2800582406842092709">"(नामविहीन)"</string> </resources> diff --git a/packages/Shell/res/values-pt-rPT/strings.xml b/packages/Shell/res/values-pt-rPT/strings.xml index 417c44419246..757538cb0ea4 100644 --- a/packages/Shell/res/values-pt-rPT/strings.xml +++ b/packages/Shell/res/values-pt-rPT/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="app_label" msgid="3701846017049540910">"Shell"</string> - <string name="bugreport_in_progress_title" msgid="7409917338223386637">"O relatório de erro está a ser gerado"</string> + <string name="bugreport_in_progress_title" msgid="7409917338223386637">"O relatório de erro está a ser criado"</string> <string name="bugreport_finished_title" msgid="2293711546892863898">"Relatório de erros capturado"</string> <string name="bugreport_finished_text" product="watch" msgid="8389172248433597683">"Deslizar rapidamente para a esquerda para partilhar o seu relatório de erros"</string> <string name="bugreport_finished_text" product="default" msgid="3559904746859400732">"Toque para partilhar o relatório de erros"</string> diff --git a/packages/Shell/res/values-ru/strings.xml b/packages/Shell/res/values-ru/strings.xml index 2ae832b2ef3e..5dc595329a29 100644 --- a/packages/Shell/res/values-ru/strings.xml +++ b/packages/Shell/res/values-ru/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="app_label" msgid="3701846017049540910">"Оболочка"</string> - <string name="bugreport_in_progress_title" msgid="7409917338223386637">"Создание отчета об ошибке"</string> + <string name="bugreport_in_progress_title" msgid="7409917338223386637">"Создание отчета об ошибке…"</string> <string name="bugreport_finished_title" msgid="2293711546892863898">"Отчет об ошибке сохранен"</string> <string name="bugreport_finished_text" product="watch" msgid="8389172248433597683">"Проведите влево, чтобы отправить отчет"</string> <string name="bugreport_finished_text" product="default" msgid="3559904746859400732">"Нажмите, чтобы отправить отчет об ошибках"</string> diff --git a/packages/Shell/src/com/android/shell/BugreportProgressService.java b/packages/Shell/src/com/android/shell/BugreportProgressService.java index b6047683a5f4..e902589ddc51 100644 --- a/packages/Shell/src/com/android/shell/BugreportProgressService.java +++ b/packages/Shell/src/com/android/shell/BugreportProgressService.java @@ -91,7 +91,7 @@ import android.widget.Toast; * </ol> */ public class BugreportProgressService extends Service { - private static final String TAG = "Shell"; + static final String TAG = "Shell"; private static final boolean DEBUG = false; private static final String AUTHORITY = "com.android.shell"; diff --git a/packages/Shell/src/com/android/shell/BugreportReceiver.java b/packages/Shell/src/com/android/shell/BugreportReceiver.java index 5133162a1ec9..b818343b6ce0 100644 --- a/packages/Shell/src/com/android/shell/BugreportReceiver.java +++ b/packages/Shell/src/com/android/shell/BugreportReceiver.java @@ -19,6 +19,7 @@ package com.android.shell; import static com.android.shell.BugreportProgressService.EXTRA_BUGREPORT; import static com.android.shell.BugreportProgressService.EXTRA_ORIGINAL_INTENT; import static com.android.shell.BugreportProgressService.INTENT_BUGREPORT_FINISHED; +import static com.android.shell.BugreportProgressService.TAG; import static com.android.shell.BugreportProgressService.getFileExtra; import java.io.File; @@ -29,6 +30,7 @@ import android.content.Intent; import android.os.AsyncTask; import android.os.FileUtils; import android.text.format.DateUtils; +import android.util.Log; /** * Receiver that handles finished bugreports, usually by attaching them to an @@ -63,6 +65,10 @@ public class BugreportReceiver extends BroadcastReceiver { return; } final File bugreportFile = getFileExtra(intent, EXTRA_BUGREPORT); + if (bugreportFile == null || !bugreportFile.exists()) { + Log.e(TAG, "Not deleting old files because file " + bugreportFile + " doesn't exist"); + return; + } final PendingResult result = goAsync(); new AsyncTask<Void, Void, Void>() { @Override diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java index cd0fcfedcbe4..1f4d749f3992 100644 --- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java +++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java @@ -29,6 +29,7 @@ import static com.android.shell.BugreportProgressService.INTENT_BUGREPORT_STARTE import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io.ByteArrayOutputStream; +import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -45,6 +46,7 @@ import android.app.ActivityManager.RunningServiceInfo; import android.app.Instrumentation; import android.app.NotificationManager; import android.content.Context; +import android.content.ContextWrapper; import android.content.Intent; import android.net.Uri; import android.os.Bundle; @@ -76,22 +78,28 @@ import com.android.shell.ActionSendMultipleConsumerActivity.CustomActionSendMult */ @LargeTest public class BugreportReceiverTest extends InstrumentationTestCase { - private static final String TAG = "BugreportReceiverTest"; // Timeout for UI operations, in milliseconds. private static final int TIMEOUT = (int) BugreportProgressService.POLLING_FREQUENCY * 4; - private static final String ROOT_DIR = "/data/data/com.android.shell/files/bugreports"; + private static final String BUGREPORTS_DIR = "bugreports"; private static final String BUGREPORT_FILE = "test_bugreport.txt"; private static final String ZIP_FILE = "test_bugreport.zip"; - private static final String PLAIN_TEXT_PATH = ROOT_DIR + "/" + BUGREPORT_FILE; - private static final String ZIP_PATH = ROOT_DIR + "/" + ZIP_FILE; - private static final String SCREENSHOT_PATH = ROOT_DIR + "/test_screenshot.png"; + private static final String SCREENSHOT_FILE = "test_screenshot.png"; private static final String BUGREPORT_CONTENT = "Dump, might as well dump!\n"; private static final String SCREENSHOT_CONTENT = "A picture is worth a thousand words!\n"; + private static final int PID = 42; + private static final String PROGRESS_PROPERTY = "dumpstate.42.progress"; + private static final String MAX_PROPERTY = "dumpstate.42.max"; + private static final String NAME = "BUG, Y U NO REPORT?"; + + private String mPlainTextPath; + private String mZipPath; + private String mScreenshotPath; + private Context mContext; private UiBot mUiBot; private CustomActionSendMultipleListener mListener; @@ -102,40 +110,39 @@ public class BugreportReceiverTest extends InstrumentationTestCase { mContext = instrumentation.getTargetContext(); mUiBot = new UiBot(UiDevice.getInstance(instrumentation), TIMEOUT); mListener = ActionSendMultipleConsumerActivity.getListener(mContext); + cancelExistingNotifications(); + + mPlainTextPath = getPath(BUGREPORT_FILE); + mZipPath = getPath(ZIP_FILE); + mScreenshotPath = getPath(SCREENSHOT_FILE); + createTextFile(mPlainTextPath, BUGREPORT_CONTENT); + createTextFile(mScreenshotPath, SCREENSHOT_CONTENT); + createZipFile(mZipPath, BUGREPORT_FILE, BUGREPORT_CONTENT); + BugreportPrefs.setWarningState(mContext, BugreportPrefs.STATE_HIDE); } public void testFullWorkflow() throws Exception { - final String name = "BUG, Y U NO REPORT?"; - // TODO: call method to remove property instead - SystemProperties.set("dumpstate.42.progress", "0"); - SystemProperties.set("dumpstate.42.max", "0"); + resetProperties(); + sendBugreportStarted(1000); - Intent intent = new Intent(INTENT_BUGREPORT_STARTED); - intent.putExtra(EXTRA_PID, 42); - intent.putExtra(EXTRA_NAME, name); - intent.putExtra(EXTRA_MAX, 1000); - mContext.sendBroadcast(intent); - - assertProgressNotification(name, "0.00%"); + assertProgressNotification(NAME, "0.00%"); - SystemProperties.set("dumpstate.42.progress", "108"); - assertProgressNotification(name, "10.80%"); + SystemProperties.set(PROGRESS_PROPERTY, "108"); + assertProgressNotification(NAME, "10.80%"); - SystemProperties.set("dumpstate.42.progress", "500"); - assertProgressNotification(name, "50.00%"); + SystemProperties.set(PROGRESS_PROPERTY, "500"); + assertProgressNotification(NAME, "50.00%"); - SystemProperties.set("dumpstate.42.max", "2000"); - assertProgressNotification(name, "25.00%"); + SystemProperties.set(MAX_PROPERTY, "2000"); + assertProgressNotification(NAME, "25.00%"); - createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT); - createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT); - Bundle extras = sendBugreportFinishedIntent(42, PLAIN_TEXT_PATH, SCREENSHOT_PATH); + Bundle extras = + sendBugreportFinishedAndGetSharedIntent(PID, mPlainTextPath, mScreenshotPath); assertActionSendMultiple(extras, BUGREPORT_CONTENT, SCREENSHOT_CONTENT); - String service = BugreportProgressService.class.getName(); - assertFalse("Service '" + service + "' is still running", isServiceRunning(service)); + assertServiceNotRunning(); } public void testBugreportFinished_withWarning() throws Exception { @@ -143,11 +150,8 @@ public class BugreportReceiverTest extends InstrumentationTestCase { BugreportPrefs.setWarningState(mContext, BugreportPrefs.STATE_SHOW); // Send notification and click on share. - createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT); - Intent intent = new Intent(INTENT_BUGREPORT_FINISHED); - intent.putExtra(EXTRA_BUGREPORT, PLAIN_TEXT_PATH); - mContext.sendBroadcast(intent); - mUiBot.clickOnNotification(mContext.getString(R.string.bugreport_finished_title)); + sendBugreportFinished(null, mPlainTextPath, null); + acceptBugreport(); // Handle the warning mUiBot.getVisibleObject(mContext.getString(R.string.bugreport_confirm)); @@ -169,28 +173,22 @@ public class BugreportReceiverTest extends InstrumentationTestCase { } public void testBugreportFinished_plainBugreportAndScreenshot() throws Exception { - createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT); - createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT); - Bundle extras = sendBugreportFinishedIntent(PLAIN_TEXT_PATH, SCREENSHOT_PATH); + Bundle extras = sendBugreportFinishedAndGetSharedIntent(mPlainTextPath, mScreenshotPath); assertActionSendMultiple(extras, BUGREPORT_CONTENT, SCREENSHOT_CONTENT); } public void testBugreportFinished_zippedBugreportAndScreenshot() throws Exception { - createZipFile(ZIP_PATH, BUGREPORT_FILE, BUGREPORT_CONTENT); - createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT); - Bundle extras = sendBugreportFinishedIntent(ZIP_PATH, SCREENSHOT_PATH); + Bundle extras = sendBugreportFinishedAndGetSharedIntent(mZipPath, mScreenshotPath); assertActionSendMultiple(extras, BUGREPORT_CONTENT, SCREENSHOT_CONTENT); } public void testBugreportFinished_plainBugreportAndNoScreenshot() throws Exception { - createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT); - Bundle extras = sendBugreportFinishedIntent(PLAIN_TEXT_PATH, null); + Bundle extras = sendBugreportFinishedAndGetSharedIntent(mPlainTextPath, null); assertActionSendMultiple(extras, BUGREPORT_CONTENT, null); } public void testBugreportFinished_zippedBugreportAndNoScreenshot() throws Exception { - createZipFile(ZIP_PATH, BUGREPORT_FILE, BUGREPORT_CONTENT); - Bundle extras = sendBugreportFinishedIntent(ZIP_PATH, null); + Bundle extras = sendBugreportFinishedAndGetSharedIntent(mZipPath, null); assertActionSendMultiple(extras, BUGREPORT_CONTENT, null); } @@ -214,17 +212,67 @@ public class BugreportReceiverTest extends InstrumentationTestCase { mUiBot.getObject(percent); } + void resetProperties() { + // TODO: call method to remove property instead + SystemProperties.set(PROGRESS_PROPERTY, "0"); + SystemProperties.set(MAX_PROPERTY, "0"); + } + + /** + * Sends a "bugreport started" intent with the default values. + */ + private void sendBugreportStarted(int max) { + Intent intent = new Intent(INTENT_BUGREPORT_STARTED); + intent.putExtra(EXTRA_PID, PID); + intent.putExtra(EXTRA_NAME, NAME); + intent.putExtra(EXTRA_MAX, max); + mContext.sendBroadcast(intent); + } + /** * Sends a "bugreport finished" intent and waits for the result. * - * @return extras sent to the bugreport finished consumer. + * @return extras sent in the shared intent. */ - private Bundle sendBugreportFinishedIntent(String bugreportPath, String screenshotPath) { - return sendBugreportFinishedIntent(null, bugreportPath, screenshotPath); + private Bundle sendBugreportFinishedAndGetSharedIntent(String bugreportPath, + String screenshotPath) { + return sendBugreportFinishedAndGetSharedIntent(null, bugreportPath, screenshotPath); } - private Bundle sendBugreportFinishedIntent(Integer pid, String bugreportPath, + /** + * Sends a "bugreport finished" intent and waits for the result. + * + * @return extras sent in the shared intent. + */ + private Bundle sendBugreportFinishedAndGetSharedIntent(Integer pid, String bugreportPath, String screenshotPath) { + sendBugreportFinished(pid, bugreportPath, screenshotPath); + return acceptBugreportAndGetSharedIntent(); + } + + /** + * Accepts the notification to share the finished bugreport and waits for the result. + * + * @return extras sent in the shared intent. + */ + private Bundle acceptBugreportAndGetSharedIntent() { + acceptBugreport(); + mUiBot.chooseActivity(UI_NAME); + return mListener.getExtras(); + } + + /** + * Accepts the notification to share the finished bugreport. + */ + private void acceptBugreport() { + mUiBot.clickOnNotification(mContext.getString(R.string.bugreport_finished_title)); + } + + /** + * Sends a "bugreport finished" intent. + * + */ + private void sendBugreportFinished(Integer pid, String bugreportPath, String screenshotPath) { Intent intent = new Intent(INTENT_BUGREPORT_FINISHED); if (pid != null) { intent.putExtra(EXTRA_PID, pid); @@ -237,10 +285,6 @@ public class BugreportReceiverTest extends InstrumentationTestCase { } mContext.sendBroadcast(intent); - - mUiBot.clickOnNotification(mContext.getString(R.string.bugreport_finished_title)); - mUiBot.chooseActivity(UI_NAME); - return mListener.getExtras(); } /** @@ -311,6 +355,11 @@ public class BugreportReceiverTest extends InstrumentationTestCase { fail("Did not find entry '" + entryName + "' on file '" + uri + "'"); } + private void assertServiceNotRunning() { + String service = BugreportProgressService.class.getName(); + assertFalse("Service '" + service + "' is still running", isServiceRunning(service)); + } + private boolean isServiceRunning(String name) { ActivityManager manager = (ActivityManager) mContext .getSystemService(Context.ACTIVITY_SERVICE); @@ -341,4 +390,16 @@ public class BugreportReceiverTest extends InstrumentationTestCase { zos.closeEntry(); } } + + private String getPath(String file) { + File rootDir = new ContextWrapper(mContext).getFilesDir(); + File dir = new File(rootDir, BUGREPORTS_DIR); + if (!dir.exists()) { + Log.i(TAG, "Creating directory " + dir); + assertTrue("Could not create directory " + dir, dir.mkdir()); + } + String path = new File(dir, file).getAbsolutePath(); + Log.v(TAG, "Path for '" + file + "': " + path); + return path; + } } diff --git a/packages/Shell/tests/src/com/android/shell/UiBot.java b/packages/Shell/tests/src/com/android/shell/UiBot.java index 7d3713724e76..c87172720ad7 100644 --- a/packages/Shell/tests/src/com/android/shell/UiBot.java +++ b/packages/Shell/tests/src/com/android/shell/UiBot.java @@ -124,6 +124,16 @@ final class UiBot { if (gotIt) { Log.v(TAG, "Found activity " + name + ", it's the default action"); + // Clicks the "Just Once" button. + gotIt = mDevice + .wait(Until.hasObject(By.res("android", "button_once")), mTimeout); + assertTrue("'Just Once' button not visible yet", gotIt); + + UiObject justOnce = mDevice + .findObject(new UiSelector().resourceId("android:id/button_once")); + assertTrue("'Just Once' button not found", justOnce.exists()); + + click(justOnce, "Just Once"); } else { // Since it's not, need to find it in the scrollable list... Log.v(TAG, "Activity " + name + " is not default action"); @@ -140,16 +150,5 @@ final class UiBot { // ... then select it. click(activity, name); } - - // Then clicks the "Just Once" button. - gotIt = mDevice - .wait(Until.hasObject(By.res("android", "button_once")), mTimeout); - assertTrue("'Just Once' button not visible yet", gotIt); - - UiObject justOnce = mDevice - .findObject(new UiSelector().resourceId("android:id/button_once")); - assertTrue("'Just Once' button not found", justOnce.exists()); - - click(justOnce, "Just Once"); } } diff --git a/packages/SystemUI/res/layout/notification_guts.xml b/packages/SystemUI/res/layout/notification_guts.xml index d52c27465dbb..c9dbc79f5626 100644 --- a/packages/SystemUI/res/layout/notification_guts.xml +++ b/packages/SystemUI/res/layout/notification_guts.xml @@ -16,75 +16,77 @@ --> <com.android.systemui.statusbar.NotificationGuts - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:id="@+id/notification_guts" - android:visibility="gone" - android:clickable="true" - android:gravity="top|start" - > - <LinearLayout - android:layout_width="match_parent" - android:layout_height="@android:dimen/notification_large_icon_height" - android:orientation="horizontal" - > - - <ImageView android:id="@android:id/icon" - android:layout_width="@android:dimen/notification_large_icon_width" - android:layout_height="@android:dimen/notification_large_icon_height" - android:layout_weight="0" - android:padding="8dp" - android:scaleType="centerInside" - /> - <LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:id="@+id/notification_guts" + android:visibility="gone" + android:clickable="true" + android:gravity="top|start" + android:orientation="vertical" + android:paddingEnd="8dp" + android:background="@color/notification_guts_text_color" > + + <!-- header --> + <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_gravity="start|center_vertical" - android:orientation="vertical" - android:paddingStart="8dp" - android:paddingEnd="8dp" - android:layout_weight="1" - > - <TextView - android:id="@+id/pkgname" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical|start" - android:layout_weight="1" - android:textAppearance="@*android:style/TextAppearance.Material.Notification.Title" - android:textColor="@color/notification_guts_title_color" - /> - <DateTimeView - android:id="@+id/timestamp" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="0" - android:layout_gravity="center_vertical|start" - android:textAppearance="@*android:style/TextAppearance.Material.Notification.Time" - android:textColor="@color/notification_guts_text_color" - /> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/debug_info" - android:layout_weight="0" - android:textAppearance="@*android:style/TextAppearance.Material.Notification.Time" - android:layout_gravity="bottom|start" - android:visibility="gone" - android:textColor="@color/notification_guts_text_color" - /> - </LinearLayout> + android:paddingStart="@*android:dimen/notification_content_margin_start" + android:paddingTop="8dp" + android:paddingBottom="16dp" > - <ImageButton style="@android:style/Widget.Material.Light.Button.Borderless.Small" - android:id="@+id/notification_inspect_app_provided_settings" - android:layout_width="52dp" - android:layout_height="match_parent" - android:layout_weight="0" - android:gravity="center" - android:src="@drawable/ic_settings" - android:visibility="gone" - /> + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/notification_guts_header" + android:orientation="vertical" + android:layout_gravity="center_vertical|start" + android:layout_marginEnd="52dp"> + + <LinearLayout + android:id="@+id/notification_guts_app_details" + android:orientation="horizontal" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:clipChildren="false" + android:layout_gravity="start|top" + android:gravity="center_vertical" + > + + <ImageView + android:id="@android:id/icon" + android:layout_width="18dp" + android:layout_height="18dp" + android:layout_marginEnd="3dp" + android:src="@android:drawable/arrow_down_float" /> + <TextView + android:id="@+id/pkgname" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="@android:style/TextAppearance.Material.Notification.Info" + android:layout_marginStart="3dp" + android:layout_marginEnd="4dp" + android:textColor="@color/notification_guts_title_color" /> + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:id="@+id/debug_info" + android:layout_weight="0" + android:textAppearance="@android:style/TextAppearance.Material.Notification.Time" + android:layout_gravity="bottom|start" + android:visibility="gone" + android:textColor="#ffffff" /> + </LinearLayout> + + <TextView + android:id="@+id/topic_details" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="@android:style/TextAppearance.Material.Notification.Title" + android:textColor="@color/notification_guts_text_color" + android:layout_alignParentBottom="true" + android:layout_alignParentStart="true" /> + </LinearLayout> <ImageButton style="@android:style/Widget.Material.Light.Button.Borderless.Small" android:id="@+id/notification_inspect_item" @@ -92,8 +94,73 @@ android:layout_height="match_parent" android:layout_weight="0" android:gravity="center" + android:layout_gravity="center_vertical|end" android:contentDescription="@string/status_bar_notification_inspect_item_title" - android:src="@drawable/ic_info" - /> + android:src="@drawable/ic_settings" /> + </FrameLayout> + <!-- Importance slider --> + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_vertical" + android:paddingStart="@*android:dimen/notification_content_margin_start" + android:orientation="vertical" + android:clickable="false" + android:focusable="false" + android:paddingBottom="8dip"> + <TextView + android:id="@+id/title" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:singleLine="true" + android:textAppearance="@android:style/TextAppearance.Material.Subhead" + android:textColor="@color/notification_guts_text_color" + android:ellipsize="marquee" + android:fadingEdge="horizontal" + android:text="@*android:string/notification_importance_title"/> + + <TextView + android:id="@+id/summary" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignStart="@android:id/title" + android:textAlignment="viewStart" + android:textAppearance="@android:style/TextAppearance.Material.Body1" + android:textColor="@color/notification_guts_title_color" + android:maxLines="3" + android:minLines="2" /> + + <FrameLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:paddingTop="6dp" > + + <ImageView + android:id="@+id/low_importance" + android:src="@android:drawable/ic_menu_close_clear_cancel" + android:layout_gravity="center_vertical|start" + android:layout_width="24dp" + android:layout_height="24dp" /> + + <SeekBar + android:id="@+id/seekbar" + android:layout_marginStart="24dp" + android:layout_marginEnd="24dp" + android:layout_gravity="center_vertical" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:focusable="true" + android:background="#00ffffff" + android:thumbTint="@android:color/white" + android:progressTint="@android:color/white" /> + + <ImageView + android:id="@+id/max_importance" + android:src="@android:drawable/ic_popup_reminder" + android:layout_gravity="center_vertical|end" + android:layout_width="24dp" + android:layout_height="24dp"/> + + </FrameLayout> </LinearLayout> </com.android.systemui.statusbar.NotificationGuts> diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index f3e7cfe289be..a08c9cad86d4 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Luitoestel stil."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Werkmodus"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Maak <xliff:g id="APP">%s</xliff:g> toe."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobiele warmkol afgeskakel."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobiele warmkol aangeskakel."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Uitsaai van skerm gestaak."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Werkmodus is af."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Werkmodus is aan."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Werkmodus is afgeskakel."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Werkmodus is aangeskakel."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Skermhelderheid"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G-data is laat wag"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-data is laat wag"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> gebruik"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g>-limiet"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> waarskuwing"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Werkmodus"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Jou onlangse skerms verskyn hier"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Programinligting"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"skermvaspen"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index 838a4eb2f31c..4591f241619c 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"የስልክ ጥሪ ፀጥታ።"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"የሥራ ሁነታ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> አስወግድ።"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"የተንቀሳቃሽ ስልክ መገናኛ ነጥብ ጠፍቷል።"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"የተንቀሳቃሽ ስልክ መገናኛ ነጥብ በርቷል።"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"ማያ ገጽ መውሰድ ቆሟል።"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"የሥራ ሁነታ ጠፍቷል።"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"የሥራ ሁነታ በርቷል።"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"የሥራ ሁነታ ጠፍቷል።"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"የሥራ ሁነታ በርቷል።"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ብሩህነት ያሳዩ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2ጂ-3ጂ ውሂብ ላፍታ ቆሟል"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4ጂ ውሂብ ላፍታ ቆሟል"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ጥቅም ላይ ውሏል"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"የሥራ ሁነታ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"የቅርብ ጊዜ ማያ ገጾችዎ እዚህ ይታያሉ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"የመተግበሪያ መረጃ"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ማያ ገጽ መሰካት"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"፣ "</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> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 2789ffa553e6..beeb923c9c57 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -165,8 +165,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"رنين صامت."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"وضع العمل"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"إزالة <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -218,14 +217,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"تم إيقاف نقطة اتصال الجوّال."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"تم تشغيل نقطة اتصال الجوّال."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"توقف إرسال الشاشة."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"وضع العمل معطَّل."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"وضع العمل قيد التشغيل."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"تم تعطيل وضع العمل."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"تم تشغيل وضع العمل."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"سطوع الشاشة"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"بيانات شبكات الجيل الثاني والثالث متوقفة مؤقتًا"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"تم إيقاف بيانات شبكة الجيل الرابع مؤقتًا"</string> @@ -303,8 +298,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> مستخدم"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"وضع العمل"</string> <string name="recents_empty_message" msgid="8682129509540827999">"تظهر شاشاتك المعروضة مؤخرًا هنا"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"معلومات التطبيق"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"تثبيت الشاشة"</string> @@ -419,8 +413,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"، "</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> diff --git a/packages/SystemUI/res/values-az-rAZ/strings.xml b/packages/SystemUI/res/values-az-rAZ/strings.xml index 652f71c4a1bc..b2026a80f584 100644 --- a/packages/SystemUI/res/values-az-rAZ/strings.xml +++ b/packages/SystemUI/res/values-az-rAZ/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zəngvuran səssiz."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"İş rejimi"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> kənarlaşdırın."</string> <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> çıxarıldı."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Bütün son tətbiqlər kənarlaşdırıldı."</string> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobil hotspot deaktivdir."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobil hotspot aktivdir."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ekran yayımı dayandırıldı."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"İş rejimi deaktivdir."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"İş rejimi aktivdir."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"İş rejimi sönülüdür."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"İş rejimi yanılıdır."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Display brightness"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G məlumatlarına fasilə verildi"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G məlumatlarına fasilə verildi"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> işlənib"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> limit"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> xəbərdarlığı"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"İş rejimi"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Your recent screens appear here"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Tətbiq haqqında"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ekran sancağı"</string> @@ -415,8 +409,7 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Rədd et"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> proqramı səs səviyyəsi dialoqudur"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Orijinalı bərpa etmək üçün toxun."</string> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</string> <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"İş profilinizi istifadə edirsiniz"</string> <string name="system_ui_tuner" msgid="708224127392452018">"System UI Tuner"</string> <string name="show_battery_percentage" msgid="5444136600512968798">"Daxil batareya faizini göstərin"</string> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 0bbdbe92db8d..91a5c4c89fa0 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Звънът е заглушен."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Работен режим"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Отхвърляне на <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобилната точка за достъп се изключи."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобилната точка за достъп се включи."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Предаването на съдържанието от екрана спря."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Работният режим е изключен."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Работният режим е включен."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Работният режим е изключен."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Работният режим е включен."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Яркост на екрана"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Данните от 2G – 3G са поставени на пауза"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Данните от 4G са поставени на пауза"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Използвано: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Работен режим"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Скорошните ви екрани се показват тук"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Информация за приложението"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"фиксиране на екрана"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml index e1c3d5ebac8d..1c795423797c 100644 --- a/packages/SystemUI/res/values-bn-rBD/strings.xml +++ b/packages/SystemUI/res/values-bn-rBD/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"রিং বাজানো বন্ধ করুন৷"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"কাজের মোড"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> খারিজ করুন।"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"মোবাইল হটস্পট বন্ধ হয়েছে।"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"মোবাইল হটস্পট চালু হয়েছে।"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"স্ক্রীন কাস্ট করা থেমেছে।"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"কাজের মোড বন্ধ আছে"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"কাজের মোড চালু আছে"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"কাজের মোড বন্ধ আছে।"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"কাজের মোড চালু আছে"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"প্রদর্শনের উজ্জ্বলতা"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ডেটা বিরতি দেওয়া হয়েছে"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ডেটা বিরতি দেওয়া হয়েছে"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ব্যবহৃত হয়েছে"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"কাজের মোড"</string> <string name="recents_empty_message" msgid="8682129509540827999">"আপনার সাম্প্রতিক স্ক্রীনগুলো এখানে দেখা যাবে"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"অ্যাপ্লিকেশানের তথ্য"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"স্ক্রীন পিন করা"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index e361ed0f3f23..1fc41a409d35 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Mode silenci."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Mode de feina"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ignora <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"El punt d\'accés mòbil està desactivat."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"El punt d\'accés mòbil està activat."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"S\'ha aturat l\'emissió de la pantalla."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"El mode de feina està desactivat."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"El mode de feina està activat."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"S\'ha desactivat el mode de feina."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"S\'ha activat el mode de feina."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Brillantor de la pantalla"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Les dades 2G-3G estan aturades"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Les dades 4G estan aturades"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Utilitzats: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Límit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advertiment: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Mode de feina"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Aquí es mostren les teves pantalles recents."</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informació de l\'aplicació"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fixació de pantalla"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 11a9bbe15095..f405f102c370 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Tiché vyzvánění."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Pracovní režim"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Zavřít aplikaci <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobile hotspot je vypnutý."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobile hotspot je zapnutý."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Odesílání obrazovky zastaveno."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Pracovní režim vypnutý"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Pracovní režim zapnutý"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Pracovní režim je vypnutý."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Pracovní režim je zapnutý."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Jas displeje"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data 2G a 3G jsou pozastavena"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Data 4G jsou pozastavena"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Využito: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Upozornění při <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Pracovní režim"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Zde budou zobrazeny vaše poslední obrazovky"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informace o aplikaci"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"připnutí obrazovky"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index aef1037bace4..6e85d8c0a065 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Lydløs."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Arbejdstilstand"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Afvis <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobilhotspot er slået fra."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobilhotspot er slået til."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Casting af din skærm er stoppet."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Arbejdstilstand er slået fra."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Arbejdstilstand er slået til."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Arbejdstilstand er slået fra."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbejdstilstand er slået til."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Skærmens lysstyrke"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G-data er sat på pause"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-data er sat på pause"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> brugt"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Grænse: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advarsel ved <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Arbejdstilstand"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Dine seneste skærme vises her"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Oplysninger om applikationen"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"bliv i app"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 6ba1a8ede188..cdc1f2a94f6f 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Klingelton lautlos"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Arbeitsmodus"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> beenden"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Der mobile Hotspot ist deaktiviert."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Der mobile Hotspot ist aktiviert."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Die Bildschirmübertragung wurde angehalten."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Arbeitsmodus aus."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Arbeitsmodus an."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Arbeitsmodus deaktiviert."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbeitsmodus aktiviert."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Helligkeit des Displays"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-/3G-Daten pausiert"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-Daten pausiert"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> verwendet"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> Datenlimit"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Warnung für <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Arbeitsmodus"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Hier sehen Sie Ihre zuletzt geöffneten Apps."</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"App-Info"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"Bildschirmfixierung"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"\", \" "</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> diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index c9c7efbd5d26..015eeae206a2 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Ειδοποίηση ήχου στο αθόρυβο."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Λειτουργία εργασίας"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Παράβλεψη <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Το σημείο πρόσβασης κινητής συσκευής απενεργοποιήθηκε."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Το σημείο πρόσβασης κινητής συσκευής ενεργοποιήθηκε."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Η μετάδοση της οθόνης διακόπηκε."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Η λειτουργία εργασίας είναι απενεργοποιημένη."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Η λειτουργία εργασίας είναι ενεργή."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Η λειτουργία εργασίας απενεργοποιήθηκε."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Η λειτουργία εργασίας ενεργοποιήθηκε."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Φωτεινότητα οθόνης"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Τα δεδομένα 2G-3G τέθηκαν σε παύση"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Τα δεδομένα 4G τέθηκαν σε παύση"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Χρησιμοποιούνται <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Λειτουργία εργασίας"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Οι πρόσφατες οθόνες σας εμφανίζονται εδώ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Πληροφορίες εφαρμογής"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"καρφίτσωμα οθόνης"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 0d9f55e6eb6b..345b3bf12002 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Timbre en silencio"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de trabajo"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Rechazar <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Zona móvil desactivada"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Zona móvil activada"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Transmisión de pantalla detenida"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de trabajo desactivado"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de trabajo activado"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Se desactivó el modo de trabajo."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Se activó el modo de trabajo."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Brillo de pantalla"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Datos 2G-3G pausados"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Datos 4G pausados"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Utilizados: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advertencia de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de trabajo"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Las pantallas recientes aparecen aquí."</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Información de la aplicación"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"Fijar pantalla"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index a5a39ced15e8..d29eeff54eff 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Modo silencio"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de trabajo"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ignorar <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Punto de acceso móvil desactivado."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Punto de acceso móvil activado."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Envío de pantalla detenido."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de trabajo desactivado."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de trabajo activado."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Modo de trabajo desactivado."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modo de trabajo activado."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Brillo de la pantalla"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Datos 2G-3G pausados"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Datos 4G pausados"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizado"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advertencia de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de trabajo"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Aquí aparecerán tus pantallas recientes"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Información de la aplicación"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fijación de pantalla"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"y "</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> diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml index 79ab1eeb7f43..12490b187f79 100644 --- a/packages/SystemUI/res/values-et-rEE/strings.xml +++ b/packages/SystemUI/res/values-et-rEE/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Vaikne kõlisti."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Töörežiim"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Rakendusest <xliff:g id="APP">%s</xliff:g> loobumine."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobiilside leviala on välja lülitatud."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobiilside leviala on sisse lülitatud."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ekraanikuva ülekandmine on peatatud."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Töörežiim on väljas."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Töörežiim on sees."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Töörežiim on välja lülitatud."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Töörežiim on sisse lülitatud."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ekraani heledus"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G andmekasutus on peatatud"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G andmekasutus on peatatud"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> on kasutatud"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limiit: <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> hoiatus"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Töörežiim"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Teie viimane ekraanikuva ilmub siia"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Rakenduste teave"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ekraanikuva kinnitamine"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml index 94ce0ff9d77c..2938bd4870df 100644 --- a/packages/SystemUI/res/values-eu-rES/strings.xml +++ b/packages/SystemUI/res/values-eu-rES/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Tonu-jotzailea isilik."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Lan modua"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Baztertu <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Konexioa partekatzeko aukera desaktibatu egin da."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Konexioa partekatzeko aukera aktibatu egin da."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Pantaila igortzeari utzi zaio."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Desaktibatuta dago lan modua."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Aktibatuta dago lan modua."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Desaktibatuta dago lan modua."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Aktibatuta dago lan modua."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Bistaratu distira"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G datuen erabilera eten da"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G datuen erabilera eten da"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> erabilita"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Muga: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Abisua: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Lan modua"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Ikusitako azken pantailak erakusten dira hemen"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Aplikazioaren informazioa"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"pantaila-ainguratzea"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index 9fbafc27a909..20c85ad80f7e 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"زنگ بیصدا."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"حالت کار"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"رد کردن <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"نقطه اتصال دستگاه همراه خاموش شد."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"نقطه اتصال دستگاه همراه روشن شد."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"فرستادن صفحه نمایش متوقف شد."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"حالت کار خاموش."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"حالت کار روشن."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"حالت کار خاموش شد."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"حالت کار روشن شد."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"روشنایی نمایشگر"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"داده 2G-3G موقتاً متوقف شده است"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"داده 4G موقتاً متوقف شده است"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> استفاده شده"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"حالت کار"</string> <string name="recents_empty_message" msgid="8682129509540827999">"صفحههای اخیر شما اینجا نمایان میشوند"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"اطلاعات برنامه"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"پین کردن صفحه"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"، "</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> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 6c9e9d6c4ab5..e12c86eac4b1 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Soittoääni: äänetön."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Työtila"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Hylätään <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobiiliyhteyden hotspot poistettiin käytöstä."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobiiliyhteyden hotspot otettiin käyttöön."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ruudun lähetys pysäytettiin."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Työtila on poistettu käytöstä."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Työtila on käytössä."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Työtila poistettiin käytöstä."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Työtila otettiin käyttöön."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Näytön kirkkaus"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G-tiedonsiirto keskeytettiin"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-tiedonsiirto keskeytettiin"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"käytetty <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"kiintiö <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> – varoitus"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Työtila"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Äskettäin käytetyt ruudut näkyvät tässä"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Sovellustiedot"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"näytön kiinnitys"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index 86b207ecfdc5..63cd500913ca 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Sonnerie en mode silencieux"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Mode Travail"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Supprimer <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Point d\'accès mobile désactivé."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Point d\'accès mobile activé."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Diffusion d\'écran arrêtée."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Mode Travail désactivé."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Mode Travail activé."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Le mode Travail est désactivé."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Le mode Travail est activé."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Luminosité de l\'écran"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Données 2G/3G désactivées"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Données 4G désactivées"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Quantité de données utilisées :<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">"Avertissement : <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Mode Travail"</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">"Détails de l\'application"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"épinglage d\'écran"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 6953c878f795..04ba842a8632 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Sonnerie en mode silencieux"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Mode Travail"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Supprimer <xliff:g id="APP">%s</xliff:g>"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Point d\'accès mobile désactivé."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Point d\'accès mobile activé."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Diffusion d\'écran interrompue."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Mode Travail désactivé"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Mode Travail activé"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Le mode Travail est désactivé."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Le mode Travail est activé."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Luminosité de l\'affichage"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Données 2G-3G désactivées"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Données 4G désactivées"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilisés"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Mode Travail"</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_lock_to_app_button_label" msgid="6942899049072506044">"épinglage d\'écran"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"&quot;, &quot; "</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> diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml index 2a2a2e07cef8..87753d13578e 100644 --- a/packages/SystemUI/res/values-gl-rES/strings.xml +++ b/packages/SystemUI/res/values-gl-rES/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Timbre silenciado"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de traballo"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Rexeitar <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Desactivouse a zona interactiva móbil."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Activouse a zona interactiva móbil."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Detívose a emisión en pantalla."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de traballo desactivado."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de traballo activado."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Desactivouse o modo de traballo."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Activouse o modo de traballo."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Brillo de pantalla"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Os datos 2G-3G están en pausa"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Os datos 4G están en pausa"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> usados"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Límite de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advertencia <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de traballo"</string> <string name="recents_empty_message" msgid="8682129509540827999">"As túas pantallas recentes aparecen aquí"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Información da aplicación"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fixación de pantalla"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-gu-rIN/strings.xml b/packages/SystemUI/res/values-gu-rIN/strings.xml index 6b67a209adda..a10f0d5eb641 100644 --- a/packages/SystemUI/res/values-gu-rIN/strings.xml +++ b/packages/SystemUI/res/values-gu-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"રિંગર શાંત છે."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"કાર્ય મોડ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> કાઢી નાખો."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"મોબાઇલ હોટસ્પોટ બંધ કર્યું."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"મોબાઇલ હોટસ્પોટ ચાલુ કર્યું."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"સ્ક્રીન કાસ્ટિંગ બંધ કર્યું."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"કાર્ય મોડ બંધ."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"કાર્ય મોડ ચાલુ."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"કાર્ય મોડ બંધ કર્યો."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"કાર્ય મોડ ચાલુ કર્યો."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"પ્રદર્શન તેજ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ડેટા થોભાવ્યો છે"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ડેટા થોભાવ્યો છે"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> વાપર્યો"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"કાર્ય મોડ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"તમારી તાજેતરની સ્ક્રીન્સ અહીં દેખાય છે"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"એપ્લિકેશન માહિતી"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"સ્ક્રીન પિનિંગ"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index feba1fe7b4a7..a3c895834afe 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"रिंगर मौन."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"कार्य मोड"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> को ख़ारिज करें."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"मोबाइल हॉटस्पॉट को बंद किया गया."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"मोबाइल हॉटस्पॉट को चालू किया गया."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"स्क्रीन कास्ट करना रुक गया."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"कार्य मोड बंद है."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"कार्य मोड चालू है."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"कार्य मोड बंद कर दिया गया."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"कार्य मोड चालू किया गया."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"स्क्रीन की स्क्रीन की रोशनी"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G डेटा रोक दिया गया है"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G डेटा रोक दिया गया है"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> उपयोग किया गया"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"कार्य मोड"</string> <string name="recents_empty_message" msgid="8682129509540827999">"आपकी हाल की स्क्रीन यहां दिखाई देती हैं"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"एप्लिकेशन जानकारी"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"स्क्रीन पिन करना"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index de1ca72dabfc..0e171eade36e 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -162,8 +162,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Softver zvona utišan."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Način rada"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Odbacivanje aplikacije <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -215,14 +214,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobilna žarišna točka isključena."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobilna žarišna točka uključena."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Emitiranje zaslona zaustavljeno."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Način rada isključen."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Način rada uključen."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Način rada isključen."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Način rada uključen."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Svjetlina zaslona"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G – 3G podaci pauzirani"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G podaci pauzirani"</string> @@ -300,8 +295,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> iskorišteno"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Ograničenje od <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Upozorenje <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Način rada"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Ovdje se pojavljuju vaši nedavni zasloni"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informacije o aplikaciji"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"prikvačivanje zaslona"</string> @@ -416,8 +410,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 7763fa742762..39336c819ccb 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Csengő néma."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Munka mód"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"A(z) <xliff:g id="APP">%s</xliff:g> elvetése."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"A mobil hotspot kikapcsolva."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"A mobil hotspot bekapcsolva."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"A képernyő átküldése leállítva."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Munka mód ki."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Munka mód be."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Munka mód kikapcsolva."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Munka mód bekapcsolva."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"A kijelző fényereje"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"A 2G és 3G adatforgalom szünetel."</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"A 4G adatforgalom szünetel"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> felhasználva"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> korlát"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Figyelem! <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Munka mód"</string> <string name="recents_empty_message" msgid="8682129509540827999">"A legutóbbi képernyők itt jelennek meg"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Az alkalmazás adatai"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"képernyő rögzítése"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index cbb9a895d125..0d50b9c1ceba 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Զանգակը լռեցված է:"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Աշխատանքային ռեժիմ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Անտեսել <xliff:g id="APP">%s</xliff:g>-ը:"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Շարժական կապի WiFi ցրիչն անջատվեց:"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Շարժական կապի WiFi ցրիչը միացավ:"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Էկրանի հեռարձակումն ընդհատվեց:"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Աշխատանքային ռեժիմն անջատված է:"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Աշխատանքային ռեժիմը միացված է:"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Աշխատանքային ռեժիմն անջատվեց:"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Աշխատանքային ռեժիմը միացվեց:"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ցուցադրել պայծառությունը"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2Գ-3Գ տվյալների օգտագործումը դադարեցված է"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4Գ տվյալների օգտագործումը դադարեցված է"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Օգտագործված է՝ <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Աշխատանքային ռեժիմ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Ձեր վերջին էկրանները տեսանելի են այստեղ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Հավելվածի մասին"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"էկրանի ամրակցում"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index bbf018df7bbd..7ec468553a4e 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Pendering senyap."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Mode kerja"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Menyingkirkan <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Hotspot seluler dinonaktifkan."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Hotspot seluler diaktifkan."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Transmisi layar berhenti."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Mode kerja nonaktif."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Mode kerja aktif."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Mode kerja dinonaktifkan."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Mode kerja diaktifkan."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Kecerahan tampilan"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data 2G-3G dijeda"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Data 4G dijeda"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> digunakan"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Batas <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Peringatan <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Mode kerja"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Layar terkini Anda muncul di sini"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Info Aplikasi"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"pin ke layar"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml index f9235a0c0688..c17e17486f04 100644 --- a/packages/SystemUI/res/values-is-rIS/strings.xml +++ b/packages/SystemUI/res/values-is-rIS/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Engin hringing."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Vinnustilling"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Hunsa <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Slökkt á farsímaaðgangsstað."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Kveikt á farsímaaðgangsstað."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Skjáútsendingu hætt."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Slökkt á vinnustillingu."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Kveikt á vinnustillingu."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Slökkt á vinnustillingu."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Kveikt á vinnustillingu."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Birtustig skjás"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Slökkt er á 2G- og 3G-gögnum"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Slökkt er á 4G-gögnum"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> notuð"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> hámark"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> viðvörun"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Vinnustilling"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Nýlegar skjámyndir birtast hér"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Forritsupplýsingar"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"skjáfesting"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index a389126e09be..866f872fda45 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Suoneria silenziosa."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modalità Lavoro"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Elimina <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Hotspot mobile disattivato."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Hotspot mobile attivato."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Trasmissione dello schermo interrotta."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modalità Lavoro non attiva."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modalità Lavoro attiva."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Modalità Lavoro disattivata."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modalità Lavoro attivata."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Luminosità dello schermo"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Dati 2G-3G sospesi"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Dati 4G sospesi"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizzati"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite di <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avviso <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modalità Lavoro"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Le tue schermate recenti vengono visualizzate in questa sezione"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informazioni sull\'applicazione"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"blocco su schermo"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index cd64034a7940..8d3da1172771 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"צלצול שקט."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"מצב עבודה"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"סגור את <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"נקודה לשיתוף אינטרנט בנייד כבויה."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"נקודה לשיתוף אינטרנט בנייד מופעלת."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"העברת המסך הופסקה."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"מצב עבודה כבוי."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"מצב עבודה מופעל."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"מצב עבודה הושבת."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"מצב עבודה הופעל."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"בהירות תצוגה"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"השימוש בנתוני 2G-3G מושהה"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"השימוש בנתוני 4G מושהה"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> בשימוש"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"מצב עבודה"</string> <string name="recents_empty_message" msgid="8682129509540827999">"המסכים האחרונים מופיעים כאן"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"מידע על האפליקציה"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"הצמדת מסך"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 39c716108992..ae57a32629f7 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"マナーモード着信。"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Work モード"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g>を削除します。"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"モバイルアクセスポイントをOFFにしました。"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"モバイルアクセスポイントをONにしました。"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"画面のキャストが停止しました。"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Work モードがオフです。"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Work モードがオンです。"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Work モードをオフにしました。"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Work モードをオンにしました。"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ディスプレイの明るさ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G~3Gデータは一時停止中です"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4Gデータは一時停止中です"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g>使用中"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Work モード"</string> <string name="recents_empty_message" msgid="8682129509540827999">"ここに最近の画面が表示されます"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"アプリ情報"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"画面固定"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"、 "</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> diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml index 234891f0e135..18d6f168a8f6 100644 --- a/packages/SystemUI/res/values-ka-rGE/strings.xml +++ b/packages/SystemUI/res/values-ka-rGE/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"უხმო რეჟიმი."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"სამსახურის რეჟიმი"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g>-ის უგულებელყოფა."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"მობილური ქსელის წერტილი გამოირთო."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"მობილური ქსელის წერტილი ჩაირთო."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"ეკრანის გადაცემა შეჩერებულია."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"სამსახურის რეჟიმი გამორთულია."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"სამსახურის რეჟიმი ჩართულია."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"სამსახურის რეჟიმი გამორთულია."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"სამსახურის რეჟიმი ჩართულია."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ეკრანის სიკაშკაშე"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G მონაცემები შეჩერებულია"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G მონაცემები შეჩერებულია"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"გამოყენებულია: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"სამსახურის რეჟიმი"</string> <string name="recents_empty_message" msgid="8682129509540827999">"თქვენი ბოლო ეკრანები აქ გამოჩნდება"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"აპლიკაციის შესახებ"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ეკრანზე ჩამაგრება"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml index 08e2a508f15b..0d4b618450a7 100644 --- a/packages/SystemUI/res/values-kk-rKZ/strings.xml +++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Қоңырау үнсіз."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Жұмыс режимі"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> қолданбасынан бас тарту."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобильді хотспот өшірілді."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобильді хотспот қосылды."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Экранды трансляциялау тоқтатылды."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Жұмыс режимі өшірулі."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Жұмыс режимі қосулы."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Жұмыс режимі өшірілді."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Жұмыс режимі қосылды."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Дисплей жарықтығы"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G деректері кідіртілді"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G деректері кідіртілді"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> пайдаланылған"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Жұмыс режимі"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Мұнда жақындағы экрандар көрсетіледі"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Қолданба туралы ақпарат"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"экранды бекіту"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index 2df7f1f8698d..8a72493e904c 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"កម្មវិធីរោទ៍ស្ងាត់។"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"របៀបការងារ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"បោះបង់ <xliff:g id="APP">%s</xliff:g> ។"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"បានបិទហតស្ប៉តចល័ត។"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"បានបើកហតស្ប៉តចល័ត។"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"បានបញ្ឈប់ការចាត់ថ្នាក់អេក្រង់។"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"បិទរបៀបការងារ"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"បើករបៀបការងារ"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"បានបិទរបៀបការងារ"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"បានបើករបៀបការងារ"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ពន្លឺការបង្ហាញ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"ទិន្នន័យ 2G-3G ត្រូវបានផ្អាក"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"ទិន្នន័យ 4G ត្រូវបានផ្អាក"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"បានប្រើ <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"របៀបការងារ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"អេក្រង់បច្ចុប្បន្នរបស់អ្នកបង្ហាញនៅទីនេះ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ព័ត៌មានកម្មវិធី"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ការភ្ជាប់អេក្រង់"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index ee466d0c2ea2..d20f03945899 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"ರಿಂಗರ್ ಶಾಂತ."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"ಕೆಲಸದ ಮೋಡ್"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> ವಜಾಗೊಳಿಸು."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ಮೊಬೈಲ್ ಹಾಟ್ಸ್ಪಾಟ್ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"ಮೊಬೈಲ್ ಹಾಟ್ಸ್ಪಾಟ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"ಸ್ಕ್ರೀನ್ ಪ್ರಸಾರವನ್ನು ನಿಲ್ಲಿಸಲಾಗಿದೆ."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"ಕೆಲಸದ ಮೋಡ್ ಆಫ್ ಆಗಿದೆ."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"ಕೆಲಸದ ಮೋಡ್ ಆನ್ ಆಗಿದೆ."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"ಕೆಲಸದ ಮೋಡ್ ಆಫ್ ಮಾಡಲಾಗಿದೆ."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ಕೆಲಸದ ಮೋಡ್ ಆನ್ ಮಾಡಲಾಗಿದೆ."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ಹೊಳಪನ್ನು ಪ್ರದರ್ಶಿಸಿ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ಡೇಟಾವನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ಬಳಸಲಾಗಿದೆ"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"ಕೆಲಸದ ಮೋಡ್"</string> <string name="recents_empty_message" msgid="8682129509540827999">"ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಪರದೆಗಳು ಇಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತವೆ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ಅಪ್ಲಿಕೇಶನ್ ಮಾಹಿತಿ"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ಸ್ಕ್ರೀನ್ ಪಿನ್ನಿಂಗ್"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 35725aaf1fa5..2d61eabff75f 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"벨소리가 무음입니다."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"작업 모드"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g>을(를) 숨깁니다."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"모바일 핫스팟이 사용 중지되었습니다."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"모바일 핫스팟을 사용합니다."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"화면 전송이 중지되었습니다."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"작업 모드가 사용 중지되었습니다."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"작업 모드가 사용 설정되었습니다."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"작업 모드가 사용 중지되었습니다."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"작업 모드가 사용 설정되었습니다."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"디스플레이 밝기"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G 데이터 사용 중지됨"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G 데이터 사용 중지됨"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> 사용됨"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"작업 모드"</string> <string name="recents_empty_message" msgid="8682129509540827999">"여기에 최근 화면이 표시됩니다."</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"애플리케이션 정보"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"화면 고정"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index 79b8937a8630..6d624d185c68 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Үнсүз шыңгыроо."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Иштөө режими"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> этибарга албоо."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобилдик байланыш түйүнү өчүрүлдү."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобилдик байланыш түйүнү күйгүзүлдү."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Тышкы экранга чыгаруу аракети токтотулду."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Иштөө режими өчүк."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Иштөө режими күйүк."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Иштөө режими өчүрүлдү."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Иштөө режими күйгүзүлдү."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Жарыктыгын көрсөтүү"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G дайындары тындырылды."</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G дайындары тындырылды"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> колдонулду"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Иштөө режими"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Акыркы экрандарыңыз бул жерден көрүнөт"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Колдонмо жөнүндө маалымат"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"экран кадоо"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml index 015d4da66a50..35a6e1bab4e8 100644 --- a/packages/SystemUI/res/values-lo-rLA/strings.xml +++ b/packages/SystemUI/res/values-lo-rLA/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"ປິດສຽງ."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"ໂໝດການເຮັດວຽກ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"ປິດ <xliff:g id="APP">%s</xliff:g> ໄວ້."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ປິດຮັອດສະປອດເຄື່ອນທີ່ແລ້ວ."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"ເປີດຮັອດສະປອດເຄື່ອນທີ່ແລ້ວ."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"ຢຸດການສົ່ງພາບໜ້າຈໍແລ້ວ."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"ໂໝດການເຮັດວຽກປິດຢູ່."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"ໂໝດການເຮັດວຽກເປີດຢູ່."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"ໂໝດການເຮັດວຽກປິດຢູ່."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ໂໝດການເຮັດວຽກເປີດຢູ່."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ຄວາມແຈ້ງຂອງຈໍ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"ຂໍ້ມູນ 2G-3G ຢຸດຊົ່ວຄາວແລ້ວ"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"ຂໍ້ມູນ 4G ຢຸດຊົ່ວຄາວແລ້ວ"</string> @@ -275,7 +270,7 @@ <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_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> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"ໃຊ້ໄປແລ້ວ <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"ໂໝດການເຮັດວຽກ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Your recent screens appear here"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ຂໍ້ມູນແອັບພລິເຄຊັນ"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ການປັກໝຸດໜ້າຈໍ"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 282866fbb321..43d5f064fe2f 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Skambutis tylus."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Darbo režimas"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Atsisakyti <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobiliojo ryšio viešosios interneto prieigos taškas išjungtas."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobiliojo ryšio viešosios interneto prieigos taškas įjungtas."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ekrano perdavimas sustabdytas."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Darbo režimas išjungtas."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Darbo režimas įjungtas."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Darbo režimas išjungtas."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Darbo režimas įjungtas."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ekrano šviesumas"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G duomenys pristabdyti"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G duomenys pristabdyti"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Išnaudota: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limitas: <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> įspėjimas"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Darbo režimas"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Čia rodomi naujausi ekranai"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Programos informacija"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ekrano prisegimas"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 8e99c5769894..76bc30f1b595 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -162,8 +162,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zvana signāls — kluss."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Darba režīms"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Nerādīt lietotni <xliff:g id="APP">%s</xliff:g>"</string> <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> @@ -215,14 +214,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobilais tīklājs ir izslēgts."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobilais tīklājs ir ieslēgts."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ekrāna apraidīšana ir apturēta."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Darba režīms ir izslēgts."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Darba režīms ir ieslēgts."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Darba režīms ir izslēgts."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Darba režīms ir ieslēgts."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ekrāna spilgtums"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G datu lietojums ir apturēts"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G datu lietojums ir apturēts"</string> @@ -300,8 +295,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Tiek izmantots: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Ierobežojums: <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> brīdinājums"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Darba režīms"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Jūsu pēdējie ekrāni tiek rādīti šeit."</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informācija par lietojumprogrammu"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"Piespraust ekrānu"</string> @@ -416,8 +410,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml index c2de755f2bd3..c4db311c2c62 100644 --- a/packages/SystemUI/res/values-mk-rMK/strings.xml +++ b/packages/SystemUI/res/values-mk-rMK/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Ѕвонче на тивко."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Режим на работа"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Отфрли <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобилната точка на пристап е исклучена."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобилната точка на пристап е вклучена."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Емитувањето на екранот запре."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Режимот на работа е исклучен."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Режимот на работа е вклучен."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Режимот на работа е исклучен."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Режимот на работа е вклучен."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Осветленост на екранот"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Податоците 2G-3G се паузирани"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Податоците 4G се паузирани"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Искористено: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Режим на работа"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Вашите неодамнешни екрани се појавуваат тука"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Информации за апликацијата"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"прикачување екран"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml index 5594792c2b33..20ca46e96f12 100644 --- a/packages/SystemUI/res/values-ml-rIN/strings.xml +++ b/packages/SystemUI/res/values-ml-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"റിംഗർ നിശ്ശബ്ദമാണ്."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"പ്രവർത്തന മോഡ്"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> നിരസിക്കുക."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"മൊബൈൽ ഹോട്ട്സ്പോട്ട് ഓഫാക്കി."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"മൊബൈൽ ഹോട്ട്സ്പോട്ട് ഓണാക്കി."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"സ്ക്രീൻ കാസ്റ്റുചെയ്യൽ നിർത്തി."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"പ്രവർത്തന മോഡ് ഓഫാണ്."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"പ്രവർത്തന മോഡ് ഓണാണ്."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"പ്രവർത്തന മോഡ് ഓഫാക്കി."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"പ്രവർത്തന മോഡ് ഓണാക്കി."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ഡിസ്പ്ലേ തെളിച്ചം"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ഡാറ്റ താൽക്കാലികമായി നിർത്തി"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ഡാറ്റ താൽക്കാലികമായി നിർത്തി"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ഉപയോഗിച്ചു"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"പ്രവർത്തന മോഡ്"</string> <string name="recents_empty_message" msgid="8682129509540827999">"നിങ്ങളുടെ പുതിയ സ്ക്രീനുകൾ ഇവിടെ ദൃശ്യമാകുന്നു"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ആപ്പ് വിവരം"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"സ്ക്രീൻ പിൻ ചെയ്യൽ"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml index 260a580b1b13..1a15870b8004 100644 --- a/packages/SystemUI/res/values-mn-rMN/strings.xml +++ b/packages/SystemUI/res/values-mn-rMN/strings.xml @@ -159,8 +159,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Хонхыг хаах."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Ажлын горим"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g>-г хаах."</string> <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> @@ -212,14 +211,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобайл хотспотыг унтраасан."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобайл хотспотыг асаасан."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Дэлгэц дамжуулалт зогссон."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Ажлын горимыг унтраасан."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Ажлын горимыг асаасан."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Ажлын горимыг унтраасан."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Ажлын горимыг асаасан."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Дэлгэцийн гэрэлтэлт"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G дата-г түр зогсоосон байна"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G дата-г түр зогсоосон байна"</string> @@ -297,8 +292,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ашигласан"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Ажлын горим"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Таны саяхны дэлгэц энд харагдах болно"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Аппликешны мэдээлэл"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"дэлгэц тогтоох"</string> @@ -413,8 +407,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml index 0c7f795d9bcb..4729a04b3b0f 100644 --- a/packages/SystemUI/res/values-mr-rIN/strings.xml +++ b/packages/SystemUI/res/values-mr-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"रिंगर मूक."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"कार्य मोड"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> डिसमिस करा."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"मोबाईल हॉटस्पॉट बंद केला."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"मोबाईल हॉटस्पॉट चालू केला."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"स्क्रीन कास्ट करणे थांबले."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"कार्य मोड बंद."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"कार्य मोड चालू."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"कार्य मोड बंद केला."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"कार्य मोड चालू केला."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"प्रदर्शन चमक"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G डेटास विराम दिला आहे"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G डेटास विराम दिला आहे"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> वापरले"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"कार्य मोड"</string> <string name="recents_empty_message" msgid="8682129509540827999">"आपल्या अलीकडील स्क्रीन येथे दिसतात"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"अनुप्रयोग माहिती"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"स्क्रीन पिन करणे"</string> @@ -415,13 +409,12 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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="quick_settings" msgid="10042998191725428">"द्रुत सेटिंग्ज"</string> <string name="status_bar" msgid="4877645476959324760">"स्टेटस बार"</string> <string name="overview" msgid="4018602013895926956">"विहंगावलोकन"</string> <string name="demo_mode" msgid="2389163018533514619">"डेमो मोड"</string> diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml index 9772a3c53b00..9a0a0c0566a4 100644 --- a/packages/SystemUI/res/values-ms-rMY/strings.xml +++ b/packages/SystemUI/res/values-ms-rMY/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Pendering senyap."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Mod kerja"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ketepikan <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Tempat liputan mudah alih bergerak dimatikan."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Tempat liputan mudah alih bergerak dihidupkan."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Penghantaran skrin dihentikan."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Mod kerja mati."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Mod kerja hidup."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Mod kerja dimatikan."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Mod kerja dihidupkan."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Kecerahan paparan"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data 2G-3G dijeda"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Data 4G dijeda"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> digunakan"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> had"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Amaran <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Mod kerja"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Skrin terbaru anda terpapar di sini"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Maklumat Aplikasi"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"penyematan skrin"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index 2b1acfb57bce..3f1b8a7b9b1b 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"ဖုန်းမြည်သံပိတ်သည်။"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"အလုပ် မုဒ်"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g>ကို ပယ်လိုက်ရန်"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"မိုဘိုင်း ဟော့စပေါ့ ပိတ်ထား။"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"မိုဘိုင်း ဟော့စပေါ့ ဖွင့်ထား။"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"မျက်နှာပြင် ကာစ်တင် လုပ်မှု ရပ်လိုက်ပြီ။"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"အလုပ် မုဒ်ကို ပိတ်ထားပါသည်။"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"အလုပ် မုဒ်ကို ဖွင့်ထားပါသည်။"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"အလုပ် မုဒ်ကို ပိတ်ထားပါသည်။"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"အလုပ် မုဒ်ကို ဖွင့်ထားပါသည်။"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"တောက်ပမှုကို ပြရန်"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ဒေတာ ခေတ္တရပ်တန့်သည်"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G data ခေတ္တရပ်တန့်သည်"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> သုံးထား"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"အလုပ် မုဒ်"</string> <string name="recents_empty_message" msgid="8682129509540827999">"သင်၏ မကြာမီက မျက်နှာပြင်များ ဒီမှာ ပေါ်လာကြမည်"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"အပလီကေးရှင်း အင်ဖို"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"မျက်နှာပြင် ပင်ထိုးမှု"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"၊ "</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> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 6dcd6bcd3375..8bcf35efd0fc 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Stille modus."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Arbeidsmodus"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Avvis <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobil Wi-Fi-sone er slått av."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobil Wi-Fi-sone er slått på."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Skjermcastingen er stoppet."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Arbeidsmodusen er av."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Arbeidsmodusen er på."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Arbeidsmodusen er slått av."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbeidsmodusen er slått på."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Lysstyrken på skjermen"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G- og 3G-data er satt på pause"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-data er satt på pause"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> brukt"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Grense på <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Advarsel for <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Arbeidsmodus"</string> <string name="recents_empty_message" msgid="8682129509540827999">"De sist brukte skjermene dine vises her"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Appinformasjon"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"én-appsmodus"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"&quot;, &quot; "</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> diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml index a05ce9ba8d0b..49413b394bc6 100644 --- a/packages/SystemUI/res/values-ne-rNP/strings.xml +++ b/packages/SystemUI/res/values-ne-rNP/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"घन्टी मौन।"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"कार्य मोड"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> खारेज गर्नुहोस्।"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"मोबाइल हटस्पट बन्द गरियो।"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"मोबाइल हटस्पट खुला गरियो।"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"स्क्रिन कास्टिङ रोकियो।"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"कार्य मोड बन्द।"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"कार्य मोड अन।"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"कार्य मोड बन्द भयो।"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"कार्य मोड सक्रिय भयो।"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"प्रदर्शन चमक"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G डेटा रोकिएको छ"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G डेटा रोकिएको छ"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> प्रयोग गरियो"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"कार्य मोड"</string> <string name="recents_empty_message" msgid="8682129509540827999">"तपाईँको हालको स्क्रिन यहाँ प्रकट हुन्छ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"अनुप्रयोग जानकारी"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"स्क्रिन पिन गर्दै"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-pa-rIN/strings.xml b/packages/SystemUI/res/values-pa-rIN/strings.xml index 02838bd0c002..3a6fa0f8e950 100644 --- a/packages/SystemUI/res/values-pa-rIN/strings.xml +++ b/packages/SystemUI/res/values-pa-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"ਰਿੰਗਰ ਸਾਈਲੈਂਟ।"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"ਕੰਮ ਮੋਡ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> ਨੂੰ ਰੱਦ ਕਰੋ।"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ਮੋਬਾਈਲ ਹੌਟਸਪੌਟ ਬੰਦ ਕੀਤੀ।"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"ਮੋਬਾਈਲ ਹੌਟਸਪੌਟ ਚਾਲੂ ਕੀਤੀ।"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"ਸਕ੍ਰੀਨ ਜੋੜਨਾ ਬੰਦ ਹੋਇਆ।"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"ਕੰਮ ਮੋਡ ਬੰਦ ਹੈ।"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"ਕੰਮ ਮੋਡ ਚਾਲੂ ਹੈ।"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"ਕੰਮ ਮੋਡ ਬੰਦ ਕੀਤਾ ਗਿਆ।"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"ਕੰਮ ਮੋਡ ਚਾਲੂ ਕੀਤਾ ਗਿਆ।"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ਡਿਸਪਲੇ ਚਮਕ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ਡਾਟਾ ਰੁਕ ਗਿਆ ਹੈ"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ਵਰਤਿਆ"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"ਕੰਮ ਮੋਡ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"ਤੁਹਾਡੀਆਂ ਹਾਲੀਆ ਸਕ੍ਰੀਨਾਂ ਇੱਥੇ ਪ੍ਰਗਟ ਹੋਣਗੀਆਂ"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ਐਪਲੀਕੇਸ਼ਨ ਜਾਣਕਾਰੀ"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ਸਕ੍ਰੀਨ ਪਿਨਿੰਗ"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</string> <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"ਤੁਸੀਂ ਆਪਣੀ ਕੰਮ ਪ੍ਰੋਫਾਈਲ ਵਰਤ ਰਹੇ ਹੋ"</string> <string name="system_ui_tuner" msgid="708224127392452018">"System UI ਟਿਊਨਰ"</string> <string name="show_battery_percentage" msgid="5444136600512968798">"ਜੋਡ਼ੀ ਗਈ ਬੈਟਰੀ ਪ੍ਰਤਿਸ਼ਤਤਾ ਦਿਖਾਓ"</string> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index d9d1dc492828..42c8f6eb050c 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Dzwonek wyciszony."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Tryb pracy"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Usuń stąd <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobilny hotspot został wyłączony."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobilny hotspot został włączony."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Zatrzymano przesyłanie ekranu."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Tryb pracy wyłączony."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Tryb pracy włączony."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Tryb pracy wyłączony."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Tryb pracy włączony."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Jasność wyświetlacza"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Transmisja danych 2G-3G została wstrzymana"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Transmisja danych 4G została wstrzymana"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Wykorzystano <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limit <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Ostrzeżenie: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Tryb pracy"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Tutaj pojawią się ostatnie ekrany"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informacje o aplikacji"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"przypinanie ekranu"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml index 74046212e7b5..e009ceab0f34 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Campainha silenciosa."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de trabalho"</string> <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> @@ -214,14 +213,10 @@ <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> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de trabalho desativado."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de trabalho ativado."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Modo de trabalho desativado."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modo de trabalho ativado."</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> @@ -299,8 +294,7 @@ <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de trabalho"</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> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index e14194b4aa0d..47949e0c913a 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Campainha em silêncio."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de trabalho"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ignorar <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Zona Wi-Fi móvel desligada."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Zona Wi-Fi móvel ligada."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Transmissão do ecrã interrompida."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de trabalho desativado."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de trabalho ativado."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"O modo de trabalho foi desativado."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"O modo de trabalho foi ativado."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Brilho do visor"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Dados 2G-3G em pausa"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Dados 4G em pausa"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizado(s)"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limite de <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de trabalho"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Os ecrãs recentes aparecem aqui"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informações da aplicação"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fixação no ecrã"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index 74046212e7b5..e009ceab0f34 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Campainha silenciosa."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modo de trabalho"</string> <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> @@ -214,14 +213,10 @@ <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> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modo de trabalho desativado."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modo de trabalho ativado."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Modo de trabalho desativado."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modo de trabalho ativado."</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> @@ -299,8 +294,7 @@ <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modo de trabalho"</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> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index eacc909b9159..03b9556b7f57 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -162,8 +162,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Sonerie silențioasă."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modul de lucru"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Închideți <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -215,14 +214,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Hotspotul mobil este dezactivat."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Hotspotul mobil este activat."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Transmiterea ecranului a fost oprită."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modul de lucru este dezactivat."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modul de lucru este activat."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Modul de lucru a fost dezactivat."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modul de lucru a fost activat."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Luminozitatea ecranului"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Conexiunea de date 2G – 3G este întreruptă"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Conexiunea de date 4G este întreruptă"</string> @@ -300,8 +295,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> utilizați"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limită de <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Avertizare: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modul de lucru"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Ecranele dvs. recente apar aici"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informații despre aplicație"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fixare pe ecran"</string> @@ -416,8 +410,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index c26f785bb664..a196ed67325d 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Беззвучный режим."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Рабочий режим"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Удаление приложения <xliff:g id="APP">%s</xliff:g> из списка."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Точка доступа отключена."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Точка доступа включена."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Трансляция прекращена."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Рабочий режим отключен."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Рабочий режим включен."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Рабочий режим отключен."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Рабочий режим включен."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Яркость экрана"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Передача данных 2G и 3G приостановлена"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Передача данных 4G приостановлена"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Использовано: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Рабочий режим"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Здесь будут показаны недавние приложения"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Сведения о приложении"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"Заблокировать в приложении"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml index 3ef672a247cf..297ef78f0240 100644 --- a/packages/SystemUI/res/values-si-rLK/strings.xml +++ b/packages/SystemUI/res/values-si-rLK/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"හඬ නඟනය නිශ්ශබ්දයි."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"වැඩ ප්රකාරය"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> ඉවතලන්න."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ජංගම හොට්ස්පොටය අක්රිය කරන ලදි."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"ජංගම හොට්ස්පොටය සක්රිය කරන ලදි."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"තිරය විකාශය කිරීම නැවත් වන ලදි."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"වැඩ ප්රකාරය ක්රියාවිරහිතයි."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"වැඩ ප්රකාරය ක්රියාත්මකයි."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"වැඩ ප්රකාරය ක්රියාවිරහිත කරන ලදී."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"වැඩ ප්රකාරය ක්රියාත්මක කරන ලදී."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"දීප්තිය දර්ශනය කරන්න"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G දත්ත විරාම කර ඇත"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G දත්ත විරාම කර ඇත"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> භාවිතා කර තිබේ"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"වැඩ ප්රකාරය"</string> <string name="recents_empty_message" msgid="8682129509540827999">"මෙහි ඔබගේ මෑතක තිර පෙන්නුම් කරයි"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"යෙදුම් තොරතුරු"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"තිර ඇමිණීම"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 2d6aa9d863ef..8c77eafea1af 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Tiché zvonenie."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Pracovný režim"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Zrušiť aplikáciu <xliff:g id="APP">%s</xliff:g>"</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobilný hotspot je vypnutý."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobilný hotspot je zapnutý."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Prenášanie bolo zastavené."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Pracovný režim – vyp."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Pracovný režim – zap."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Pracovný režim je vypnutý."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Pracovný režim je zapnutý."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Jas displeja"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Dátové prenosy 2G a 3G sú pozastavené"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Dátové prenosy 4G sú pozastavené"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Využité: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Limit: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Upozornenie pri <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Pracovný režim"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Vaše nedávne obrazovky sa zobrazia tu."</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informácie o aplikácii"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"pripnutie k obrazovke"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 18fa504c4cd1..9578dee3b2ef 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zvonjenje izklopljeno."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Način za delo"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Opusti aplikacijo <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobilna dostopna točka je izklopljena."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobilna dostopna točka je vklopljena."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Predvajanje zaslona je ustavljeno."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Način za delo izklopljen."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Način za delo vklopljen."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Način za delo je izklopljen."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Način za delo je vklopljen."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Svetlost zaslona"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Prenos podatkov v omrežju 2G/3G je zaustavljen"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Prenos podatkov v omrežju 4G je zaustavljen"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Porabljeno: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Omejitev: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Opozorilo – <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Način za delo"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Vaši nedavni zasloni so prikazani tu"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Podatki o aplikaciji"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"pripenjanje zaslona"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-sq-rAL/strings.xml b/packages/SystemUI/res/values-sq-rAL/strings.xml index ab7e5b02f750..8b19bd8f96d3 100644 --- a/packages/SystemUI/res/values-sq-rAL/strings.xml +++ b/packages/SystemUI/res/values-sq-rAL/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Zilja është heshtur."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Modaliteti i punës"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Largo <xliff:g id="APP">%s</xliff:g>."</string> <string name="accessibility_recents_item_dismissed" msgid="6803574935084867070">"<xliff:g id="APP">%s</xliff:g> është hequr."</string> <string name="accessibility_recents_all_items_dismissed" msgid="4464697366179168836">"Të gjitha aplikacionet e fundit u larguan."</string> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Qasja në zona publike interneti është e çaktivizuar."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Zona e qasjes publike për internet është e aktivizuar."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Transmetimi i ekranit ndaloi."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Modaliteti i punës është i çaktivizuar."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Modaliteti i punës është i aktivizuar."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Modaliteti i punës është i çaktivizuar."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Modaliteti i punës është i aktivizuar."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ndriçimi i ekranit"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Të dhënat 2G-3G janë ndërprerë"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Të dhënat 4G janë ndërprerë"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Të përdorura: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Kufiri: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Paralajmërim për kufirin prej <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Modaliteti i punës"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Ekranet e tua të fundit shfaqen këtu"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Informacioni i aplikacionit"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"gozhdimi i ekranit"</string> @@ -415,8 +409,7 @@ <string name="volumeui_prompt_deny" msgid="5720663643411696731">"Refuzo"</string> <string name="volumeui_notification_title" msgid="4906770126345910955">"<xliff:g id="APP_NAME">%1$s</xliff:g> është dialogu i volumit"</string> <string name="volumeui_notification_text" msgid="1826889705095768656">"Prek për të restauruar origjinalin."</string> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</string> <string name="managed_profile_foreground_toast" msgid="5421487114739245972">"Po përdor profilin tënd të punës"</string> <string name="system_ui_tuner" msgid="708224127392452018">"Sintonizuesi i Sistemit të Ndërfaqes së Përdoruesit"</string> <string name="show_battery_percentage" msgid="5444136600512968798">"Shfaq përqindjen e baterisë së integruar"</string> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 196d1f14a6ee..f22fa4efce22 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -162,8 +162,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Нечујно звоно."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Режим рада"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Одбаците <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -215,14 +214,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобилни хотспот је искључен."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобилни хотспот је укључен."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Пребацивање екрана је заустављено."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Режим рада је искључен."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Режим рада је укључен."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Режим рада је искључен."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Режим рада је укључен."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Осветљеност екрана"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G–3G подаци су паузирани"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G подаци су паузирани"</string> @@ -300,8 +295,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Искористили сте <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Режим рада"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Недавни екрани се појављују овде"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Информације о апликацији"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"качење екрана"</string> @@ -416,8 +410,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 31066bfd9aa2..269881a3e605 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Tyst ringsignal."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Arbetsläge"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ta bort <xliff:g id="APP">%s</xliff:g> från listan."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Den mobila trådlösa surfzonen har inaktiverats."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Den mobila trådlösa surfzonen har aktiverats."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Castningen av skärmen har stoppats."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Arbetsläget är inaktiverat."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Arbetsläget aktiverat."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Arbetsläget har inaktiverats."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Arbetsläget har aktiverats."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Skärmens ljusstyrka"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G- och 3G-data har pausats"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G-data har pausats"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> används"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Gräns: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Varning <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Arbetsläge"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Dina senaste skärmar visas här"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Appinformation"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"fästa skärmen"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index eeeef1f68d5b..269624280e46 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Mlio wa simu uko kimya."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Hali ya kazi"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Ondoa <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mtandao-hewa unaoweza kuhamishika umezimwa."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mtandao-hewa unaoweza kuhamishika umewashwa."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Utumaji wa skrini umesitishwa."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Hali ya kazi imezimwa."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Hali ya kazi imewashwa."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Hali ya kazi imezimwa."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Hali ya kazi imewashwa."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ung\'aavu wa skrini"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Data ya 2G-3G imesitishwa"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Data ya 4G imesitishwa"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> imetumika"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"kikomo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Onyo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Hali ya kazi"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Skrini zako za hivi majuzi huonekana hapa"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Maelezo ya Programu"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"kudumisha programu moja"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml index a6ad0df8b385..aa7266e71fc6 100644 --- a/packages/SystemUI/res/values-ta-rIN/strings.xml +++ b/packages/SystemUI/res/values-ta-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"ரிங்கர் நிசப்தம்."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"பணிப் பயன்முறை"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> ஐ நிராகரி."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"மொபைல் ஹாட்ஸ்பாட் முடக்கப்பட்டது."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"மொபைல் ஹாட்ஸ்பாட் இயக்கப்பட்டது."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"திரையை அனுப்புதல் நிறுத்தப்பட்டது."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"பணிப் பயன்முறை முடக்கப்பட்டுள்ளது."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"பணிப் பயன்முறை இயக்கப்பட்டுள்ளது."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"பணிப் பயன்முறை முடக்கப்பட்டது."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"பணிப் பயன்முறை இயக்கப்பட்டது."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"திரை பிரகாசம்"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G டேட்டா இடைநிறுத்தப்பட்டது"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G டேட்டா இடைநிறுத்தப்பட்டது"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"பயன்படுத்தியது - <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"பணிப் பயன்முறை"</string> <string name="recents_empty_message" msgid="8682129509540827999">"சமீபத்திய திரைகள் இங்கு தோன்றும்"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"பயன்பாட்டு தகவல்"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"திரையை பின் செய்தல்"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml index 468d00d50cc4..06b7ccf33b85 100644 --- a/packages/SystemUI/res/values-te-rIN/strings.xml +++ b/packages/SystemUI/res/values-te-rIN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"రింగర్ నిశ్శబ్దంలో ఉంది."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"పని మోడ్"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g>ని తీసివేయండి."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"మొబైల్ హాట్స్పాట్ ఆఫ్ చేయబడింది."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"మొబైల్ హాట్స్పాట్ ఆన్ చేయబడింది."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"స్క్రీన్ ప్రసారం ఆపివేయబడింది."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"పని మోడ్ ఆఫ్లో ఉంది."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"పని మోడ్ ఆన్లో ఉంది."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"పని మోడ్ ఆఫ్ చేయబడింది."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"పని మోడ్ ఆన్ చేయబడింది."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ప్రదర్శన ప్రకాశం"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G డేటా పాజ్ చేయబడింది"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G డేటా పాజ్ చేయబడింది"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> వినియోగించబడింది"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"పని మోడ్"</string> <string name="recents_empty_message" msgid="8682129509540827999">"మీ ఇటీవలి స్క్రీన్లు ఇక్కడ కనిపిస్తాయి"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"అనువర్తన సమాచారం"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"స్క్రీన్ పిన్నింగ్"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 130a8bf606c9..eb4eb2707cb1 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"เสียงเรียกเข้าแบบปิดเสียง"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"โหมดการทำงาน"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"ยกเลิก <xliff:g id="APP">%s</xliff:g>"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"ปิดฮอตสปอตเคลื่อนที่แล้ว"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"เปิดฮอตสปอตเคลื่อนที่แล้ว"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"หยุดการส่งหน้าจอแล้ว"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"โหมดการทำงานปิดอยู่"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"โหมดการทำงานเปิดอยู่"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"ปิดโหมดการทำงานแล้ว"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"เปิดโหมดการทำงานแล้ว"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ความสว่างของหน้าจอ"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"หยุดการใช้ข้อมูล 2G-3G ชั่วคราวแล้ว"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"หยุดการใช้ข้อมูล 4G ชั่วคราวแล้ว"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"ใช้ไปแล้ว <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"โหมดการทำงาน"</string> <string name="recents_empty_message" msgid="8682129509540827999">"หน้าจอล่าสุดของคุณแสดงที่นี่"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ข้อมูลแอปพลิเคชัน"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"การตรึงหน้าจอ"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 2546c9ec8a8f..a04d66b7d14c 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Naka-silent ang ringer."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Work mode"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"I-dismiss ang <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Na-off ang mobile hotspot."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Na-on ang mobile hotspot."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Itinigil ang pagka-cast sa screen."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Naka-off ang work mode."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Naka-on ang work mode."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Na-off ang work mode."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Na-on ang work mode."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Liwanag ng display"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Naka-pause ang 2G-3G data"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Naka-pause ang 4G data"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> ang nagamit"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ang limitasyon"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Babala sa <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Work mode"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Lumalabas dito ang iyong mga kamakailang screen"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Impormasyon ng Application"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"pagpi-pin sa screen"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index c9aa1f54b0a1..c54979817b0d 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Telefon zili sessiz."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Çalışma modu"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> uygulamasını kapat."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobil hotspot kapatıldı."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobil hotspot açıldı."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ekran yayını durduruldu."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Çalışma modu kapalı."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Çalışma modu açık."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Çalışma modu kapatıldı."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Çalışma modu açıldı."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ekran parlaklığı"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G veri kullanımı duraklatıldı"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G veri kullanımı duraklatıldı"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> kullanıldı"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Sınır: <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> uyarısı"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Çalışma modu"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Son ekranlarınız burada görünür"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Uygulama Bilgileri"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ekran sabitleme"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 58ae655dda2c..a58c13c94a5d 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -163,8 +163,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Дзвінок беззвучний."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Робочий режим"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Видалити додаток <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -216,14 +215,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Мобільну точку доступу вимкнено."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Мобільну точку доступу ввімкнено."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Трансляцію екрана зупинено."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Робочий режим вимкнено."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Робочий режим увімкнено."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Робочий режим вимкнено."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Робочий режим увімкнено."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Яскравість дисплея"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Передавання даних 2G–3G призупинено"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Передавання даних 4G призупинено"</string> @@ -301,8 +296,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Використовується: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Робочий режим"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Ваші останні екрани відображаються тут"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Інформація про додаток"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"закріпити екран"</string> @@ -417,8 +411,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml index 9d42aadd7f63..9e3a6b5c70f5 100644 --- a/packages/SystemUI/res/values-ur-rPK/strings.xml +++ b/packages/SystemUI/res/values-ur-rPK/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"رنگر خاموش۔"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"کام موڈ"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"<xliff:g id="APP">%s</xliff:g> کو مسترد کریں۔"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"موبائل ہاٹ اسپاٹ کو آف کر دیا گیا۔"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"موبائل ہاٹ اسپاٹ کو آن کر دیا گیا۔"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"اسکرین کو کاسٹ کرنا بند کر دیا۔"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"کام موڈ آف ہے۔"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"کام موڈ آن ہے۔"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"کام موڈ آف ہو گیا۔"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"کام موڈ آن ہو گیا۔"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"ڈسپلے کی چمک"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G ڈیٹا موقوف کر دیا گیا"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G ڈیٹا موقوف کر دیا گیا"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> استعمال کردہ"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"کام موڈ"</string> <string name="recents_empty_message" msgid="8682129509540827999">"آپ کی حالیہ اسکرینز یہاں ظاہر ہوتی ہیں"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"ایپلیکیشن کی معلومات"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"اسکرین کو پن کرنا"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"، "</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> diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml index f7959eac3349..d011169f19ac 100644 --- a/packages/SystemUI/res/values-uz-rUZ/strings.xml +++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Ovozsiz qo‘ng‘iroq."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Ish rejimi"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Olib tashlash: <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Mobil ulanish nuqtasi o‘chirildi."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Mobil ulanish nuqtasi yoqildi."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ekranni translatsiya qilish to‘xtadi."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Ish rejimi o‘chiq."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Ish rejimi yoniq."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Ish rejimi o‘chirib qo‘yildi."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Ish rejimi yoqildi."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Ekran yorqinligi"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G internet to‘xtatib qo‘yildi"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G internet to‘xtatib qo‘yildi"</string> @@ -299,8 +294,7 @@ <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_warning" msgid="2440098045692399009">"Ogohlantirish: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Ish rejimi"</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> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index ffcc73a177c6..81b5129c3352 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Chuông im lặng."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Chế độ làm việc"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Xóa bỏ <xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"Đã tắt điểm phát sóng di động."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"Đã bật điểm phát sóng di động."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Đã ngừng truyền màn hình."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Chế độ làm việc tắt."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Chế độ làm việc bật."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Chế độ làm việc đã tắt."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Chế độ làm việc đã bật."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Độ sáng màn hình"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"Đã tạm dừng dữ liệu 2G-3G"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"Đã tạm dừng dữ liệu 4G"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"Đã sử dụng <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"Giới hạn <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"Cảnh báo <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Chế độ làm việc"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Màn hình gần đây của bạn sẽ xuất hiện tại đây"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Thông tin ứng dụng"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"khóa màn hình"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index 2d8dd2a6b5ae..e06052e31d13 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"振铃器静音。"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"工作模式"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"移除<xliff:g id="APP">%s</xliff:g>。"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"移动热点已关闭。"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"移动热点已开启。"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"屏幕投射已停止。"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"工作模式关闭。"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"工作模式开启。"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"工作模式已关闭。"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"工作模式已开启。"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"屏幕亮度"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G 数据网络已暂停使用"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G 数据网络已暂停使用"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"已使用<xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"工作模式"</string> <string name="recents_empty_message" msgid="8682129509540827999">"您最近浏览过的屏幕会显示在此处"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"应用信息"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"固定屏幕"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"、 "</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> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 569d847b9680..37d3ca6d6e2f 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"鈴聲靜音。"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"工作模式"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"關閉「<xliff:g id="APP">%s</xliff:g>」。"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"流動熱點已關閉。"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"流動熱點已開啟。"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"已停止投放螢幕。"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"工作模式已關閉。"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"工作模式已開啟。"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"已關閉工作模式。"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"已開啟工作模式。"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"顯示光暗度"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"已暫停 2G-3G 數據"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"已暫停 4G 數據"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"已使用 <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"工作模式"</string> <string name="recents_empty_message" msgid="8682129509540827999">"您最近的螢幕顯示在這裡"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"應用程式資料"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"螢幕固定"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"、 "</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> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index f2ffe168e1ff..531b3cdba74d 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"鈴聲靜音。"</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"工作模式"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"關閉「<xliff:g id="APP">%s</xliff:g>」。"</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"可攜式無線基地台已關閉。"</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"可攜式無線基地台已開啟。"</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"已停止投放螢幕。"</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"工作模式已關閉。"</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"工作模式已開啟。"</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"工作模式已關閉。"</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"工作模式已開啟。"</string> <string name="accessibility_brightness" msgid="8003681285547803095">"螢幕亮度"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"已暫停 2G-3G 數據連線"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"已暫停 4G 數據連線"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"已使用 <xliff:g id="DATA_USED">%s</xliff:g>"</string> <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> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"工作模式"</string> <string name="recents_empty_message" msgid="8682129509540827999">"您最近的螢幕會顯示在這裡"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"應用程式資訊"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"螢幕固定"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">"、 "</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> diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index efa04e695e36..b8e6a0f921ff 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -161,8 +161,7 @@ <string name="accessibility_ringer_silent" msgid="9061243307939135383">"Isikhali sithulile."</string> <!-- no translation found for accessibility_casting (6887382141726543668) --> <skip /> - <!-- no translation found for accessibility_work_mode (2478631941714607225) --> - <skip /> + <string name="accessibility_work_mode" msgid="2478631941714607225">"Imodi yomsebenzi"</string> <string name="accessibility_recents_item_will_be_dismissed" msgid="395770242498031481">"Cashisa i-<xliff:g id="APP">%s</xliff:g>."</string> <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> @@ -214,14 +213,10 @@ <string name="accessibility_quick_settings_hotspot_changed_off" msgid="5004708003447561394">"I-hotspot ivaliwe."</string> <string name="accessibility_quick_settings_hotspot_changed_on" msgid="2890951609226476206">"I-hotspot ivuliwe."</string> <string name="accessibility_casting_turned_off" msgid="1430668982271976172">"Ukusakaza kwesikrini kumisiwe."</string> - <!-- no translation found for accessibility_quick_settings_work_mode_off (7045417396436552890) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_on (7650588553988014341) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_off (5605534876107300711) --> - <skip /> - <!-- no translation found for accessibility_quick_settings_work_mode_changed_on (249840330756998612) --> - <skip /> + <string name="accessibility_quick_settings_work_mode_off" msgid="7045417396436552890">"Imodi yomsebenzi ivaliwe."</string> + <string name="accessibility_quick_settings_work_mode_on" msgid="7650588553988014341">"Imodi yomsebenzi ivuliwe."</string> + <string name="accessibility_quick_settings_work_mode_changed_off" msgid="5605534876107300711">"Imodi yomsebenzi ivaliwe."</string> + <string name="accessibility_quick_settings_work_mode_changed_on" msgid="249840330756998612">"Imodi yomsebenzi ivuliwe."</string> <string name="accessibility_brightness" msgid="8003681285547803095">"Bonisa ukukhanya"</string> <string name="data_usage_disabled_dialog_3g_title" msgid="5281770593459841889">"2G-3G idatha imisiwe"</string> <string name="data_usage_disabled_dialog_4g_title" msgid="1601769736881078016">"4G idatha imisiwe"</string> @@ -299,8 +294,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="1476810587475761478">"<xliff:g id="DATA_USED">%s</xliff:g> isetshenzisiwe"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="56011158504994128">"<xliff:g id="DATA_LIMIT">%s</xliff:g> umkhawulo"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="2440098045692399009">"<xliff:g id="DATA_LIMIT">%s</xliff:g> isexwayiso"</string> - <!-- no translation found for quick_settings_work_mode_label (6244915274350490429) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6244915274350490429">"Imodi yomsebenzi"</string> <string name="recents_empty_message" msgid="8682129509540827999">"Izikrini zakho zakamuva zivela lapha"</string> <string name="recents_app_info_button_label" msgid="2890317189376000030">"Ulwazi lohlelo lokusebenza"</string> <string name="recents_lock_to_app_button_label" msgid="6942899049072506044">"ukuphina isikrini"</string> @@ -415,8 +409,7 @@ <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> - <!-- no translation found for group_summary_concadenation (6846402378100148789) --> - <skip /> + <string name="group_summary_concadenation" msgid="6846402378100148789">", "</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> diff --git a/packages/SystemUI/res/values/colors.xml b/packages/SystemUI/res/values/colors.xml index 8875515378d5..94350d9adf99 100644 --- a/packages/SystemUI/res/values/colors.xml +++ b/packages/SystemUI/res/values/colors.xml @@ -102,9 +102,9 @@ <color name="current_user_border_color">@color/system_accent_color</color> <!-- The "inside" of a notification, reached via longpress --> - <color name="notification_guts_bg_color">@color/system_secondary_color</color> - <color name="notification_guts_title_color">#FFFFFFFF</color> - <color name="notification_guts_text_color">#b2FFFFFF</color> + <color name="notification_guts_bg_color">@*android:color/material_deep_teal_500</color> + <color name="notification_guts_title_color">#B2DFDB</color> + <color name="notification_guts_text_color">#FFFFFFFF</color> <color name="notification_guts_btn_color">#FFFFFFFF</color> <color name="assist_orb_color">#ffffff</color> diff --git a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java index 620732442659..870e0af5820a 100644 --- a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java +++ b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java @@ -246,7 +246,10 @@ public class SwipeHelper implements Gefingerpoken { mWatchLongPress = new Runnable() { @Override public void run() { - if (mCurrView != null && !mLongPressSent) { + float pos = getPos(ev); + float delta = pos - mInitialTouchPos; + if (mCurrView != null && !mLongPressSent + && Math.abs(delta) < mPagingTouchSlop) { mLongPressSent = true; mCurrView.sendAccessibilityEvent( AccessibilityEvent.TYPE_VIEW_LONG_CLICKED); diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index ae8542ad9d88..16fd9ebba7fd 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -154,6 +154,20 @@ public class QSPanel extends FrameLayout implements Tunable { } } + public void openDetails(String subPanel) { + QSTile<?> tile = getTile(subPanel); + showDetailAdapter(true, tile.getDetailAdapter(), new int[] {getWidth() / 2, 0}); + } + + private QSTile<?> getTile(String subPanel) { + for (int i = 0; i < mRecords.size(); i++) { + if (subPanel.equals(mRecords.get(i).tile.getTileSpec())) { + return mRecords.get(i).tile; + } + } + return mHost.createTile(subPanel); + } + protected void createCustomizePanel() { mCustomizePanel = (QSCustomizer) LayoutInflater.from(mContext) .inflate(R.layout.qs_customize_panel, null); diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java index 60bedaecdf2d..512effab047a 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/Task.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/Task.java @@ -93,7 +93,8 @@ public class Task { public TaskKey key; public TaskGrouping group; - public int taskAffiliation; + // The taskAffiliationId is the task id of the parent task or itself if it is not affiliated with any task + public int taskAffiliationId; public int taskAffiliationColor; public boolean isLaunchTarget; public Drawable applicationIcon; @@ -123,7 +124,7 @@ public class Task { boolean isInAffiliationGroup = (taskAffiliation != key.id); boolean hasAffiliationGroupColor = isInAffiliationGroup && (taskAffiliationColor != 0); this.key = key; - this.taskAffiliation = taskAffiliation; + this.taskAffiliationId = taskAffiliation; this.taskAffiliationColor = taskAffiliationColor; this.activityLabel = activityTitle; this.contentDescription = contentDescription; @@ -142,7 +143,7 @@ public class Task { /** Copies the other task. */ public void copyFrom(Task o) { this.key = o.key; - this.taskAffiliation = o.taskAffiliation; + this.taskAffiliationId = o.taskAffiliationId; this.taskAffiliationColor = o.taskAffiliationColor; this.activityLabel = o.activityLabel; this.contentDescription = o.contentDescription; @@ -206,6 +207,13 @@ public class Task { } } + /** + * Returns whether this task is affiliated with another task. + */ + public boolean isAffiliatedTask() { + return key.id != taskAffiliationId; + } + @Override public boolean equals(Object o) { // Check that the id matches diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java index 7a9839365498..13ab3920065e 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java +++ b/packages/SystemUI/src/com/android/systemui/recents/model/TaskStack.java @@ -23,6 +23,7 @@ import android.graphics.Color; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.drawable.ColorDrawable; +import android.util.SparseArray; import com.android.systemui.R; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsDebugFlags; @@ -50,7 +51,7 @@ import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; */ interface TaskFilter { /** Returns whether the filter accepts the specified task */ - public boolean acceptTask(Task t, int index); + public boolean acceptTask(SparseArray<Task> taskIdMap, Task t, int index); } /** @@ -157,10 +158,17 @@ class FilteredTaskList { private void updateFilteredTasks() { mFilteredTasks.clear(); if (mFilter != null) { + // Create a sparse array from task id to Task + SparseArray<Task> taskIdMap = new SparseArray<>(); int taskCount = mTasks.size(); for (int i = 0; i < taskCount; i++) { Task t = mTasks.get(i); - if (mFilter.acceptTask(t, i)) { + taskIdMap.put(t.key.id, t); + } + + for (int i = 0; i < taskCount; i++) { + Task t = mTasks.get(i); + if (mFilter.acceptTask(taskIdMap, t, i)) { mFilteredTasks.add(t); } } @@ -318,13 +326,29 @@ public class TaskStack { // Ensure that we only show non-docked tasks mStackTaskList.setFilter(new TaskFilter() { @Override - public boolean acceptTask(Task t, int index) { + public boolean acceptTask(SparseArray<Task> taskIdMap, Task t, int index) { + if (t.isAffiliatedTask()) { + // If this task is affiliated with another parent in the stack, then the historical state of this + // task depends on the state of the parent task + Task parentTask = taskIdMap.get(t.taskAffiliationId); + if (parentTask != null) { + t = parentTask; + } + } return !t.isHistorical && !SystemServicesProxy.isDockedStack(t.key.stackId); } }); mHistoryTaskList.setFilter(new TaskFilter() { @Override - public boolean acceptTask(Task t, int index) { + public boolean acceptTask(SparseArray<Task> taskIdMap, Task t, int index) { + if (t.isAffiliatedTask()) { + // If this task is affiliated with another parent in the stack, then the historical state of this + // task depends on the state of the parent task + Task parentTask = taskIdMap.get(t.taskAffiliationId); + if (parentTask != null) { + t = parentTask; + } + } return t.isHistorical && !SystemServicesProxy.isDockedStack(t.key.stackId); } }); @@ -585,8 +609,8 @@ public class TaskStack { taskGrouping2.latestActiveTimeInGroup); } }); - // Sort group tasks by increasing firstActiveTime of the task, and also build a new list of - // tasks + // Sort group tasks by increasing firstActiveTime of the task, and also build a new list + // of tasks int taskIndex = 0; int groupCount = mGroups.size(); for (int i = 0; i < groupCount; i++) { @@ -607,13 +631,13 @@ public class TaskStack { mStackTaskList.set(tasks); } else { // Create the task groups - HashMap<Task.TaskKey, Task> tasksMap = new HashMap<Task.TaskKey, Task>(); + HashMap<Task.TaskKey, Task> tasksMap = new HashMap<>(); ArrayList<Task> tasks = mStackTaskList.getTasks(); int taskCount = tasks.size(); for (int i = 0; i < taskCount; i++) { Task t = tasks.get(i); TaskGrouping group; - int affiliation = t.taskAffiliation > 0 ? t.taskAffiliation : + int affiliation = t.taskAffiliationId > 0 ? t.taskAffiliationId : IndividualTaskIdOffset + t.key.id; if (mAffinitiesGroups.containsKey(affiliation)) { group = getGroupWithAffiliation(affiliation); diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java index 7ae686e42602..36acc28d1d73 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java @@ -16,8 +16,6 @@ package com.android.systemui.recents.views; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.content.res.Resources; import android.graphics.Canvas; @@ -29,12 +27,13 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; -import android.view.ViewConfiguration; import android.view.ViewPropertyAnimator; import android.view.WindowInsets; import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.widget.FrameLayout; + +import com.android.internal.logging.MetricsLogger; import com.android.systemui.R; import com.android.systemui.recents.Recents; import com.android.systemui.recents.RecentsActivity; @@ -142,7 +141,8 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV public void setTaskStack(TaskStack stack) { RecentsConfiguration config = Recents.getConfiguration(); mStack = stack; - if (config.getLaunchState().launchedReuseTaskStackViews) { + // Disable reusing task stack views until the visibility bug is fixed. b/25998134 + if (false && config.getLaunchState().launchedReuseTaskStackViews) { if (mTaskStackView != null) { // If onRecentsHidden is not triggered, we need to the stack view again here mTaskStackView.reset(); @@ -512,6 +512,9 @@ public class RecentsView extends FrameLayout implements TaskStackView.TaskStackV SystemServicesProxy ssp = Recents.getSystemServices(); ssp.startTaskInDockedMode(event.task.key.id, dockState.createMode); launchTask(event.task, null, INVALID_STACK_ID); + + MetricsLogger.action(mContext, + MetricsLogger.ACTION_WINDOW_DOCK_DRAG_DROP); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index cc6a29ae0f60..39a33a56cf84 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -16,11 +16,14 @@ package com.android.systemui.statusbar; +import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_MAX; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.TimeInterpolator; import android.app.ActivityManager; import android.app.ActivityManagerNative; +import android.app.INotificationManager; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; @@ -35,7 +38,6 @@ import android.content.IntentFilter; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; -import android.content.pm.ResolveInfo; import android.content.pm.UserInfo; import android.content.res.Configuration; import android.content.res.Resources; @@ -82,6 +84,7 @@ import android.widget.DateTimeView; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.RemoteViews; +import android.widget.SeekBar; import android.widget.TextView; import android.widget.Toast; @@ -902,14 +905,6 @@ public abstract class BaseStatusBar extends SystemUI implements .findViewById(com.android.internal.R.id.media_actions) != null; } - // The gear button in the guts that links to the app's own notification settings - private void startAppOwnNotificationSettingsActivity(Intent intent, - final int notificationId, final String notificationTag, final int appUid) { - intent.putExtra("notification_id", notificationId); - intent.putExtra("notification_tag", notificationTag); - startNotificationGutsIntent(intent, appUid); - } - // The (i) button in the guts that links to the system notification settings for that app private void startAppNotificationSettingsActivity(String packageName, final int appUid) { final Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS); @@ -968,12 +963,13 @@ public abstract class BaseStatusBar extends SystemUI implements // app is gone, just show package name and generic icon pkgicon = pmUser.getDefaultActivityIcon(); } + ((ImageView) row.findViewById(android.R.id.icon)).setImageDrawable(pkgicon); - ((DateTimeView) row.findViewById(R.id.timestamp)).setTime(sbn.getPostTime()); ((TextView) row.findViewById(R.id.pkgname)).setText(appname); + + bindTopicImportance(sbn, row); + final View settingsButton = guts.findViewById(R.id.notification_inspect_item); - final View appSettingsButton - = guts.findViewById(R.id.notification_inspect_app_provided_settings); if (appUid >= 0) { final int appUidF = appUid; settingsButton.setOnClickListener(new View.OnClickListener() { @@ -982,38 +978,72 @@ public abstract class BaseStatusBar extends SystemUI implements startAppNotificationSettingsActivity(pkg, appUidF); } }); - - final Intent appSettingsQueryIntent - = new Intent(Intent.ACTION_MAIN) - .addCategory(Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES) - .setPackage(pkg); - List<ResolveInfo> infos = pmUser.queryIntentActivities(appSettingsQueryIntent, 0); - if (infos.size() > 0) { - appSettingsButton.setVisibility(View.VISIBLE); - appSettingsButton.setContentDescription( - mContext.getResources().getString( - R.string.status_bar_notification_app_settings_title, - appname - )); - final Intent appSettingsLaunchIntent = new Intent(appSettingsQueryIntent) - .setClassName(pkg, infos.get(0).activityInfo.name); - appSettingsButton.setOnClickListener(new View.OnClickListener() { - public void onClick(View v) { - MetricsLogger.action(mContext, MetricsLogger.ACTION_APP_NOTE_SETTINGS); - startAppOwnNotificationSettingsActivity(appSettingsLaunchIntent, - sbn.getId(), - sbn.getTag(), - appUidF); - } - }); - } else { - appSettingsButton.setVisibility(View.GONE); - } } else { settingsButton.setVisibility(View.GONE); - appSettingsButton.setVisibility(View.GONE); } + } + + private void bindTopicImportance(final StatusBarNotification sbn, + ExpandableNotificationRow row) { + final INotificationManager sINM = INotificationManager.Stub.asInterface( + ServiceManager.getService(Context.NOTIFICATION_SERVICE)); + final Notification.Topic topic = sbn.getNotification().getTopic() == null + ? new Notification.Topic(Notification.TOPIC_DEFAULT, mContext.getString( + com.android.internal.R.string.default_notification_topic_label)) + : sbn.getNotification().getTopic(); + + ((TextView) row.findViewById(R.id.topic_details)).setText(topic.getLabel()); + final TextView topicSummary = ((TextView) row.findViewById(R.id.summary)); + int importance = mNotificationData.getImportance(sbn.getKey()); + SeekBar seekBar = (SeekBar) row.findViewById(R.id.seekbar); + seekBar.setMax(4); + seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + topicSummary.setText(getProgressSummary(progress)); + if (fromUser) { + try { + sINM.setTopicImportance(sbn.getPackageName(), sbn.getUid(), topic, + progress); + } catch (RemoteException e) { + // :( + } + } + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + // no-op + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + // no-op + } + private String getProgressSummary(int progress) { + switch (progress) { + case NotificationListenerService.Ranking.IMPORTANCE_NONE: + return mContext.getString( + com.android.internal.R.string.notification_importance_blocked); + case NotificationListenerService.Ranking.IMPORTANCE_LOW: + return mContext.getString( + com.android.internal.R.string.notification_importance_low); + case NotificationListenerService.Ranking.IMPORTANCE_DEFAULT: + return mContext.getString( + com.android.internal.R.string.notification_importance_default); + case NotificationListenerService.Ranking.IMPORTANCE_HIGH: + return mContext.getString( + com.android.internal.R.string.notification_importance_high); + case NotificationListenerService.Ranking.IMPORTANCE_MAX: + return mContext.getString( + com.android.internal.R.string.notification_importance_max); + default: + return ""; + } + } + }); + seekBar.setProgress(importance); } protected SwipeHelper.LongPressListener getNotificationLongClicker() { @@ -1048,6 +1078,7 @@ public abstract class BaseStatusBar extends SystemUI implements MetricsLogger.action(mContext, MetricsLogger.ACTION_NOTE_CONTROLS); guts.setVisibility(View.VISIBLE); + final double horz = Math.max(guts.getWidth() - x, x); final double vert = Math.max(guts.getActualHeight() - y, y); final float r = (float) Math.hypot(horz, vert); @@ -1292,9 +1323,9 @@ public abstract class BaseStatusBar extends SystemUI implements } /** - * Called when the panel was layouted expanded for the first time after being collapsed. + * Called when the size of the notification panel changes */ - public void onPanelExpandedAndLayouted() { + public void onPanelHeightChanged() { if (mState == StatusBarState.KEYGUARD) { // Since the number of notifications is determined based on the height of the view, we // need to update them. @@ -2102,11 +2133,11 @@ public abstract class BaseStatusBar extends SystemUI implements mNotificationData.updateRanking(ranking); boolean applyInPlace = entry.cacheContentViews(mContext, notification.getNotification()); - boolean shouldInterrupt = shouldInterrupt(entry, notification); + boolean shouldPeek = shouldPeek(entry, notification); boolean alertAgain = alertAgain(entry, n); if (DEBUG) { Log.d(TAG, "applyInPlace=" + applyInPlace - + " shouldInterrupt=" + shouldInterrupt + + " shouldPeek=" + shouldPeek + " alertAgain=" + alertAgain); } @@ -2153,7 +2184,7 @@ public abstract class BaseStatusBar extends SystemUI implements entry.icon.set(ic); inflateViews(entry, mStackScroller); } - updateHeadsUp(key, entry, shouldInterrupt, alertAgain); + updateHeadsUp(key, entry, shouldPeek, alertAgain); updateNotifications(); // Update the veto button accordingly (and as a result, whether this row is @@ -2169,7 +2200,7 @@ public abstract class BaseStatusBar extends SystemUI implements setAreThereNotifications(); } - protected abstract void updateHeadsUp(String key, Entry entry, boolean shouldInterrupt, + protected abstract void updateHeadsUp(String key, Entry entry, boolean shouldPeek, boolean alertAgain); private void updateNotificationViews(Entry entry, StatusBarNotification sbn) { @@ -2212,49 +2243,54 @@ public abstract class BaseStatusBar extends SystemUI implements || (newNotification.flags & Notification.FLAG_ONLY_ALERT_ONCE) == 0; } - protected boolean shouldInterrupt(Entry entry) { - return shouldInterrupt(entry, entry.notification); + protected boolean shouldPeek(Entry entry) { + return shouldPeek(entry, entry.notification); } - protected boolean shouldInterrupt(Entry entry, StatusBarNotification sbn) { + protected boolean shouldPeek(Entry entry, StatusBarNotification sbn) { if (mNotificationData.shouldFilterOut(sbn)) { - if (DEBUG) { - Log.d(TAG, "Skipping HUN check for " + sbn.getKey() + " since it's filtered out."); - } + if (DEBUG) Log.d(TAG, "No peeking: filtered notification: " + sbn.getKey()); return false; } if (isSnoozedPackage(sbn)) { + if (DEBUG) Log.d(TAG, "No peeking: snoozed package: " + sbn.getKey()); + return false; + } + + if (entry.hasJustLaunchedFullScreenIntent()) { + if (DEBUG) Log.d(TAG, "No peeking: recent fullscreen: " + sbn.getKey()); + return false; + } + + if (sbn.getNotification().fullScreenIntent != null + && mAccessibilityManager.isTouchExplorationEnabled()) { + if (DEBUG) Log.d(TAG, "No peeking: accessible fullscreen: " + sbn.getKey()); + return false; + } + + + if (mNotificationData.shouldSuppressPeek(sbn.getKey())) { + if (DEBUG) Log.d(TAG, "No peeking: suppressed by DND: " + sbn.getKey()); + return false; + } + + if (mNotificationData.getImportance(sbn.getKey()) < IMPORTANCE_MAX) { + if (DEBUG) Log.d(TAG, "No peeking: unimportant notification: " + sbn.getKey()); return false; } - Notification notification = sbn.getNotification(); - // some predicates to make the boolean logic legible - boolean isNoisy = (notification.defaults & Notification.DEFAULT_SOUND) != 0 - || (notification.defaults & Notification.DEFAULT_VIBRATE) != 0 - || notification.sound != null - || notification.vibrate != null; - boolean isHighPriority = sbn.getScore() >= INTERRUPTION_THRESHOLD; - boolean isFullscreen = notification.fullScreenIntent != null; - boolean hasTicker = mHeadsUpTicker && !TextUtils.isEmpty(notification.tickerText); - boolean accessibilityForcesLaunch = isFullscreen - && mAccessibilityManager.isTouchExplorationEnabled(); - boolean justLaunchedFullScreenIntent = entry.hasJustLaunchedFullScreenIntent(); - boolean interrupt = (isFullscreen || (isHighPriority && (isNoisy || hasTicker))) - && !accessibilityForcesLaunch - && !justLaunchedFullScreenIntent - && mPowerManager.isScreenOn() + boolean inUse = mPowerManager.isScreenOn() && (!mStatusBarKeyguardViewManager.isShowing() || mStatusBarKeyguardViewManager.isOccluded()) - && !mStatusBarKeyguardViewManager.isInputRestricted() - && !mNotificationData.shouldSuppressPeek(sbn.getKey()); + && !mStatusBarKeyguardViewManager.isInputRestricted(); try { - interrupt = interrupt && !mDreamManager.isDreaming(); + inUse = inUse && !mDreamManager.isDreaming(); } catch (RemoteException e) { Log.d(TAG, "failed to query dream manager", e); } - if (DEBUG) Log.d(TAG, "interrupt: " + interrupt); - return interrupt; + if (DEBUG) Log.d(TAG, "peek if device in use: " + inUse); + return inUse; } protected abstract boolean isSnoozedPackage(StatusBarNotification sbn); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java index 10d4a965852f..deedae0f6a80 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java @@ -91,7 +91,7 @@ public class CommandQueue extends IStatusBar.Stub { public void disable(int state1, int state2, boolean animate); public void animateExpandNotificationsPanel(); public void animateCollapsePanels(int flags); - public void animateExpandSettingsPanel(); + public void animateExpandSettingsPanel(String obj); public void setSystemUiVisibility(int vis, int mask); public void topAppWindowChanged(boolean visible); public void setImeWindowStatus(IBinder token, int vis, int backDisposition, @@ -157,10 +157,10 @@ public class CommandQueue extends IStatusBar.Stub { } } - public void animateExpandSettingsPanel() { + public void animateExpandSettingsPanel(String subPanel) { synchronized (mList) { mHandler.removeMessages(MSG_EXPAND_SETTINGS); - mHandler.sendEmptyMessage(MSG_EXPAND_SETTINGS); + mHandler.obtainMessage(MSG_EXPAND_SETTINGS, subPanel).sendToTarget(); } } @@ -353,7 +353,7 @@ public class CommandQueue extends IStatusBar.Stub { mCallbacks.animateCollapsePanels(0); break; case MSG_EXPAND_SETTINGS: - mCallbacks.animateExpandSettingsPanel(); + mCallbacks.animateExpandSettingsPanel((String) msg.obj); break; case MSG_SET_SYSTEMUI_VISIBILITY: mCallbacks.setSystemUiVisibility(msg.arg1, msg.arg2); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index bd143ac31fca..ed4c7742a01d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -991,7 +991,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { mNotificationHeader.setOnClickListener(mExpandClickListener); mNotificationHeaderWrapper = NotificationViewWrapper.wrap(getContext(), mNotificationHeader); - addView(mNotificationHeader); + addView(mNotificationHeader, indexOfChild(mChildrenContainer) + 1); } else { header.reapply(getContext(), mNotificationHeader); mNotificationHeaderWrapper.notifyContentUpdated(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java index 51602e7ab831..59cbd4089a3b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java @@ -17,6 +17,7 @@ package com.android.systemui.statusbar; import android.content.Context; +import android.graphics.Paint; import android.graphics.Rect; import android.util.AttributeSet; import android.view.MotionEvent; @@ -44,6 +45,7 @@ public abstract class ExpandableView extends FrameLayout { private static Rect mClipRect = new Rect(); private boolean mWillBeGone; private int mMinClipTopAmount = 0; + private boolean mMeasuredTooHigh; public ExpandableView(Context context, AttributeSet attrs) { super(context, attrs); @@ -54,12 +56,13 @@ public abstract class ExpandableView extends FrameLayout { @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { boolean limitViewHeight = shouldLimitViewHeight(); + final int givenSize = MeasureSpec.getSize(heightMeasureSpec); int ownMaxHeight = limitViewHeight ? mMaxViewHeight : Integer.MAX_VALUE; int heightMode = MeasureSpec.getMode(heightMeasureSpec); boolean hasFixedHeight = heightMode == MeasureSpec.EXACTLY; if (hasFixedHeight) { // We have a height set in our layout, so we want to be at most as big as given - ownMaxHeight = Math.min(MeasureSpec.getSize(heightMeasureSpec), ownMaxHeight); + ownMaxHeight = Math.min(givenSize, ownMaxHeight); } int newHeightSpec = MeasureSpec.makeMeasureSpec(ownMaxHeight, MeasureSpec.AT_MOST); int maxChildHeight = 0; @@ -97,6 +100,7 @@ public abstract class ExpandableView extends FrameLayout { mMatchParentViews.clear(); int width = MeasureSpec.getSize(widthMeasureSpec); setMeasuredDimension(width, ownHeight); + mMeasuredTooHigh = heightMode != MeasureSpec.UNSPECIFIED && ownHeight > givenSize; } protected boolean shouldLimitViewHeight() { @@ -384,6 +388,18 @@ public abstract class ExpandableView extends FrameLayout { mMinClipTopAmount = minClipTopAmount; } + @Override + public void setLayerType(int layerType, Paint paint) { + if (hasOverlappingRendering()) { + super.setLayerType(layerType, paint); + } + } + + @Override + public boolean hasOverlappingRendering() { + return super.hasOverlappingRendering() && !mMeasuredTooHigh; + } + /** * A listener notifying when {@link #getActualHeight} changes. */ diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java index 89edae316ae0..c458d2160c1d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationData.java @@ -188,22 +188,33 @@ public class NotificationData { public int compare(Entry a, Entry b) { final StatusBarNotification na = a.notification; final StatusBarNotification nb = b.notification; - final int aPriority = na.getNotification().priority; - final int bPriority = nb.getNotification().priority; + int aImportance = Ranking.IMPORTANCE_DEFAULT; + int bImportance = Ranking.IMPORTANCE_DEFAULT; + int aRank = 0; + int bRank = 0; + + if (mRankingMap != null) { + // RankingMap as received from NoMan + mRankingMap.getRanking(a.key, mRankingA); + mRankingMap.getRanking(b.key, mRankingB); + aImportance = mRankingA.getImportance(); + bImportance = mRankingB.getImportance(); + aRank = mRankingA.getRank(); + bRank = mRankingB.getRank(); + } String mediaNotification = mEnvironment.getCurrentMediaNotificationKey(); // PRIORITY_MIN media streams are allowed to drift to the bottom final boolean aMedia = a.key.equals(mediaNotification) - && aPriority > Notification.PRIORITY_MIN; + && aImportance > Ranking.IMPORTANCE_LOW; final boolean bMedia = b.key.equals(mediaNotification) - && bPriority > Notification.PRIORITY_MIN; + && bImportance > Ranking.IMPORTANCE_LOW; - boolean aSystemMax = aPriority >= Notification.PRIORITY_MAX && + boolean aSystemMax = aImportance >= Ranking.IMPORTANCE_MAX && isSystemNotification(na); - boolean bSystemMax = bPriority >= Notification.PRIORITY_MAX && + boolean bSystemMax = bImportance >= Ranking.IMPORTANCE_MAX && isSystemNotification(nb); - int d = nb.getScore() - na.getScore(); boolean isHeadsUp = a.row.isHeadsUp(); if (isHeadsUp != b.row.isHeadsUp()) { @@ -217,13 +228,8 @@ public class NotificationData { } else if (aSystemMax != bSystemMax) { // Upsort PRIORITY_MAX system notifications return aSystemMax ? -1 : 1; - } else if (mRankingMap != null) { - // RankingMap as received from NoMan - mRankingMap.getRanking(a.key, mRankingA); - mRankingMap.getRanking(b.key, mRankingB); - return mRankingA.getRank() - mRankingB.getRank(); - } if (d != 0) { - return d; + } else if (aRank != bRank) { + return aRank - bRank; } else { return (int) (nb.getNotification().when - na.getNotification().when); } @@ -283,7 +289,7 @@ public class NotificationData { mRankingMap.getRanking(key, mTmpRanking); return mTmpRanking.getVisibilityOverride(); } - return NotificationListenerService.Ranking.VISIBILITY_NO_OVERRIDE; + return Ranking.VISIBILITY_NO_OVERRIDE; } public boolean shouldSuppressPeek(String key) { @@ -295,6 +301,14 @@ public class NotificationData { return false; } + public int getImportance(String key) { + if (mRankingMap != null) { + mRankingMap.getRanking(key, mTmpRanking); + return mTmpRanking.getImportance(); + } + return Ranking.IMPORTANCE_UNSPECIFIED; + } + private void updateRankingAndSort(RankingMap ranking) { if (ranking != null) { mRankingMap = ranking; @@ -390,12 +404,13 @@ public class NotificationData { } private void dumpEntry(PrintWriter pw, String indent, int i, Entry e) { + mRankingMap.getRanking(e.key, mTmpRanking); pw.print(indent); pw.println(" [" + i + "] key=" + e.key + " icon=" + e.icon); StatusBarNotification n = e.notification; pw.print(indent); - pw.println(" pkg=" + n.getPackageName() + " id=" + n.getId() + " score=" + - n.getScore()); + pw.println(" pkg=" + n.getPackageName() + " id=" + n.getId() + " importance=" + + mTmpRanking.getImportance()); pw.print(indent); pw.println(" notification=" + n.getNotification()); pw.print(indent); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java index 46e0bf86fd36..0081496d2351 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationGuts.java @@ -21,12 +21,14 @@ import android.graphics.Canvas; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.FrameLayout; +import android.widget.LinearLayout; + import com.android.systemui.R; /** * The guts of a notification revealed when performing a long press. */ -public class NotificationGuts extends FrameLayout { +public class NotificationGuts extends LinearLayout { private Drawable mBackground; private int mClipTopAmount; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java index d35e57b10c51..79bd626efdb6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarGestureHelper.java @@ -25,6 +25,7 @@ import android.view.MotionEvent; import android.view.VelocityTracker; import android.view.ViewConfiguration; +import com.android.internal.logging.MetricsLogger; import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.stackdivider.Divider; @@ -58,7 +59,6 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL private final GestureDetector mTaskSwitcherDetector; private final int mScrollTouchSlop; - private final int mTouchSlop; private final int mMinFlingVelocity; private int mTouchDownX; private int mTouchDownY; @@ -73,7 +73,6 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL ViewConfiguration configuration = ViewConfiguration.get(context); Resources r = context.getResources(); mScrollTouchSlop = r.getDimensionPixelSize(R.dimen.navigation_bar_min_swipe_distance); - mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); mMinFlingVelocity = configuration.getScaledMinimumFlingVelocity(); mTaskSwitcherDetector = new GestureDetector(context, this); TunerService.get(context).addTunable(this, KEY_DOCK_WINDOW_GESTURE); @@ -167,8 +166,8 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL int yDiff = Math.abs(y - mTouchDownY); if (!mDockWindowTouchSlopExceeded) { boolean touchSlopExceeded = !mIsVertical - ? yDiff > mTouchSlop && yDiff > xDiff - : xDiff > mTouchSlop && xDiff > yDiff; + ? yDiff > mScrollTouchSlop && yDiff > xDiff + : xDiff > mScrollTouchSlop && xDiff > yDiff; if (touchSlopExceeded && mDivider.getView().getWindowManagerProxy().getDockSide() == DOCKED_INVALID) { mDragMode = calculateDragMode(); @@ -193,6 +192,8 @@ public class NavigationBarGestureHelper extends GestureDetector.SimpleOnGestureL mDivider.getView().startDragging(); } mDockWindowTouchSlopExceeded = true; + MetricsLogger.action(mContext, + MetricsLogger.ACTION_WINDOW_DOCK_SWIPE); return true; } } 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 6a2b32d51958..42fd8722931d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -352,8 +352,6 @@ public class NotificationPanelView extends PanelView implements } updateStackHeight(getExpandedHeight()); updateHeader(); - mNotificationStackScroller.updateIsSmallScreen( - mHeader.getCollapsedHeight() + mQsPeekHeight); // If we are running a size change animation, the animation takes care of the height of // the container. However, if we are not animating, we always need to make the QS container 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 21d803dd4e25..5e54ba7d9ce4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java @@ -82,6 +82,7 @@ public abstract class PanelView extends FrameLayout { private boolean mMotionAborted; private boolean mUpwardsWhenTresholdReached; private boolean mAnimatingOnDown; + private int mLayoutHeight = 0; private ValueAnimator mHeightAnimator; private ObjectAnimator mPeekAnimator; @@ -716,6 +717,10 @@ public abstract class PanelView extends FrameLayout { @Override protected void onLayout (boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); + if (mLayoutHeight != getHeight()) { + mLayoutHeight = getHeight(); + mStatusBar.onPanelHeightChanged(); + } requestPanelHeightUpdate(); mHasLayoutedSinceDown = true; if (mUpdateFlingOnLayout) { @@ -889,7 +894,6 @@ public abstract class PanelView extends FrameLayout { if (mStatusBar.getStatusBarWindow().getHeight() != mStatusBar.getStatusBarHeight()) { getViewTreeObserver().removeOnGlobalLayoutListener(this); - mStatusBar.onPanelExpandedAndLayouted(); if (animate) { mBar.startOpeningPanel(PanelView.this); notifyExpandingStarted(); 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 181e6aa5f12d..8f7c95e1b9af 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1136,6 +1136,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mRecents.dockTopTask(false /* draggingInRecents */, ActivityManager.DOCKED_STACK_CREATE_MODE_TOP_OR_LEFT, null /* initialBounds */); + MetricsLogger.action(mContext, + MetricsLogger.ACTION_WINDOW_DOCK_LONGPRESS); return true; } return false; @@ -1266,7 +1268,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (shadeEntry == null) { return; } - boolean isHeadsUped = mUseHeadsUp && shouldInterrupt(shadeEntry); + boolean isHeadsUped = mUseHeadsUp && shouldPeek(shadeEntry); if (isHeadsUped) { mHeadsUpManager.showNotification(shadeEntry); // Mark as seen immediately @@ -2111,17 +2113,17 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } - protected void updateHeadsUp(String key, Entry entry, boolean shouldInterrupt, + protected void updateHeadsUp(String key, Entry entry, boolean shouldPeek, boolean alertAgain) { final boolean wasHeadsUp = isHeadsUp(key); if (wasHeadsUp) { - if (!shouldInterrupt) { + if (!shouldPeek) { // We don't want this to be interrupting anymore, lets remove it mHeadsUpManager.removeNotification(key); } else { mHeadsUpManager.updateNotification(entry, alertAgain); } - } else if (shouldInterrupt && alertAgain) { + } else if (shouldPeek && alertAgain) { // This notification was updated to be a heads-up, show it! mHeadsUpManager.showNotification(entry); } @@ -2160,7 +2162,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, animateExpandNotificationsPanel(); break; case MSG_OPEN_SETTINGS_PANEL: - animateExpandSettingsPanel(); + animateExpandSettingsPanel((String) m.obj); break; case MSG_CLOSE_PANELS: animateCollapsePanels(); @@ -2303,7 +2305,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } @Override - public void animateExpandSettingsPanel() { + public void animateExpandSettingsPanel(String subPanel) { if (SPEW) Log.d(TAG, "animateExpand: mExpandedVisible=" + mExpandedVisible); if (!panelsEnabled()) { return; @@ -2312,6 +2314,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, // Settings are not available in setup if (!mUserSetup) return; + + if (subPanel != null) { + mQSPanel.openDetails(subPanel); + } mNotificationPanel.expandWithQs(); if (false) postStartTracing(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java index 2b71ce936ab5..beaa3ad60b37 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java @@ -90,7 +90,7 @@ public class NotificationChildrenContainer extends ViewGroup { @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { - int childCount = mChildren.size(); + int childCount = Math.min(mChildren.size(), NUMBER_OF_CHILDREN_WHEN_CHILDREN_EXPANDED); for (int i = 0; i < childCount; i++) { View child = mChildren.get(i); if (child.getVisibility() == View.GONE) { @@ -118,7 +118,7 @@ public class NotificationChildrenContainer extends ViewGroup { int newHeightSpec = MeasureSpec.makeMeasureSpec(ownMaxHeight, MeasureSpec.AT_MOST); int dividerHeightSpec = MeasureSpec.makeMeasureSpec(mDividerHeight, MeasureSpec.EXACTLY); int height = mNotificationHeaderHeight + mNotificatonTopPadding; - int childCount = mChildren.size(); + int childCount = Math.min(mChildren.size(), NUMBER_OF_CHILDREN_WHEN_CHILDREN_EXPANDED); for (int i = 0; i < childCount; i++) { View child = mChildren.get(i); child.measure(widthMeasureSpec, newHeightSpec); 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 ae6b72929d4b..2ce19a26643d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -2750,14 +2750,6 @@ public class NotificationStackScrollLayout extends ViewGroup return max + getStackTranslation(); } - /** - * @param qsMinHeight The minimum height of the quick settings including padding - * See {@link StackScrollAlgorithm#updateIsSmallScreen}. - */ - public void updateIsSmallScreen(int qsMinHeight) { - mStackScrollAlgorithm.updateIsSmallScreen(mMaxLayoutHeight - qsMinHeight); - } - public void setPhoneStatusBar(PhoneStatusBar phoneStatusBar) { this.mPhoneStatusBar = phoneStatusBar; } 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 953f28795126..59b446bf5003 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/StackScrollAlgorithm.java @@ -422,6 +422,7 @@ public class StackScrollAlgorithm { StackViewState childViewState = resultState.getViewStateForView(child); childViewState.location = StackViewState.LOCATION_UNKNOWN; int childHeight = getMaxAllowedChildHeight(child, ambientState); + int minHeight = child.getMinHeight(); float yPositionInScrollViewAfterElement = yPositionInScrollView + childHeight + mPaddingBetweenElements; @@ -450,17 +451,17 @@ public class StackScrollAlgorithm { // check if we are overlapping with the bottom stack if (childViewState.yTranslation + childHeight + mPaddingBetweenElements - >= bottomStackStart && !mIsExpansionChanging && i != 0 && mIsSmallScreen) { + >= bottomStackStart && !mIsExpansionChanging && i != 0) { // we just collapse this element slightly int newSize = (int) Math.max(bottomStackStart - mPaddingBetweenElements - - childViewState.yTranslation, child.getMinHeight()); + childViewState.yTranslation, minHeight); childViewState.height = newSize; updateStateForChildTransitioningInBottom(algorithmState, bottomStackStart, child, childViewState.yTranslation, childViewState, childHeight); } clampPositionToBottomStackStart(childViewState, childViewState.height, - ambientState); + minHeight, ambientState); } else if (nextYPosition >= bottomStackStart) { // Case 2: // We are in the bottom stack. @@ -468,7 +469,7 @@ public class StackScrollAlgorithm { // According to the regular scroll view we are fully translated out of the // bottom of the screen so we are fully in the bottom stack updateStateForChildFullyInBottomStack(algorithmState, - bottomStackStart, childViewState, childHeight, ambientState); + bottomStackStart, childViewState, minHeight, ambientState); } else { // According to the regular scroll view we are currently translating out of / // into the bottom of the screen @@ -560,12 +561,13 @@ public class StackScrollAlgorithm { * Clamp the yTranslation both up and down to valid positions. * * @param childViewState the view state of the child - * @param childHeight the height of this child + * @param minHeight the minimum height of this child */ - private void clampYTranslation(StackViewState childViewState, int childHeight, + private void clampYTranslation(StackViewState childViewState, int minHeight, AmbientState ambientState) { - clampPositionToBottomStackStart(childViewState, childHeight, ambientState); - clampPositionToTopStackEnd(childViewState, childHeight); + clampPositionToBottomStackStart(childViewState, childViewState.height, minHeight, + ambientState); + clampPositionToTopStackEnd(childViewState, childViewState.height); } /** @@ -574,12 +576,22 @@ public class StackScrollAlgorithm { * * @param childViewState the view state of the child * @param childHeight the height of this child + * @param minHeight the minumum Height of the View */ private void clampPositionToBottomStackStart(StackViewState childViewState, - int childHeight, AmbientState ambientState) { - childViewState.yTranslation = Math.min(childViewState.yTranslation, - ambientState.getInnerHeight() - mBottomStackPeekSize - mCollapseSecondCardPadding - - childHeight); + int childHeight, int minHeight, AmbientState ambientState) { + + int bottomStackStart = ambientState.getInnerHeight() + - mBottomStackPeekSize - mCollapseSecondCardPadding; + int childStart = bottomStackStart - childHeight; + if (childStart < childViewState.yTranslation) { + float newHeight = bottomStackStart - childViewState.yTranslation; + if (newHeight < minHeight) { + newHeight = minHeight; + childViewState.yTranslation = bottomStackStart - minHeight; + } + childViewState.height = (int) newHeight; + } } /** @@ -624,7 +636,7 @@ public class StackScrollAlgorithm { float offset = mBottomStackIndentationFunctor.getValue(algorithmState.partialInBottom); algorithmState.itemsInBottomStack += algorithmState.partialInBottom; int newHeight = childHeight; - if (childHeight > child.getMinHeight() && mIsSmallScreen) { + if (childHeight > child.getMinHeight()) { newHeight = (int) Math.max(Math.min(transitioningPositionStart + offset - mPaddingBetweenElements - currentYPosition, childHeight), child.getMinHeight()); @@ -640,7 +652,7 @@ public class StackScrollAlgorithm { private void updateStateForChildFullyInBottomStack(StackScrollAlgorithmState algorithmState, float transitioningPositionStart, StackViewState childViewState, - int childHeight, AmbientState ambientState) { + int minHeight, AmbientState ambientState) { float currentYPosition; algorithmState.itemsInBottomStack += 1.0f; if (algorithmState.itemsInBottomStack < MAX_ITEMS_IN_BOTTOM_STACK) { @@ -660,8 +672,9 @@ public class StackScrollAlgorithm { childViewState.location = StackViewState.LOCATION_BOTTOM_STACK_HIDDEN; currentYPosition = ambientState.getInnerHeight(); } - childViewState.yTranslation = currentYPosition - childHeight; - clampPositionToTopStackEnd(childViewState, childHeight); + childViewState.height = minHeight; + childViewState.yTranslation = currentYPosition - minHeight; + clampPositionToTopStackEnd(childViewState, minHeight); } private void updateStateForTopStackChild(StackScrollAlgorithmState algorithmState, @@ -835,19 +848,6 @@ public class StackScrollAlgorithm { } } - /** - * Update whether the device is very small, i.e. Notifications can be in both the top and the - * bottom stack at the same time - * - * @param panelHeight The normal height of the panel when it's open - */ - public void updateIsSmallScreen(int panelHeight) { - mIsSmallScreen = panelHeight < - mCollapsedSize /* top stack */ - + mBottomStackSlowDownLength + mBottomStackPeekSize /* bottom stack */ - + mMaxNotificationHeight; /* max notification height */ - } - public void onExpansionStarted(StackScrollState currentState) { mIsExpansionChanging = true; mExpandedOnStart = mIsExpanded; 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 39a2986f434f..44b41c55b4de 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/tv/TvStatusBar.java @@ -135,7 +135,7 @@ public class TvStatusBar extends BaseStatusBar { } @Override - public void animateExpandSettingsPanel() { + public void animateExpandSettingsPanel(String subPanel) { } @Override @@ -175,7 +175,7 @@ public class TvStatusBar extends BaseStatusBar { } @Override - protected void updateHeadsUp(String key, NotificationData.Entry entry, boolean shouldInterrupt, + protected void updateHeadsUp(String key, NotificationData.Entry entry, boolean shouldPeek, boolean alertAgain) { } diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java index 7fcedc6fa14f..353b40475e5b 100644 --- a/services/core/java/com/android/server/AppOpsService.java +++ b/services/core/java/com/android/server/AppOpsService.java @@ -1176,6 +1176,9 @@ public class AppOpsService extends IAppOpsService.Stub { if ("media".equals(packageName)) { pkgUid = Process.MEDIA_UID; isPrivileged = false; + } else if ("audioserver".equals(packageName)) { + pkgUid = Process.AUDIOSERVER_UID; + isPrivileged = false; } } } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 9a185bb0ba8a..be1fd58fce3b 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -5390,7 +5390,7 @@ public final class ActivityManagerService extends ActivityManagerNative return; } killPackageProcessesLocked(packageName, appId, userId, - ProcessList.SERVICE_ADJ, false, true, true, false, "kill background"); + ProcessList.SERVICE_ADJ, false, true, true, false, true, "kill background"); } } finally { Binder.restoreCallingIdentity(callingId); @@ -5691,7 +5691,7 @@ public final class ActivityManagerService extends ActivityManagerNative private final boolean killPackageProcessesLocked(String packageName, int appId, int userId, int minOomAdj, boolean callerWillRestart, boolean allowRestart, - boolean doit, boolean evenPersistent, String reason) { + boolean doit, boolean evenPersistent, boolean killPackageApp, String reason) { ArrayList<ProcessRecord> procs = new ArrayList<>(); // Remove all processes this package may have touched: all with the @@ -5740,7 +5740,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (userId != UserHandle.USER_ALL && app.userId != userId) { continue; } - if (!app.pkgList.containsKey(packageName) && !isDep) { + if ((!killPackageApp || !app.pkgList.containsKey(packageName)) && !isDep) { continue; } } @@ -5906,7 +5906,7 @@ public final class ActivityManagerService extends ActivityManagerNative } boolean didSomething = killPackageProcessesLocked(packageName, appId, userId, - ProcessList.INVALID_ADJ, callerWillRestart, true, doit, evenPersistent, + ProcessList.INVALID_ADJ, callerWillRestart, true, doit, evenPersistent, true, packageName == null ? ("stop user " + userId) : ("stop " + packageName)); if (mStackSupervisor.finishDisabledPackageActivitiesLocked( @@ -11772,13 +11772,11 @@ public final class ActivityManagerService extends ActivityManagerNative boolean killed = false; synchronized (mPidsSelfLocked) { - int[] types = new int[pids.length]; int worstType = 0; for (int i=0; i<pids.length; i++) { ProcessRecord proc = mPidsSelfLocked.get(pids[i]); if (proc != null) { int type = proc.setAdj; - types[i] = type; if (type > worstType) { worstType = type; } @@ -11821,7 +11819,7 @@ public final class ActivityManagerService extends ActivityManagerNative final long identity = Binder.clearCallingIdentity(); try { killPackageProcessesLocked(null, appId, userId, - ProcessList.PERSISTENT_PROC_ADJ, false, true, true, true, + ProcessList.PERSISTENT_PROC_ADJ, false, true, true, true, true, reason != null ? reason : "kill uid"); } finally { Binder.restoreCallingIdentity(identity); @@ -20779,4 +20777,35 @@ public final class ActivityManagerService extends ActivityManagerNative } } } + + /** + * Kill processes for the user with id userId and that depend on the package named packageName + */ + @Override + public void killPackageDependents(String packageName, int userId) { + enforceCallingPermission(android.Manifest.permission.KILL_UID, "killPackageDependents()"); + if (packageName == null) { + throw new NullPointerException("Cannot kill the dependents of a package without its name."); + } + + long callingId = Binder.clearCallingIdentity(); + IPackageManager pm = AppGlobals.getPackageManager(); + int pkgUid = -1; + try { + pkgUid = pm.getPackageUid(packageName, userId); + } catch (RemoteException e) { + } + if (pkgUid == -1) { + throw new IllegalArgumentException("Cannot kill dependents of non-existing package " + packageName); + } + try { + synchronized(this) { + killPackageProcessesLocked(packageName, UserHandle.getAppId(pkgUid), userId, + ProcessList.FOREGROUND_APP_ADJ, false, true, true, false, false, + "dep: " + packageName); + } + } finally { + Binder.restoreCallingIdentity(callingId); + } + } } diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 9e32efa1a1c2..ca9f28e69466 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -1359,6 +1359,13 @@ final class ActivityStack { final ActivityStack focusedStack = mStackSupervisor.getFocusedStack(); final int focusedStackId = focusedStack.mStackId; + if (mStackId == FULLSCREEN_WORKSPACE_STACK_ID + && hasVisibleBehindActivity() && focusedStackId == HOME_STACK_ID) { + // The fullscreen stack should be visible if it has a visible behind activity behind + // the home stack that will be translucent. + return true; + } + if (mStackId == DOCKED_STACK_ID) { // Docked stack is always visible, except in the case where the home activity // is the top running activity in the focused home stack. @@ -3985,6 +3992,20 @@ final class ActivityStack { if (DEBUG_TRANSITION) Slog.v(TAG_TRANSITION, "Prepare to back transition: task=" + taskId); + if (mStackId == HOME_STACK_ID && topTask().isHomeTask()) { + // For the case where we are moving the home task back and there is an activity visible + // behind it on the fullscreen stack, we want to move the focus to the visible behind + // activity to maintain order with what the user is seeing. + final ActivityStack fullscreenStack = + mStackSupervisor.getStack(FULLSCREEN_WORKSPACE_STACK_ID); + if (fullscreenStack != null && fullscreenStack.hasVisibleBehindActivity()) { + final ActivityRecord visibleBehind = fullscreenStack.getVisibleBehindActivity(); + mService.setFocusedActivityLocked(visibleBehind, "moveTaskToBack"); + mStackSupervisor.resumeTopActivitiesLocked(fullscreenStack, null, null); + return true; + } + } + boolean prevIsHome = false; // If true, we should resume the home activity next if the task we are moving to the diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 4f2f4860372e..40d01e7359d5 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -197,7 +197,7 @@ public class AudioService extends IAudioService.Stub { private static final int MSG_SET_DEVICE_VOLUME = 0; private static final int MSG_PERSIST_VOLUME = 1; private static final int MSG_PERSIST_RINGER_MODE = 3; - private static final int MSG_MEDIA_SERVER_DIED = 4; + private static final int MSG_AUDIO_SERVER_DIED = 4; private static final int MSG_PLAY_SOUND_EFFECT = 5; private static final int MSG_BTA2DP_DOCK_TIMEOUT = 6; private static final int MSG_LOAD_SOUND_EFFECTS = 7; @@ -358,7 +358,7 @@ public class AudioService extends IAudioService.Stub { public void onError(int error) { switch (error) { case AudioSystem.AUDIO_STATUS_SERVER_DIED: - sendMsg(mAudioHandler, MSG_MEDIA_SERVER_DIED, + sendMsg(mAudioHandler, MSG_AUDIO_SERVER_DIED, SENDMSG_NOOP, 0, 0, null, 0); break; default: @@ -772,15 +772,15 @@ public class AudioService extends IAudioService.Stub { INDICATE_SYSTEM_READY_RETRY_DELAY_MS); } - public void onMediaServerDied() { + public void onAudioServerDied() { if (!mSystemReady || (AudioSystem.checkAudioFlinger() != AudioSystem.AUDIO_STATUS_OK)) { - Log.e(TAG, "Media server died."); - sendMsg(mAudioHandler, MSG_MEDIA_SERVER_DIED, SENDMSG_NOOP, 0, 0, + Log.e(TAG, "Audioserver died."); + sendMsg(mAudioHandler, MSG_AUDIO_SERVER_DIED, SENDMSG_NOOP, 0, 0, null, 500); return; } - Log.e(TAG, "Media server started."); + Log.e(TAG, "Audioserver started."); // indicate to audio HAL that we start the reconfiguration phase after a media // server crash @@ -4406,8 +4406,8 @@ public class AudioService extends IAudioService.Stub { persistRingerMode(getRingerModeInternal()); break; - case MSG_MEDIA_SERVER_DIED: - onMediaServerDied(); + case MSG_AUDIO_SERVER_DIED: + onAudioServerDied(); break; case MSG_UNLOAD_SOUND_EFFECTS: diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 11fdb9270cf2..459c47f028b5 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -523,7 +523,9 @@ public final class HdmiControlService extends SystemService { case Global.HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED: for (int type : mLocalDevices) { HdmiCecLocalDevice localDevice = mCecController.getLocalDevice(type); - localDevice.setAutoDeviceOff(enabled); + if (localDevice != null) { + localDevice.setAutoDeviceOff(enabled); + } } // No need to propagate to HAL. break; diff --git a/services/core/java/com/android/server/notification/NotificationComparator.java b/services/core/java/com/android/server/notification/NotificationComparator.java index ec81fd2f11c2..32db000d2d29 100644 --- a/services/core/java/com/android/server/notification/NotificationComparator.java +++ b/services/core/java/com/android/server/notification/NotificationComparator.java @@ -32,11 +32,11 @@ public class NotificationComparator return -1 * Integer.compare(leftPackagePriority, rightPackagePriority); } - final int leftScore = left.sbn.getScore(); - final int rightScore = right.sbn.getScore(); - if (leftScore != rightScore) { + final int leftImportance = left.getImportance(); + final int rightImportance = right.getImportance(); + if (leftImportance != rightImportance) { // by priority, high to low - return -1 * Integer.compare(leftScore, rightScore); + return -1 * Integer.compare(leftImportance, rightImportance); } final float leftPeople = left.getContactAffinity(); diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index c83012c0d2d6..e6a48a8cd87d 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -34,6 +34,7 @@ import static android.service.notification.NotificationListenerService.SUPPRESSE import static android.service.notification.NotificationListenerService.SUPPRESSED_EFFECT_PEEK; import static android.service.notification.NotificationListenerService.TRIM_FULL; import static android.service.notification.NotificationListenerService.TRIM_LIGHT; +import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_HIGH; import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT; import static org.xmlpull.v1.XmlPullParser.END_TAG; import static org.xmlpull.v1.XmlPullParser.START_TAG; @@ -181,16 +182,6 @@ public class NotificationManagerService extends SystemService { static final int VIBRATE_PATTERN_MAXLEN = 8 * 2 + 1; // up to eight bumps static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_NOTIFICATION; - static final boolean SCORE_ONGOING_HIGHER = false; - - static final int JUNK_SCORE = -1000; - static final int NOTIFICATION_PRIORITY_MULTIPLIER = 10; - static final int SCORE_DISPLAY_THRESHOLD = Notification.PRIORITY_MIN * NOTIFICATION_PRIORITY_MULTIPLIER; - - // Notifications with scores below this will not interrupt the user, either via LED or - // sound or vibration - static final int SCORE_INTERRUPTION_THRESHOLD = - Notification.PRIORITY_LOW * NOTIFICATION_PRIORITY_MULTIPLIER; static final boolean ENABLE_BLOCKED_NOTIFICATIONS = true; static final boolean ENABLE_BLOCKED_TOASTS = true; @@ -889,6 +880,9 @@ public class NotificationManagerService extends SystemService { @Override void onZenModeChanged() { sendRegisteredOnlyBroadcast(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED); + getContext().sendBroadcastAsUser( + new Intent(NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED_INTERNAL), + UserHandle.ALL, android.Manifest.permission.MANAGE_NOTIFICATIONS); synchronized(mNotificationList) { updateInterruptionFilterLocked(); } @@ -1246,7 +1240,7 @@ public class NotificationManagerService extends SystemService { @Override public void setTopicImportance(String pkg, int uid, Notification.Topic topic, int importance) { - checkCallerIsSystem(); + enforceSystemOrSystemUI("Caller not system or systemui"); mRankingHelper.setTopicImportance(pkg, uid, topic, importance); savePolicyFile(); } @@ -2158,31 +2152,15 @@ public class NotificationManagerService extends SystemService { synchronized (mNotificationList) { - // === Scoring === - - // 0. Sanitize inputs + // Sanitize inputs notification.priority = clamp(notification.priority, Notification.PRIORITY_MIN, Notification.PRIORITY_MAX); - // Migrate notification flags to scores - if (0 != (notification.flags & Notification.FLAG_HIGH_PRIORITY)) { - if (notification.priority < Notification.PRIORITY_MAX) { - notification.priority = Notification.PRIORITY_MAX; - } - } else if (SCORE_ONGOING_HIGHER && - 0 != (notification.flags & Notification.FLAG_ONGOING_EVENT)) { - if (notification.priority < Notification.PRIORITY_HIGH) { - notification.priority = Notification.PRIORITY_HIGH; - } - } - - // 1. initial score: buckets of 10, around the app [-20..20] - final int score = notification.priority * NOTIFICATION_PRIORITY_MULTIPLIER; - // 2. extract ranking signals from the notification data + // setup local book-keeping final StatusBarNotification n = new StatusBarNotification( - pkg, opPkg, id, tag, callingUid, callingPid, score, notification, + pkg, opPkg, id, tag, callingUid, callingPid, 0, notification, user); - NotificationRecord r = new NotificationRecord(n, score); + NotificationRecord r = new NotificationRecord(getContext(), n); NotificationRecord old = mNotificationsByKey.get(n.getKey()); if (old != null) { // Retain ranking information from previous record @@ -2217,23 +2195,16 @@ public class NotificationManagerService extends SystemService { mRankingHelper.extractSignals(r); savePolicyFile(); - // 3. Apply local rules - // blocked apps if (ENABLE_BLOCKED_NOTIFICATIONS && !noteNotificationOp(pkg, callingUid)) { if (!isSystemNotification) { - r.score = JUNK_SCORE; Slog.e(TAG, "Suppressing notification from package " + pkg + " by user request."); mUsageStats.registerBlocked(r); + return; } } - if (r.score < SCORE_DISPLAY_THRESHOLD) { - // Notification will be blocked because the score is too low. - return; - } - int index = indexOfNotificationLocked(n.getKey()); if (index < 0) { mNotificationList.add(r); @@ -2385,7 +2356,7 @@ public class NotificationManagerService extends SystemService { final Notification notification = record.sbn.getNotification(); // Should this notification make noise, vibe, or use the LED? - final boolean aboveThreshold = record.score >= SCORE_INTERRUPTION_THRESHOLD; + final boolean aboveThreshold = record.getImportance() >= IMPORTANCE_HIGH; final boolean canInterrupt = aboveThreshold && !record.isIntercepted(); if (DBG || record.isIntercepted()) Slog.v(TAG, @@ -3251,24 +3222,29 @@ public class NotificationManagerService extends SystemService { final int N = mNotificationList.size(); ArrayList<String> keys = new ArrayList<String>(N); ArrayList<String> interceptedKeys = new ArrayList<String>(N); + ArrayList<Integer> importance = new ArrayList<>(N); Bundle visibilityOverrides = new Bundle(); Bundle suppressedVisualEffects = new Bundle(); + Bundle explanation = new Bundle(); for (int i = 0; i < N; i++) { NotificationRecord record = mNotificationList.get(i); if (!isVisibleToListener(record.sbn, info)) { continue; } - keys.add(record.sbn.getKey()); + final String key = record.sbn.getKey(); + keys.add(key); + importance.add(record.getImportance()); + if (record.getImportanceExplanation() != null) { + explanation.putCharSequence(key, record.getImportanceExplanation()); + } if (record.isIntercepted()) { - interceptedKeys.add(record.sbn.getKey()); + interceptedKeys.add(key); } - suppressedVisualEffects.putInt( - record.sbn.getKey(), record.getSuppressedVisualEffects()); + suppressedVisualEffects.putInt(key, record.getSuppressedVisualEffects()); if (record.getPackageVisibilityOverride() != NotificationListenerService.Ranking.VISIBILITY_NO_OVERRIDE) { - visibilityOverrides.putInt(record.sbn.getKey(), - record.getPackageVisibilityOverride()); + visibilityOverrides.putInt(key, record.getPackageVisibilityOverride()); } // Find first min-prio notification for speedbump placement. if (speedBumpIndex == -1 && @@ -3283,10 +3259,15 @@ public class NotificationManagerService extends SystemService { speedBumpIndex = keys.size() - 1; } } - String[] keysAr = keys.toArray(new String[keys.size()]); + final int M = keys.size(); + String[] keysAr = keys.toArray(new String[M]); String[] interceptedKeysAr = interceptedKeys.toArray(new String[interceptedKeys.size()]); + int[] importanceAr = new int[M]; + for (int i = 0; i < M; i++) { + importanceAr[i] = importance.get(i); + } return new NotificationRankingUpdate(keysAr, interceptedKeysAr, visibilityOverrides, - speedBumpIndex, suppressedVisualEffects); + speedBumpIndex, suppressedVisualEffects, importanceAr, explanation); } private boolean isVisibleToListener(StatusBarNotification sbn, ManagedServiceInfo listener) { @@ -3705,7 +3686,7 @@ public class NotificationManagerService extends SystemService { for (int i = 0; i < tokens.length; i++) { String token = tokens[i]; if (token != null) { - token.trim(); + token = token.trim(); } if (TextUtils.isEmpty(token)) { continue; diff --git a/services/core/java/com/android/server/notification/NotificationRecord.java b/services/core/java/com/android/server/notification/NotificationRecord.java index 3b7384ee3569..a9f20a6238cd 100644 --- a/services/core/java/com/android/server/notification/NotificationRecord.java +++ b/services/core/java/com/android/server/notification/NotificationRecord.java @@ -15,6 +15,11 @@ */ package com.android.server.notification; +import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_DEFAULT; +import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_HIGH; +import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_LOW; +import static android.service.notification.NotificationListenerService.Ranking.IMPORTANCE_MAX; + import android.app.Notification; import android.content.Context; import android.content.pm.PackageManager.NameNotFoundException; @@ -49,10 +54,10 @@ import java.util.Objects; public final class NotificationRecord { final StatusBarNotification sbn; final int mOriginalFlags; + private final Context mContext; NotificationUsageStats.SingleNotificationStats stats; boolean isCanceled; - int score; /** Whether the notification was seen by the user via one of the notification listeners. */ boolean mIsSeen; @@ -84,18 +89,71 @@ public final class NotificationRecord { private String mGlobalSortKey; private int mPackageVisibility; private int mTopicImportance = NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED; + private int mImportance = NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED; + private CharSequence mImportanceExplanation = null; private int mSuppressedVisualEffects = 0; + private String mTopicExplanation; + private String mPeopleExplanation; @VisibleForTesting - public NotificationRecord(StatusBarNotification sbn, int score) + public NotificationRecord(Context context, StatusBarNotification sbn) { this.sbn = sbn; - this.score = score; mOriginalFlags = sbn.getNotification().flags; mRankingTimeMs = calculateRankingTimeMs(0L); mCreationTimeMs = sbn.getPostTime(); mUpdateTimeMs = mCreationTimeMs; + mContext = context; + mImportance = defaultImportance(); + } + + private int defaultImportance() { + final Notification n = sbn.getNotification(); + int importance = IMPORTANCE_DEFAULT; + + // Migrate notification flags to scores + if (0 != (n.flags & Notification.FLAG_HIGH_PRIORITY)) { + n.priority = Notification.PRIORITY_MAX; + } + + switch (n.priority) { + case Notification.PRIORITY_MIN: + case Notification.PRIORITY_LOW: + importance = IMPORTANCE_LOW; + break; + case Notification.PRIORITY_DEFAULT: + importance = IMPORTANCE_DEFAULT; + break; + case Notification.PRIORITY_HIGH: + importance = IMPORTANCE_HIGH; + break; + case Notification.PRIORITY_MAX: + importance = IMPORTANCE_MAX; + break; + } + + boolean isNoisy = (n.defaults & Notification.DEFAULT_SOUND) != 0 + || (n.defaults & Notification.DEFAULT_VIBRATE) != 0 + || n.sound != null + || n.vibrate != null; + if (!isNoisy && importance > IMPORTANCE_DEFAULT) { + importance = IMPORTANCE_DEFAULT; + } + // maybe only do this for target API < N? + if (isNoisy) { + if (importance == IMPORTANCE_HIGH) { + importance = IMPORTANCE_MAX; + } else { + importance = IMPORTANCE_HIGH; + } + } + + if (n.fullScreenIntent != null) { + importance = IMPORTANCE_MAX; + } + + return importance; } // copy any notes that the ranking system may have made before the update @@ -109,6 +167,8 @@ public final class NotificationRecord { mCreationTimeMs = previous.mCreationTimeMs; mVisibleSinceMs = previous.mVisibleSinceMs; mTopicImportance = previous.mTopicImportance; + mImportance = previous.mImportance; + mImportanceExplanation = previous.mImportanceExplanation; // Don't copy mGlobalSortKey, recompute it. } @@ -129,7 +189,7 @@ public final class NotificationRecord { pw.println(prefix + this); pw.println(prefix + " uid=" + sbn.getUid() + " userId=" + sbn.getUserId()); pw.println(prefix + " icon=" + iconStr); - pw.println(prefix + " pri=" + notification.priority + " score=" + sbn.getScore()); + pw.println(prefix + " pri=" + notification.priority); pw.println(prefix + " key=" + sbn.getKey()); pw.println(prefix + " seen=" + mIsSeen); pw.println(prefix + " groupKey=" + getGroupKey()); @@ -200,6 +260,9 @@ public final class NotificationRecord { pw.println(prefix + " mPackageVisibility=" + mPackageVisibility); pw.println(prefix + " mTopicImportance=" + NotificationListenerService.Ranking.importanceToString(mTopicImportance)); + pw.println(prefix + " mImportance=" + + NotificationListenerService.Ranking.importanceToString(mImportance)); + pw.println(prefix + " mImportanceExplanation=" + mImportanceExplanation); pw.println(prefix + " mIntercept=" + mIntercept); pw.println(prefix + " mGlobalSortKey=" + mGlobalSortKey); pw.println(prefix + " mRankingTimeMs=" + mRankingTimeMs); @@ -234,15 +297,19 @@ public final class NotificationRecord { @Override public final String toString() { return String.format( - "NotificationRecord(0x%08x: pkg=%s user=%s id=%d tag=%s score=%d key=%s: %s)", + "NotificationRecord(0x%08x: pkg=%s user=%s id=%d tag=%s importance=%d key=%s: %s)", System.identityHashCode(this), this.sbn.getPackageName(), this.sbn.getUser(), this.sbn.getId(), - this.sbn.getTag(), this.sbn.getScore(), this.sbn.getKey(), + this.sbn.getTag(), this.mImportance, this.sbn.getKey(), this.sbn.getNotification()); } public void setContactAffinity(float contactAffinity) { mContactAffinity = contactAffinity; + if (mImportance < IMPORTANCE_DEFAULT && + mContactAffinity > ValidateNotificationPeople.VALID_CONTACT) { + setImportance(IMPORTANCE_DEFAULT, getPeopleExplanation()); + } } public float getContactAffinity() { @@ -274,8 +341,30 @@ public final class NotificationRecord { } public void setTopicImportance(int importance) { - if (importance != NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED) { - mTopicImportance = importance; + mTopicImportance = importance; + applyTopicImportance(); + } + + private String getTopicExplanation() { + if (mTopicExplanation == null) { + mTopicExplanation = + mContext.getString(com.android.internal.R.string.importance_from_topic); + } + return mTopicExplanation; + } + + private String getPeopleExplanation() { + if (mPeopleExplanation == null) { + mPeopleExplanation = + mContext.getString(com.android.internal.R.string.importance_from_person); + } + return mPeopleExplanation; + } + + private void applyTopicImportance() { + if (mTopicImportance != NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED) { + mImportance = mTopicImportance; + mImportanceExplanation = getTopicExplanation(); } } @@ -283,6 +372,22 @@ public final class NotificationRecord { return mTopicImportance; } + public void setImportance(int importance, CharSequence explanation) { + if (importance != NotificationListenerService.Ranking.IMPORTANCE_UNSPECIFIED) { + mImportance = importance; + mImportanceExplanation = explanation; + } + applyTopicImportance(); + } + + public int getImportance() { + return mImportance; + } + + public CharSequence getImportanceExplanation() { + return mImportanceExplanation; + } + public boolean setIntercepted(boolean intercept) { mIntercept = intercept; return mIntercept; diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index 3c891dff5b1d..6030bab6db64 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -564,6 +564,7 @@ public class ZenModeHelper { private boolean evaluateZenMode(String reason, boolean setRingerMode) { if (DEBUG) Log.d(TAG, "evaluateZenMode"); + final int zenBefore = mZenMode; final int zen = computeZenMode(); ZenLog.traceSetZenMode(zen, reason); mZenMode = zen; @@ -573,7 +574,7 @@ public class ZenModeHelper { applyZenToRingerMode(); } applyRestrictions(); - if (zen != mZenMode) { + if (zen != zenBefore) { mHandler.postDispatchOnZenModeChanged(); } return true; diff --git a/services/core/java/com/android/server/os/SchedulingPolicyService.java b/services/core/java/com/android/server/os/SchedulingPolicyService.java index c0123bf1b0f5..80faf4730274 100644 --- a/services/core/java/com/android/server/os/SchedulingPolicyService.java +++ b/services/core/java/com/android/server/os/SchedulingPolicyService.java @@ -40,12 +40,13 @@ public class SchedulingPolicyService extends ISchedulingPolicyService.Stub { public int requestPriority(int pid, int tid, int prio) { //Log.i(TAG, "requestPriority(pid=" + pid + ", tid=" + tid + ", prio=" + prio + ")"); - // Verify that caller is mediaserver, priority is in range, and that the - // callback thread specified by app belongs to the app that called mediaserver. - // Once we've verified that the caller is mediaserver, we can trust the pid but + // Verify that the caller uid is permitted, priority is in range, + // and that the callback thread specified by app belongs to the app that + // called mediaserver or audioserver. + // Once we've verified that the caller uid is permitted, we can trust the pid but // we can't trust the tid. No need to explicitly check for pid == 0 || tid == 0, // since if not the case then the getThreadGroupLeader() test will also fail. - if (Binder.getCallingUid() != Process.MEDIA_UID || prio < PRIORITY_MIN || + if (!isPermittedCallingUid() || prio < PRIORITY_MIN || prio > PRIORITY_MAX || Process.getThreadGroupLeader(tid) != pid) { return PackageManager.PERMISSION_DENIED; } @@ -61,4 +62,14 @@ public class SchedulingPolicyService extends ISchedulingPolicyService.Stub { return PackageManager.PERMISSION_GRANTED; } + private boolean isPermittedCallingUid() { + final int callingUid = Binder.getCallingUid(); + switch (callingUid) { + case Process.AUDIOSERVER_UID: // fastcapture, fastmixer + case Process.MEDIA_UID: // camera + return true; + default: + return false; + } + } } diff --git a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java index 816903ec4901..9bbc3c10213c 100644 --- a/services/core/java/com/android/server/pm/UserRestrictionsUtils.java +++ b/services/core/java/com/android/server/pm/UserRestrictionsUtils.java @@ -209,11 +209,13 @@ public class UserRestrictionsUtils { } /** - * @return true if a restriction is settable by profile owner. + * @return true if a restriction is settable by profile owner. Note it takes a user ID because + * some restrictions can be changed by PO only when it's running on the system user. */ - public static boolean canProfileOwnerChange(String restriction) { - return !(IMMUTABLE_BY_OWNERS.contains(restriction) - || DEVICE_OWNER_ONLY_RESTRICTIONS.contains(restriction)); + public static boolean canProfileOwnerChange(String restriction, int userId) { + return !IMMUTABLE_BY_OWNERS.contains(restriction) + && !(userId != UserHandle.USER_SYSTEM + && DEVICE_OWNER_ONLY_RESTRICTIONS.contains(restriction)); } /** diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java index 19b03d5e56cd..fc271704a1ec 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java @@ -216,12 +216,12 @@ public class StatusBarManagerService extends IStatusBarService.Stub { } @Override - public void expandSettingsPanel() { + public void expandSettingsPanel(String subPanel) { enforceExpandStatusBar(); if (mBar != null) { try { - mBar.animateExpandSettingsPanel(); + mBar.animateExpandSettingsPanel(subPanel); } catch (RemoteException ex) { } } diff --git a/services/core/java/com/android/server/webkit/WebViewUpdateService.java b/services/core/java/com/android/server/webkit/WebViewUpdateService.java index 97713fc2407a..7be0eadf895e 100644 --- a/services/core/java/com/android/server/webkit/WebViewUpdateService.java +++ b/services/core/java/com/android/server/webkit/WebViewUpdateService.java @@ -16,18 +16,35 @@ package com.android.server.webkit; +import android.app.ActivityManagerNative; +import android.app.AppGlobals; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; +import android.content.pm.PackageManager; +import android.content.pm.Signature; import android.os.Binder; import android.os.Process; +import android.os.RemoteException; +import android.provider.Settings; +import android.provider.Settings.Secure; +import android.util.AndroidRuntimeException; import android.util.Slog; import android.webkit.IWebViewUpdateService; +import android.webkit.WebViewProviderInfo; +import android.webkit.WebViewProviderResponse; import android.webkit.WebViewFactory; import com.android.server.SystemService; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + /** * Private service to wait for the updatable WebView to be ready for use. * @hide @@ -35,12 +52,23 @@ import com.android.server.SystemService; public class WebViewUpdateService extends SystemService { private static final String TAG = "WebViewUpdateService"; - private static final int WAIT_TIMEOUT_MS = 5000; // Same as KEY_DISPATCHING_TIMEOUT. + private static final int WAIT_TIMEOUT_MS = 4500; // KEY_DISPATCHING_TIMEOUT is 5000. + + // Keeps track of the number of running relro creations + private int mNumRelroCreationsStarted = 0; + private int mNumRelroCreationsFinished = 0; + // Implies that we need to rerun relro creation because we are using an out-of-date package + private boolean mWebViewPackageDirty = false; + // Set to true when the current provider is being replaced + private boolean mCurrentProviderBeingReplaced = false; + private boolean mAnyWebViewInstalled = false; - private boolean mRelroReady32Bit = false; - private boolean mRelroReady64Bit = false; + private int NUMBER_OF_RELROS_UNKNOWN = Integer.MAX_VALUE; - private String oldWebViewPackageName = null; + // The WebView package currently in use (or the one we are preparing). + private PackageInfo mCurrentWebViewPackage = null; + // The WebView providers that are currently available. + private WebViewProviderInfo[] mCurrentValidWebViewPackages = null; private BroadcastReceiver mWebViewUpdatedReceiver; @@ -53,28 +81,69 @@ public class WebViewUpdateService extends SystemService { mWebViewUpdatedReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { - - // When a package is replaced we will receive two intents, one representing the - // removal of the old package and one representing the addition of the new - // package. We here ignore the intent representing the removed package to make - // sure we don't change WebView provider twice. + // When a package is replaced we will receive two intents, one representing + // the removal of the old package and one representing the addition of the + // new package. + // In the case where we receive an intent to remove the old version of the + // package that is being replaced we set a flag here and early-out so that we + // don't change provider while replacing the current package (we will instead + // change provider when the new version of the package is being installed). if (intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED) - && intent.getExtras().getBoolean(Intent.EXTRA_REPLACING)) { + && intent.getExtras().getBoolean(Intent.EXTRA_REPLACING)) { + synchronized(this) { + if (mCurrentWebViewPackage == null) return; + + String webViewPackage = "package:" + mCurrentWebViewPackage.packageName; + if (webViewPackage.equals(intent.getDataString())) + mCurrentProviderBeingReplaced = true; + } + return; } - for (String packageName : WebViewFactory.getWebViewPackageNames()) { - String webviewPackage = "package:" + packageName; + for (WebViewProviderInfo provider : WebViewFactory.getWebViewPackages()) { + String webviewPackage = "package:" + provider.packageName; if (webviewPackage.equals(intent.getDataString())) { - String usedPackageName = - WebViewFactory.findPreferredWebViewPackage().packageName; - // Only trigger update actions if the updated package is the one that - // will be used, or the one that was in use before the update. - if (packageName.equals(usedPackageName) || - packageName.equals(oldWebViewPackageName)) { - onWebViewUpdateInstalled(); - oldWebViewPackageName = usedPackageName; + boolean updateWebView = false; + boolean removedOldPackage = false; + String oldProviderName = null; + PackageInfo newPackage = null; + synchronized(WebViewUpdateService.this) { + try { + updateValidWebViewPackages(); + newPackage = findPreferredWebViewPackage(); + if (mCurrentWebViewPackage != null) + oldProviderName = mCurrentWebViewPackage.packageName; + // Only trigger update actions if the updated package is the one + // that will be used, or the one that was in use before the + // update, or if we haven't seen a valid WebView package before. + updateWebView = + provider.packageName.equals(newPackage.packageName) + || provider.packageName.equals(oldProviderName) + || mCurrentWebViewPackage == null; + // We removed the old package if we received an intent to remove + // or replace the old package. + removedOldPackage = + provider.packageName.equals(oldProviderName); + if (updateWebView) { + onWebViewProviderChanged(newPackage); + } + } catch (WebViewFactory.MissingWebViewPackageException e) { + Slog.e(TAG, "Could not find valid WebView package to create " + + "relro with " + e); + } + } + if(updateWebView && !removedOldPackage && oldProviderName != null) { + // If the provider change is the result of adding or replacing a + // package that was not the previous provider then we must kill + // packages dependent on the old package ourselves. The framework + // only kills dependents of packages that are being removed. + try { + ActivityManagerNative.getDefault().killPackageDependents( + oldProviderName, getContext().getUserId()); + } catch (RemoteException e) { + } } return; } @@ -90,14 +159,182 @@ public class WebViewUpdateService extends SystemService { publishBinderService("webviewupdate", new BinderService()); } - private void onWebViewUpdateInstalled() { - Slog.d(TAG, "WebView Package updated!"); + /** + * Perform any WebView loading preparations that must happen at boot from the system server, + * after the package manager has started or after an update to the webview is installed. + * This must be called in the system server. + * Currently, this means spawning the child processes which will create the relro files. + */ + public void prepareWebViewInSystemServer() { + try { + synchronized(this) { + updateValidWebViewPackages(); + mCurrentWebViewPackage = findPreferredWebViewPackage(); + onWebViewProviderChanged(mCurrentWebViewPackage); + } + } catch (Throwable t) { + // Log and discard errors at this stage as we must not crash the system server. + Slog.e(TAG, "error preparing webview provider from system server", t); + } + } + - synchronized (this) { - mRelroReady32Bit = false; - mRelroReady64Bit = false; + /** + * Change WebView provider and provider setting and kill packages using the old provider. + */ + private void changeProviderAndSetting(String newProviderName) { + PackageInfo oldPackage = null; + PackageInfo newPackage = null; + synchronized(this) { + oldPackage = mCurrentWebViewPackage; + updateUserSetting(newProviderName); + + try { + newPackage = findPreferredWebViewPackage(); + if (oldPackage != null && newPackage.packageName.equals(oldPackage.packageName)) { + // If we don't perform the user change, revert the settings change. + updateUserSetting(newPackage.packageName); + return; + } + } catch (WebViewFactory.MissingWebViewPackageException e) { + Slog.e(TAG, "Tried to change WebView provider but failed to fetch WebView package " + + e); + // If we don't perform the user change but don't have an installed WebView package, + // we will have changed the setting and it will be used when a package is available. + return; + } + onWebViewProviderChanged(newPackage); + } + // Kill apps using the old provider + try { + if (oldPackage != null) { + ActivityManagerNative.getDefault().killPackageDependents( + oldPackage.packageName, getContext().getUserId()); + } + } catch (RemoteException e) { + } + return; + } + + /** + * This is called when we change WebView provider, either when the current provider is updated + * or a new provider is chosen / takes precedence. + */ + private void onWebViewProviderChanged(PackageInfo newPackage) { + synchronized(this) { + mAnyWebViewInstalled = true; + // If we have changed provider then the replacement of the old provider is + // irrelevant - we can only have chosen a new provider if its package is available. + mCurrentProviderBeingReplaced = false; + if (mNumRelroCreationsStarted == mNumRelroCreationsFinished) { + mCurrentWebViewPackage = newPackage; + updateUserSetting(newPackage.packageName); + + // The relro creations might 'finish' (not start at all) before + // WebViewFactory.onWebViewProviderChanged which means we might not know the number + // of started creations before they finish. + mNumRelroCreationsStarted = NUMBER_OF_RELROS_UNKNOWN; + mNumRelroCreationsFinished = 0; + mNumRelroCreationsStarted = WebViewFactory.onWebViewProviderChanged(newPackage); + // If the relro creations finish before we know the number of started creations we + // will have to do any cleanup/notifying here. + checkIfRelrosDoneLocked(); + } else { + mWebViewPackageDirty = true; + } + } + } + + /** + * Updates the currently valid WebView provider packages. + * Should be used when a provider has been installed or removed. + * @hide + * */ + private void updateValidWebViewPackages() { + List<WebViewProviderInfo> webViewProviders = + new ArrayList<WebViewProviderInfo>(Arrays.asList(WebViewFactory.getWebViewPackages())); + Iterator<WebViewProviderInfo> it = webViewProviders.iterator(); + // remove non-valid packages + while(it.hasNext()) { + WebViewProviderInfo current = it.next(); + if (!current.isValidProvider()) + it.remove(); + } + synchronized(this) { + mCurrentValidWebViewPackages = + webViewProviders.toArray(new WebViewProviderInfo[webViewProviders.size()]); + } + } + + private static String getUserChosenWebViewProvider() { + return Settings.Secure.getString(AppGlobals.getInitialApplication().getContentResolver(), + Settings.Secure.WEBVIEW_PROVIDER); + } + + private void updateUserSetting(String newProviderName) { + Settings.Secure.putString(getContext().getContentResolver(), + Settings.Secure.WEBVIEW_PROVIDER, + newProviderName == null ? "" : newProviderName); + } + + /** + * Returns either the package info of the WebView provider determined in the following way: + * If the user has chosen a provider then use that if it is valid, + * otherwise use the first package in the webview priority list that is valid. + * + * @hide + */ + private PackageInfo findPreferredWebViewPackage() { + WebViewProviderInfo[] providers = mCurrentValidWebViewPackages; + + String userChosenProvider = getUserChosenWebViewProvider(); + + // If the user has chosen provider, use that + for (WebViewProviderInfo provider : providers) { + if (provider.packageName.equals(userChosenProvider)) { + return provider.getPackageInfo(); + } + } + + // User did not choose, or the choice failed, use the most stable provider available + for (WebViewProviderInfo provider : providers) { + return provider.getPackageInfo(); + } + mAnyWebViewInstalled = false; + throw new WebViewFactory.MissingWebViewPackageException( + "Could not find a loadable WebView package"); + } + + /** + * Returns whether WebView is ready and is not going to go through its preparation phase again + * directly. + */ + private boolean webViewIsReadyLocked() { + return !mWebViewPackageDirty + && (mNumRelroCreationsStarted == mNumRelroCreationsFinished) + && !mCurrentProviderBeingReplaced + // The current package might be replaced though we haven't received an intent declaring + // this yet, the following flag makes anyone loading WebView to wait in this case. + && mAnyWebViewInstalled; + } + + private void checkIfRelrosDoneLocked() { + if (mNumRelroCreationsStarted == mNumRelroCreationsFinished) { + if (mWebViewPackageDirty) { + mWebViewPackageDirty = false; + // If we have changed provider since we started the relro creation we need to + // redo the whole process using the new package instead. + // Though, if the current provider package is being replaced we don't want to change + // provider here since we will perform the change either when the package is added + // again or when we switch to another provider (whichever comes first). + if (!mCurrentProviderBeingReplaced) { + PackageInfo newPackage = findPreferredWebViewPackage(); + onWebViewProviderChanged(newPackage); + } + } else { + this.notifyAll(); + } } - WebViewFactory.onWebViewUpdateInstalled(); } private class BinderService extends IWebViewUpdateService.Stub { @@ -108,7 +345,7 @@ public class WebViewUpdateService extends SystemService { * crashed. */ @Override // Binder call - public void notifyRelroCreationCompleted(boolean is64Bit, boolean success) { + public void notifyRelroCreationCompleted() { // Verify that the caller is either the shared relro process (nominal case) or the // system server (only in the case the relro process crashes and we get here via the // crashHandler). @@ -118,20 +355,17 @@ public class WebViewUpdateService extends SystemService { } synchronized (WebViewUpdateService.this) { - if (is64Bit) { - mRelroReady64Bit = true; - } else { - mRelroReady32Bit = true; - } - WebViewUpdateService.this.notifyAll(); + mNumRelroCreationsFinished++; + checkIfRelrosDoneLocked(); } } /** * WebViewFactory calls this to block WebView loading until the relro file is created. + * Returns the WebView provider for which we create relro files. */ @Override // Binder call - public void waitForRelroCreationCompleted(boolean is64Bit) { + public WebViewProviderResponse waitForAndGetProvider() { // The WebViewUpdateService depends on the prepareWebViewInSystemServer call, which // happens later (during the PHASE_ACTIVITY_MANAGER_READY) in SystemServer.java. If // another service there tries to bring up a WebView in the between, the wait below @@ -140,21 +374,74 @@ public class WebViewUpdateService extends SystemService { throw new IllegalStateException("Cannot create a WebView from the SystemServer"); } + PackageInfo webViewPackage = null; final long NS_PER_MS = 1000000; final long timeoutTimeMs = System.nanoTime() / NS_PER_MS + WAIT_TIMEOUT_MS; - boolean relroReady = (is64Bit ? mRelroReady64Bit : mRelroReady32Bit); + boolean webViewReady = false; + int webViewStatus = WebViewFactory.LIBLOAD_SUCCESS; synchronized (WebViewUpdateService.this) { - while (!relroReady) { + webViewReady = WebViewUpdateService.this.webViewIsReadyLocked(); + while (!webViewReady) { final long timeNowMs = System.nanoTime() / NS_PER_MS; if (timeNowMs >= timeoutTimeMs) break; try { WebViewUpdateService.this.wait(timeoutTimeMs - timeNowMs); } catch (InterruptedException e) {} - relroReady = (is64Bit ? mRelroReady64Bit : mRelroReady32Bit); + webViewReady = WebViewUpdateService.this.webViewIsReadyLocked(); + } + // Make sure we return the provider that was used to create the relro file + webViewPackage = WebViewUpdateService.this.mCurrentWebViewPackage; + if (webViewReady) { + } else if (mCurrentProviderBeingReplaced) { + // It is important that we check this flag before the one representing WebView + // being installed, otherwise we might think there is no WebView though the + // current one is just being replaced. + webViewStatus = WebViewFactory.LIBLOAD_WEBVIEW_BEING_REPLACED; + } else if (!mAnyWebViewInstalled) { + webViewStatus = WebViewFactory.LIBLOAD_FAILED_LISTING_WEBVIEW_PACKAGES; + } else { + // Either the current relro creation isn't done yet, or the new relro creatioin + // hasn't kicked off yet (the last relro creation used an out-of-date WebView). + webViewStatus = WebViewFactory.LIBLOAD_FAILED_WAITING_FOR_RELRO; } } - if (!relroReady) Slog.w(TAG, "creating relro file timed out"); + if (!webViewReady) Slog.w(TAG, "creating relro file timed out"); + return new WebViewProviderResponse(webViewPackage, webViewStatus); + } + + /** + * This is called from DeveloperSettings when the user changes WebView provider. + */ + @Override // Binder call + public void changeProviderAndSetting(String newProvider) { + if (getContext().checkCallingPermission( + android.Manifest.permission.WRITE_SECURE_SETTINGS) + != PackageManager.PERMISSION_GRANTED) { + String msg = "Permission Denial: changeProviderAndSetting() from pid=" + + Binder.getCallingPid() + + ", uid=" + Binder.getCallingUid() + + " requires " + android.Manifest.permission.WRITE_SECURE_SETTINGS; + Slog.w(TAG, msg); + throw new SecurityException(msg); + } + + WebViewUpdateService.this.changeProviderAndSetting(newProvider); } - } + @Override // Binder call + public WebViewProviderInfo[] getValidWebViewPackages() { + synchronized(WebViewUpdateService.this) { + return mCurrentValidWebViewPackages; + } + } + + @Override // Binder call + public String getCurrentWebViewPackageName() { + synchronized(WebViewUpdateService.this) { + if (WebViewUpdateService.this.mCurrentWebViewPackage == null) + return null; + return WebViewUpdateService.this.mCurrentWebViewPackage.packageName; + } + } + } } diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 9b64481a56b7..59421984dc1f 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -110,6 +110,8 @@ class DisplayContent { final DimLayerController mDimLayerController; + final ArrayList<WindowState> mTapExcludedWindows = new ArrayList<>(); + /** * @param display May not be null. * @param service You know. @@ -412,6 +414,11 @@ class DisplayContent { inputMethod.getTouchableRegion(mTmpRegion); mTouchExcludeRegion.op(mTmpRegion, Region.Op.UNION); } + for (int i = mTapExcludedWindows.size() - 1; i >= 0; i--) { + WindowState win = mTapExcludedWindows.get(i); + win.getTouchableRegion(mTmpRegion); + mTouchExcludeRegion.op(mTmpRegion, Region.Op.UNION); + } if (mTapDetector != null) { mTapDetector.setTouchExcludeRegion(mTouchExcludeRegion, mNonResizeableRegion); } diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 0c606fefacb7..816cab732ade 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -42,6 +42,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER; import static android.view.WindowManager.LayoutParams.TYPE_DREAM; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD; import static android.view.WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG; +import static android.view.WindowManager.LayoutParams.TYPE_NAVIGATION_BAR; import static android.view.WindowManager.LayoutParams.TYPE_PRIVATE_PRESENTATION; import static android.view.WindowManager.LayoutParams.TYPE_QS_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; @@ -1966,6 +1967,10 @@ public class WindowManagerService extends IWindowManager.Stub res = WindowManagerGlobal.ADD_OKAY; + if (type == TYPE_STATUS_BAR || type == TYPE_NAVIGATION_BAR) { + displayContent.mTapExcludedWindows.add(win); + } + origId = Binder.clearCallingIdentity(); if (addToken) { @@ -2309,6 +2314,11 @@ public class WindowManagerService extends IWindowManager.Stub Slog.w(TAG_WM, "Removing window " + win, e); } + final int type = win.mAttrs.type; + if (type == TYPE_STATUS_BAR || type == TYPE_NAVIGATION_BAR) { + final DisplayContent displaycontent = win.getDisplayContent(); + displaycontent.mTapExcludedWindows.remove(win); + } mPolicy.removeWindowLw(win); win.removeLocked(); @@ -2364,7 +2374,7 @@ public class WindowManagerService extends IWindowManager.Stub } } - if (win.mAttrs.type == TYPE_WALLPAPER) { + if (type == TYPE_WALLPAPER) { mWallpaperControllerLocked.clearLastWallpaperTimeoutTime(); getDefaultDisplayContentLocked().pendingLayoutChanges |= WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER; diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 0fc714263b78..5a589e3a736b 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -521,7 +521,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { } WindowState appWin = this; - while (appWin.mAttachedWindow != null) { + while (appWin.isChildWindow()) { appWin = appWin.mAttachedWindow; } WindowToken appToken = appWin.mToken; @@ -854,7 +854,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { @Override public int getBaseType() { WindowState win = this; - while (win.mAttachedWindow != null) { + while (win.isChildWindow()) { win = win.mAttachedWindow; } return win.mAttrs.type; @@ -1235,7 +1235,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { void removeLocked() { disposeInputChannel(); - if (mAttachedWindow != null) { + if (isChildWindow()) { if (DEBUG_ADD_REMOVE) Slog.v(TAG, "Removing " + this + " from " + mAttachedWindow); mAttachedWindow.mChildWindows.remove(this); } @@ -1682,7 +1682,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { // first frame very fast. Saving surfaces are mostly a waste of memory. // Don't save if the window is not the topmost window. mSurfaceSaved = false; - } else if (mAttachedWindow != null) { + } else if (isChildWindow()) { mSurfaceSaved = false; } else { mSurfaceSaved = mAppToken.shouldSaveSurface(); @@ -1733,7 +1733,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { boolean isHiddenFromUserLocked() { // Attached windows are evaluated based on the window that they are attached to. WindowState win = this; - while (win.mAttachedWindow != null) { + while (win.isChildWindow()) { win = win.mAttachedWindow; } if (win.mAttrs.type < WindowManager.LayoutParams.FIRST_SYSTEM_WINDOW @@ -1997,7 +1997,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { pw.print(prefix); pw.print("LastRequested w="); pw.print(mLastRequestedWidth); pw.print(" h="); pw.println(mLastRequestedHeight); } - if (mAttachedWindow != null || mLayoutAttached) { + if (isChildWindow() || mLayoutAttached) { pw.print(prefix); pw.print("mAttachedWindow="); pw.print(mAttachedWindow); pw.print(" mLayoutAttached="); pw.println(mLayoutAttached); } @@ -2255,4 +2255,8 @@ final class WindowState implements WindowManagerPolicy.WindowState { // Now make sure the window fits in the overall display frame. Gravity.applyDisplay(mAttrs.gravity, mDisplayFrame, mFrame); } + + boolean isChildWindow() { + return mAttachedWindow != null; + } } diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 7cd67d098db8..cd82a5f1e4b0 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -710,11 +710,13 @@ class WindowStateAnimator { // Something is wrong and SurfaceFlinger will not like this, try to revert to sane values. if (mTmpSize.width() < 1) { - Slog.w(TAG, "Width of " + w + " is not positive " + mTmpSize.width()); + if (!mWin.mLayoutNeeded) Slog.w(TAG, + "Width of " + w + " is not positive " + mTmpSize.width()); mTmpSize.right = mTmpSize.left + 1; } if (mTmpSize.height() < 1) { - Slog.w(TAG, "Height of " + w + " is not positive " + mTmpSize.height()); + if (!mWin.mLayoutNeeded) Slog.w(TAG, + "Height of " + w + " is not positive " + mTmpSize.height()); mTmpSize.bottom = mTmpSize.top + 1; } @@ -1135,17 +1137,19 @@ class WindowStateAnimator { final boolean isFreeformResizing = w.isDragResizing() && w.getResizeMode() == DRAG_RESIZE_MODE_FREEFORM; final Rect clipRect = mTmpClipRect; - if (isFreeformResizing) { - // When we're doing a drag-resizing, the surface is set up to cover full screen. - // Set the clip rect to be the same size so that we don't get any scaling. - clipRect.set(0, 0, displayInfo.logicalWidth, displayInfo.logicalHeight); - } else { - // We use the clip rect as provided by the tranformation for non-fullscreen windows to - // avoid premature clipping with the system decor rect. - clipRect.set((mHasClipRect && !fullscreen) ? mClipRect : mSystemDecorRect); - if (DEBUG_WINDOW_CROP) Slog.d(TAG, "Initial clip rect: " + clipRect + ", mHasClipRect=" - + mHasClipRect + ", fullscreen=" + fullscreen); + + // We use the clip rect as provided by the tranformation for non-fullscreen windows to + // avoid premature clipping with the system decor rect. + clipRect.set((mHasClipRect && !fullscreen) ? mClipRect : mSystemDecorRect); + if (DEBUG_WINDOW_CROP) Slog.d(TAG, "Initial clip rect: " + clipRect + ", mHasClipRect=" + + mHasClipRect + ", fullscreen=" + fullscreen); + + if (isFreeformResizing && !w.isChildWindow()) { + // For freeform resizing non child windows, we are using the big surface positioned + // at 0,0. Thus we must express the crop in that coordinate space. + clipRect.offset(w.mShownPosition.x, w.mShownPosition.y); } + // Expand the clip rect for surface insets. final WindowManager.LayoutParams attrs = w.mAttrs; clipRect.left -= attrs.surfaceInsets.left; diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 5cf8ac0e2c8d..c540e052d499 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -109,8 +109,6 @@ import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; -import android.util.PrintWriterPrinter; -import android.util.Printer; import android.util.Slog; import android.util.SparseArray; import android.util.Xml; @@ -1752,11 +1750,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { try { return new DeviceAdminInfo(mContext, ri); - } catch (XmlPullParserException e) { - Slog.w(LOG_TAG, "Bad device admin requested for user=" + userHandle + ": " + adminName, - e); - return null; - } catch (IOException e) { + } catch (XmlPullParserException | IOException e) { Slog.w(LOG_TAG, "Bad device admin requested for user=" + userHandle + ": " + adminName, e); return null; @@ -1994,18 +1988,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { XmlUtils.skipCurrentTag(parser); } } - } catch (NullPointerException e) { - Slog.w(LOG_TAG, "failed parsing " + file + " " + e); - } catch (NumberFormatException e) { - Slog.w(LOG_TAG, "failed parsing " + file + " " + e); - } catch (XmlPullParserException e) { - Slog.w(LOG_TAG, "failed parsing " + file + " " + e); } catch (FileNotFoundException e) { // Don't be noisy, this is normal if we haven't defined any policies. - } catch (IOException e) { - Slog.w(LOG_TAG, "failed parsing " + file + " " + e); - } catch (IndexOutOfBoundsException e) { - Slog.w(LOG_TAG, "failed parsing " + file + " " + e); + } catch (NullPointerException | NumberFormatException | XmlPullParserException | IOException + | IndexOutOfBoundsException e) { + Slog.w(LOG_TAG, "failed parsing " + file, e); } try { if (stream != null) { @@ -5807,7 +5794,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { throw new SecurityException("Device owner cannot set user restriction " + key); } } else { // profile owner - if (!UserRestrictionsUtils.canProfileOwnerChange(key)) { + if (!UserRestrictionsUtils.canProfileOwnerChange(key, userHandle)) { throw new SecurityException("Profile owner cannot set user restriction " + key); } } diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 2f33d7cdd3fe..189ed332abef 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -150,6 +150,7 @@ public final class SystemServer { // TODO: remove all of these references by improving dependency resolution and boot phases private PowerManagerService mPowerManagerService; private ActivityManagerService mActivityManagerService; + private WebViewUpdateService mWebViewUpdateService; private DisplayManagerService mDisplayManagerService; private PackageManagerService mPackageManagerService; private PackageManager mPackageManager; @@ -409,7 +410,7 @@ public final class SystemServer { LocalServices.getService(UsageStatsManagerInternal.class)); // Tracks whether the updatable WebView is in a ready state and watches for update installs. - mSystemServiceManager.startService(WebViewUpdateService.class); + mWebViewUpdateService = mSystemServiceManager.startService(WebViewUpdateService.class); } /** @@ -1180,7 +1181,7 @@ public final class SystemServer { Slog.i(TAG, "WebViewFactory preparation"); Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "WebViewFactoryPreparation"); - WebViewFactory.prepareWebViewInSystemServer(); + mWebViewUpdateService.prepareWebViewInSystemServer(); Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "StartSystemUI"); diff --git a/services/tests/servicestests/src/com/android/server/notification/RankingHelperTest.java b/services/tests/servicestests/src/com/android/server/notification/RankingHelperTest.java index d0065cd4b181..df7b412a27fe 100644 --- a/services/tests/servicestests/src/com/android/server/notification/RankingHelperTest.java +++ b/services/tests/servicestests/src/com/android/server/notification/RankingHelperTest.java @@ -64,8 +64,8 @@ public class RankingHelperTest extends AndroidTestCase { .setWhen(1205) .setTopic(new Notification.Topic("A", "a")) .build(); - mRecordGroupGSortA = new NotificationRecord(new StatusBarNotification( - "package", "package", 1, null, 0, 0, 0, mNotiGroupGSortA, user), 0); + mRecordGroupGSortA = new NotificationRecord(getContext(), new StatusBarNotification( + "package", "package", 1, null, 0, 0, 0, mNotiGroupGSortA, user)); mNotiGroupGSortB = new Notification.Builder(getContext()) .setContentTitle("B") @@ -74,24 +74,24 @@ public class RankingHelperTest extends AndroidTestCase { .setWhen(1200) .setTopic(new Notification.Topic("A", "a")) .build(); - mRecordGroupGSortB = new NotificationRecord(new StatusBarNotification( - "package", "package", 1, null, 0, 0, 0, mNotiGroupGSortB, user), 0); + mRecordGroupGSortB = new NotificationRecord(getContext(), new StatusBarNotification( + "package", "package", 1, null, 0, 0, 0, mNotiGroupGSortB, user)); mNotiNoGroup = new Notification.Builder(getContext()) .setContentTitle("C") .setWhen(1201) .setTopic(new Notification.Topic("C", "c")) .build(); - mRecordNoGroup = new NotificationRecord(new StatusBarNotification( - "package", "package", 1, null, 0, 0, 0, mNotiNoGroup, user), 0); + mRecordNoGroup = new NotificationRecord(getContext(), new StatusBarNotification( + "package", "package", 1, null, 0, 0, 0, mNotiNoGroup, user)); mNotiNoGroup2 = new Notification.Builder(getContext()) .setContentTitle("D") .setWhen(1202) .setTopic(new Notification.Topic("D", "d")) .build(); - mRecordNoGroup2 = new NotificationRecord(new StatusBarNotification( - "package", "package", 1, null, 0, 0, 0, mNotiNoGroup2, user), 0); + mRecordNoGroup2 = new NotificationRecord(getContext(), new StatusBarNotification( + "package", "package", 1, null, 0, 0, 0, mNotiNoGroup2, user)); mNotiNoGroupSortA = new Notification.Builder(getContext()) .setContentTitle("E") @@ -99,8 +99,8 @@ public class RankingHelperTest extends AndroidTestCase { .setSortKey("A") .setTopic(new Notification.Topic("E", "e")) .build(); - mRecordNoGroupSortA = new NotificationRecord(new StatusBarNotification( - "package", "package", 1, null, 0, 0, 0, mNotiNoGroupSortA, user), 0); + mRecordNoGroupSortA = new NotificationRecord(getContext(), new StatusBarNotification( + "package", "package", 1, null, 0, 0, 0, mNotiNoGroupSortA, user)); } @SmallTest diff --git a/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java b/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java index 5542a4fe2d8d..5bdf6f71843d 100644 --- a/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/UserRestrictionsUtilsTest.java @@ -16,6 +16,7 @@ package com.android.server.pm; +import android.os.UserHandle; import com.android.server.devicepolicy.DpmTestUtils; import android.os.Bundle; @@ -87,10 +88,25 @@ public class UserRestrictionsUtilsTest extends AndroidTestCase { } public void testCanProfileOwnerChange() { - assertFalse(UserRestrictionsUtils.canProfileOwnerChange(UserManager.DISALLOW_RECORD_AUDIO)); - assertFalse(UserRestrictionsUtils.canProfileOwnerChange(UserManager.DISALLOW_WALLPAPER)); - assertFalse(UserRestrictionsUtils.canProfileOwnerChange(UserManager.DISALLOW_ADD_USER)); - assertTrue(UserRestrictionsUtils.canProfileOwnerChange(UserManager.DISALLOW_ADJUST_VOLUME)); + int user = UserHandle.USER_SYSTEM; + assertFalse(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_RECORD_AUDIO, user)); + assertFalse(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_WALLPAPER, user)); + assertTrue(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_ADD_USER, user)); + assertTrue(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_ADJUST_VOLUME, user)); + + user = 10; + assertFalse(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_RECORD_AUDIO, user)); + assertFalse(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_WALLPAPER, user)); + assertFalse(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_ADD_USER, user)); + assertTrue(UserRestrictionsUtils.canProfileOwnerChange( + UserManager.DISALLOW_ADJUST_VOLUME, user)); } public void testSortToGlobalAndLocal() { diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index 5ecd2b539935..b18af33a3a3b 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -156,6 +156,20 @@ public final class PhoneAccount implements Parcelable { public static final int CAPABILITY_EMERGENCY_CALLS_ONLY = 0x80; /** + * Flag indicating that for this {@code PhoneAccount}, the ability to make a video call to a + * number relies on presence. Should only be set if the {@code PhoneAccount} also has + * {@link #CAPABILITY_VIDEO_CALLING}. + * <p> + * When set, the {@link ConnectionService} is responsible for toggling the + * {@link android.provider.ContactsContract.Data#CARRIER_PRESENCE_VT_CAPABLE} bit on the + * {@link android.provider.ContactsContract.Data#CARRIER_PRESENCE} column to indicate whether + * a contact's phone number supports video calling. + * <p> + * See {@link #getCapabilities} + */ + public static final int CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE = 0x100; + + /** * URI scheme for telephone number URIs. */ public static final String SCHEME_TEL = "tel"; diff --git a/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java b/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java index 8eb30d23b206..cf1a4aa97c6d 100644 --- a/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java +++ b/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java @@ -162,8 +162,11 @@ public class NotificationTestList extends TestActivity new Test("with topic Hello") { public void run() { + Notification.BigTextStyle bigText = new Notification.BigTextStyle(); + bigText.bigText("FgBHreherhethethethe\ntwetwrterter\netetweterteryetry"); Notification n = new Notification.Builder(NotificationTestList.this) .setSmallIcon(R.drawable.icon1) + .setStyle(bigText) .setWhen(mActivityCreateTime) .setContentTitle("hihi") .setContentText("This is a notification!!!") |