diff options
170 files changed, 1424 insertions, 757 deletions
diff --git a/Android.bp b/Android.bp index 4d8924d28859..6c5acd2b416b 100644 --- a/Android.bp +++ b/Android.bp @@ -273,9 +273,12 @@ java_library { installable: false, } +// NOTE: This filegroup is exposed for vendor libraries to depend on and is referenced in +// documentation. Do not remove without consulting the treble/hidl teams. filegroup { name: "framework-jarjar-rules", srcs: ["framework-jarjar-rules.txt"], + visibility: ["//visibility:public"], } java_defaults { diff --git a/core/api/current.txt b/core/api/current.txt index d73e3a0e7af3..002b3334d731 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -52896,8 +52896,6 @@ package android.view.translation { public static final class TranslationRequest.Builder { ctor public TranslationRequest.Builder(); - method @Deprecated @NonNull public android.view.translation.TranslationRequest.Builder addTranslationRequestValue(@NonNull android.view.translation.TranslationRequestValue); - method @Deprecated @NonNull public android.view.translation.TranslationRequest.Builder addViewTranslationRequest(@NonNull android.view.translation.ViewTranslationRequest); method @NonNull public android.view.translation.TranslationRequest build(); method @NonNull public android.view.translation.TranslationRequest.Builder setFlags(int); method @NonNull public android.view.translation.TranslationRequest.Builder setTranslationRequestValues(@NonNull java.util.List<android.view.translation.TranslationRequestValue>); @@ -52931,7 +52929,6 @@ package android.view.translation { method @NonNull public android.view.translation.TranslationResponse.Builder setFinalResponse(boolean); method @NonNull public android.view.translation.TranslationResponse.Builder setTranslationResponseValue(int, @NonNull android.view.translation.TranslationResponseValue); method @NonNull public android.view.translation.TranslationResponse.Builder setTranslationResponseValues(@NonNull android.util.SparseArray<android.view.translation.TranslationResponseValue>); - method @Deprecated @NonNull public android.view.translation.TranslationResponse.Builder setTranslationStatus(int); method @NonNull public android.view.translation.TranslationResponse.Builder setViewTranslationResponse(int, @NonNull android.view.translation.ViewTranslationResponse); method @NonNull public android.view.translation.TranslationResponse.Builder setViewTranslationResponses(@NonNull android.util.SparseArray<android.view.translation.ViewTranslationResponse>); } diff --git a/core/api/removed.txt b/core/api/removed.txt index cdb6a5814217..57e1598b4c33 100644 --- a/core/api/removed.txt +++ b/core/api/removed.txt @@ -560,6 +560,15 @@ package android.view.translation { method @Deprecated public void removeTranslationCapabilityUpdateListener(int, int, @NonNull android.app.PendingIntent); } + public static final class TranslationRequest.Builder { + method @Deprecated @NonNull public android.view.translation.TranslationRequest.Builder addTranslationRequestValue(@NonNull android.view.translation.TranslationRequestValue); + method @Deprecated @NonNull public android.view.translation.TranslationRequest.Builder addViewTranslationRequest(@NonNull android.view.translation.ViewTranslationRequest); + } + + public static final class TranslationResponse.Builder { + method @Deprecated @NonNull public android.view.translation.TranslationResponse.Builder setTranslationStatus(int); + } + public final class TranslationSpec implements android.os.Parcelable { ctor @Deprecated public TranslationSpec(@NonNull String, int); method @Deprecated @NonNull public String getLanguage(); diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 6f68e3fe902c..f23966e8d164 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -10565,6 +10565,7 @@ package android.service.voice { method public void onDetect(@NonNull android.service.voice.AlwaysOnHotwordDetector.EventPayload, long, @NonNull android.service.voice.HotwordDetectionService.Callback); method public void onDetect(@NonNull android.service.voice.HotwordDetectionService.Callback); method public void onDetect(@NonNull android.os.ParcelFileDescriptor, @NonNull android.media.AudioFormat, @Nullable android.os.PersistableBundle, @NonNull android.service.voice.HotwordDetectionService.Callback); + method public void onStopDetection(); method public void onUpdateState(@Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, long, @Nullable java.util.function.IntConsumer); field public static final int INITIALIZATION_STATUS_SUCCESS = 0; // 0x0 field public static final int INITIALIZATION_STATUS_UNKNOWN = 100; // 0x64 @@ -10604,6 +10605,12 @@ package android.service.voice { field @NonNull public static final android.os.Parcelable.Creator<android.service.voice.HotwordRejectedResult> CREATOR; } + public static final class HotwordRejectedResult.Builder { + ctor public HotwordRejectedResult.Builder(); + method @NonNull public android.service.voice.HotwordRejectedResult build(); + method @NonNull public android.service.voice.HotwordRejectedResult.Builder setConfidenceLevel(int); + } + public class VoiceInteractionService extends android.app.Service { method @NonNull public final android.service.voice.AlwaysOnHotwordDetector createAlwaysOnHotwordDetector(String, java.util.Locale, android.service.voice.AlwaysOnHotwordDetector.Callback); method @NonNull @RequiresPermission(android.Manifest.permission.MANAGE_HOTWORD_DETECTION) public final android.service.voice.AlwaysOnHotwordDetector createAlwaysOnHotwordDetector(String, java.util.Locale, @Nullable android.os.PersistableBundle, @Nullable android.os.SharedMemory, android.service.voice.AlwaysOnHotwordDetector.Callback); @@ -13651,8 +13658,7 @@ package android.telephony.ims { } public interface SipDelegateConnection { - method public default void cleanupSession(@NonNull String); - method @Deprecated public default void closeDialog(@NonNull String); + method public void cleanupSession(@NonNull String); method public void notifyMessageReceiveError(@NonNull String, int); method public void notifyMessageReceived(@NonNull String); method public void sendMessage(@NonNull android.telephony.ims.SipMessage, long); @@ -14104,8 +14110,7 @@ package android.telephony.ims.stub { } public interface SipDelegate { - method public default void cleanupSession(@NonNull String); - method @Deprecated public default void closeDialog(@NonNull String); + method public void cleanupSession(@NonNull String); method public void notifyMessageReceiveError(@NonNull String, int); method public void notifyMessageReceived(@NonNull String); method public void sendMessage(@NonNull android.telephony.ims.SipMessage, long); diff --git a/core/java/android/app/IUiModeManager.aidl b/core/java/android/app/IUiModeManager.aidl index 9f21bcc5f45c..440dd629c114 100644 --- a/core/java/android/app/IUiModeManager.aidl +++ b/core/java/android/app/IUiModeManager.aidl @@ -67,7 +67,6 @@ interface IUiModeManager { * 1 - notnight mode * 2 - night mode * 3 - automatic mode switching - * @throws RemoteException */ void setApplicationNightMode(in int mode); diff --git a/core/java/android/hardware/biometrics/BiometricFaceConstants.java b/core/java/android/hardware/biometrics/BiometricFaceConstants.java index 83e273a91f91..fe43c83d17f1 100644 --- a/core/java/android/hardware/biometrics/BiometricFaceConstants.java +++ b/core/java/android/hardware/biometrics/BiometricFaceConstants.java @@ -53,9 +53,6 @@ public interface BiometricFaceConstants { // authentication or removal. Must agree with the list in HAL h file // - /** - * @hide - */ @IntDef({FACE_ERROR_HW_UNAVAILABLE, FACE_ERROR_UNABLE_TO_PROCESS, FACE_ERROR_TIMEOUT, @@ -110,8 +107,6 @@ public interface BiometricFaceConstants { /** * The {@link FaceManager#remove} call failed. Typically this will happen when the * provided face id was incorrect. - * - * @hide */ int FACE_ERROR_UNABLE_TO_REMOVE = 6; @@ -160,8 +155,6 @@ public interface BiometricFaceConstants { /** * The user pressed the negative button. This is a placeholder that is currently only used * by the support library. - * - * @hide */ int FACE_ERROR_NEGATIVE_BUTTON = 13; @@ -177,24 +170,23 @@ public interface BiometricFaceConstants { * security update has addressed this issue. This error can be received if for example, * authentication was requested with {@link Authenticators#BIOMETRIC_STRONG}, but the * sensor's strength can currently only meet {@link Authenticators#BIOMETRIC_WEAK}. - * @hide */ int BIOMETRIC_ERROR_SECURITY_UPDATE_REQUIRED = 15; /** * Authentication cannot proceed because re-enrollment is required. - * @hide */ int BIOMETRIC_ERROR_RE_ENROLL = 16; /** * Unknown error received from the HAL. - * @hide */ int FACE_ERROR_UNKNOWN = 17; /** - * @hide + * Vendor codes received from the HAL start at 0. Codes that the framework exposes to keyguard + * append this value for some reason. We should probably remove this and just send the actual + * vendor code. */ int FACE_ERROR_VENDOR_BASE = 1000; @@ -203,9 +195,6 @@ public interface BiometricFaceConstants { // existing constants. These must agree with face@1.0/types.hal. // - /** - * @hide - */ @IntDef({FACE_ACQUIRED_GOOD, FACE_ACQUIRED_INSUFFICIENT, FACE_ACQUIRED_TOO_BRIGHT, @@ -229,7 +218,10 @@ public interface BiometricFaceConstants { FACE_ACQUIRED_START, FACE_ACQUIRED_SENSOR_DIRTY, FACE_ACQUIRED_VENDOR, - FACE_ACQUIRED_UNKNOWN}) + FACE_ACQUIRED_UNKNOWN, + FACE_ACQUIRED_FIRST_FRAME_RECEIVED, + FACE_ACQUIRED_DARK_GLASSES_DETECTED, + FACE_ACQUIRED_MOUTH_COVERING_DETECTED}) @Retention(RetentionPolicy.SOURCE) @interface FaceAcquired {} @@ -402,19 +394,35 @@ public interface BiometricFaceConstants { /** * Hardware vendors may extend this list if there are conditions that do not fall under one of * the above categories. Vendors are responsible for providing error strings for these errors. - * - * @hide */ int FACE_ACQUIRED_VENDOR = 22; /** * Unknown acquired code received from the HAL. - * @hide */ int FACE_ACQUIRED_UNKNOWN = 23; /** - * @hide + * The first frame from the camera has been received. + */ + int FACE_ACQUIRED_FIRST_FRAME_RECEIVED = 24; + + /** + * Dark glasses detected. This can be useful for providing relevant feedback to the user and + * enabling an alternative authentication logic if the implementation supports it. + */ + int FACE_ACQUIRED_DARK_GLASSES_DETECTED = 25; + + /** + * A face mask or face covering detected. This can be useful for providing relevant feedback to + * the user and enabling an alternative authentication logic if the implementation supports it. + */ + int FACE_ACQUIRED_MOUTH_COVERING_DETECTED = 26; + + /** + * Vendor codes received from the HAL start at 0. Codes that the framework exposes to keyguard + * append this value for some reason. We should probably remove this and just send the actual + * vendor code. */ int FACE_ACQUIRED_VENDOR_BASE = 1000; } diff --git a/core/java/android/hardware/face/FaceDataFrame.java b/core/java/android/hardware/face/FaceDataFrame.java index 092359c99173..4dbfc85f0969 100644 --- a/core/java/android/hardware/face/FaceDataFrame.java +++ b/core/java/android/hardware/face/FaceDataFrame.java @@ -17,6 +17,7 @@ package android.hardware.face; import android.annotation.NonNull; +import android.hardware.biometrics.BiometricFaceConstants; import android.os.Parcel; import android.os.Parcelable; @@ -26,7 +27,7 @@ import android.os.Parcelable; * @hide */ public final class FaceDataFrame implements Parcelable { - private final int mAcquiredInfo; + @BiometricFaceConstants.FaceAcquired private final int mAcquiredInfo; private final int mVendorCode; private final float mPan; private final float mTilt; @@ -48,7 +49,7 @@ public final class FaceDataFrame implements Parcelable { * @param isCancellable Whether the ongoing face operation should be canceled. */ public FaceDataFrame( - int acquiredInfo, + @BiometricFaceConstants.FaceAcquired int acquiredInfo, int vendorCode, float pan, float tilt, @@ -69,7 +70,7 @@ public final class FaceDataFrame implements Parcelable { * @param vendorCode An integer representing a custom vendor-specific message. Ignored unless * {@code acquiredInfo} is {@code FACE_ACQUIRED_VENDOR}. */ - public FaceDataFrame(int acquiredInfo, int vendorCode) { + public FaceDataFrame(@BiometricFaceConstants.FaceAcquired int acquiredInfo, int vendorCode) { mAcquiredInfo = acquiredInfo; mVendorCode = vendorCode; mPan = 0f; @@ -83,6 +84,7 @@ public final class FaceDataFrame implements Parcelable { * * @see android.hardware.biometrics.BiometricFaceConstants */ + @BiometricFaceConstants.FaceAcquired public int getAcquiredInfo() { return mAcquiredInfo; } diff --git a/core/java/android/hardware/face/FaceManager.java b/core/java/android/hardware/face/FaceManager.java index 55c90ce2a32f..12557f9b73eb 100644 --- a/core/java/android/hardware/face/FaceManager.java +++ b/core/java/android/hardware/face/FaceManager.java @@ -1449,6 +1449,8 @@ public class FaceManager implements BiometricAuthenticator, BiometricFaceConstan case FACE_ACQUIRED_ROLL_TOO_EXTREME: return context.getString(R.string.face_acquired_roll_too_extreme); case FACE_ACQUIRED_FACE_OBSCURED: + case FACE_ACQUIRED_DARK_GLASSES_DETECTED: + case FACE_ACQUIRED_MOUTH_COVERING_DETECTED: return context.getString(R.string.face_acquired_obscured); case FACE_ACQUIRED_SENSOR_DIRTY: return context.getString(R.string.face_acquired_sensor_dirty); diff --git a/core/java/android/os/BinderProxy.java b/core/java/android/os/BinderProxy.java index 2a9b703583a6..d44b016cb5d0 100644 --- a/core/java/android/os/BinderProxy.java +++ b/core/java/android/os/BinderProxy.java @@ -565,8 +565,7 @@ public final class BinderProxy implements IBinder { } try { - boolean replyOwnsNative = (reply == null) ? false : reply.ownsNativeParcelObject(); - return transactNative(code, data, reply, replyOwnsNative, flags); + return transactNative(code, data, reply, flags); } finally { if (transactListener != null) { transactListener.onTransactEnded(session); @@ -589,7 +588,7 @@ public final class BinderProxy implements IBinder { * Native implementation of transact() for proxies */ public native boolean transactNative(int code, Parcel data, Parcel reply, - boolean replyOwnsNativeParcelObject, int flags) throws RemoteException; + int flags) throws RemoteException; /** * See {@link IBinder#linkToDeath(DeathRecipient, int)} */ diff --git a/core/java/android/os/HidlMemoryUtil.java b/core/java/android/os/HidlMemoryUtil.java index 4252fe30f4ad..a1b2aef5884a 100644 --- a/core/java/android/os/HidlMemoryUtil.java +++ b/core/java/android/os/HidlMemoryUtil.java @@ -76,8 +76,7 @@ public final class HidlMemoryUtil { return new HidlMemory("ashmem", 0, null); } - try { - SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length); + try (SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.length)) { ByteBuffer buffer = shmem.mapReadWrite(); buffer.put(input); shmem.unmap(buffer); @@ -119,8 +118,7 @@ public final class HidlMemoryUtil { return new HidlMemory("ashmem", 0, null); } - try { - SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size()); + try (SharedMemory shmem = SharedMemory.create(name != null ? name : "", input.size())) { ByteBuffer buffer = shmem.mapReadWrite(); for (Byte b : input) { buffer.put(b); @@ -214,8 +212,12 @@ public final class HidlMemoryUtil { if (fd == null) { return new HidlMemory("ashmem", 0, null); } - NativeHandle handle = new NativeHandle(fd, true); - return new HidlMemory("ashmem", size, handle); + try { + NativeHandle handle = new NativeHandle(Os.dup(fd), true); + return new HidlMemory("ashmem", size, handle); + } catch (ErrnoException e) { + throw new RuntimeException(e); + } } private static ByteBuffer getBuffer(@NonNull HidlMemory mem) { diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index 50f390bce890..e06e7b6be90a 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -3736,9 +3736,4 @@ public final class Parcel { public long getBlobAshmemSize() { return nativeGetBlobAshmemSize(mNativePtr); } - - /** @hide */ - /*package*/ boolean ownsNativeParcelObject() { - return mOwnsNativeParcelObject; - } } diff --git a/core/java/android/service/voice/HotwordDetectionService.java b/core/java/android/service/voice/HotwordDetectionService.java index 7dd3a1dd5ea7..deb6c01a3088 100644 --- a/core/java/android/service/voice/HotwordDetectionService.java +++ b/core/java/android/service/voice/HotwordDetectionService.java @@ -192,6 +192,11 @@ public abstract class HotwordDetectionService extends Service { mContentCaptureManager = new ContentCaptureManager( HotwordDetectionService.this, manager, options); } + + @Override + public void stopDetection() { + HotwordDetectionService.this.onStopDetection(); + } }; @Override @@ -349,6 +354,15 @@ public abstract class HotwordDetectionService extends Service { } /** + * Called when the {@link VoiceInteractionService} + * {@link HotwordDetector#stopRecognition() requests} that hotword recognition be stopped. + * <p> + * Any open {@link android.media.AudioRecord} should be closed here. + */ + public void onStopDetection() { + } + + /** * Callback for returning the detection result. * * @hide diff --git a/core/java/android/service/voice/HotwordRejectedResult.java b/core/java/android/service/voice/HotwordRejectedResult.java index 78664f604093..7b3f47d04e48 100644 --- a/core/java/android/service/voice/HotwordRejectedResult.java +++ b/core/java/android/service/voice/HotwordRejectedResult.java @@ -29,7 +29,7 @@ import com.android.internal.util.DataClass; */ @DataClass( genConstructor = false, - genHiddenBuilder = true, + genBuilder = true, genEqualsHashCode = true, genHiddenConstDefs = true, genParcelable = true, @@ -210,7 +210,6 @@ public final class HotwordRejectedResult implements Parcelable { /** * A builder for {@link HotwordRejectedResult} - * @hide */ @SuppressWarnings("WeakerAccess") @DataClass.Generated.Member @@ -256,10 +255,10 @@ public final class HotwordRejectedResult implements Parcelable { } @DataClass.Generated( - time = 1621551683210L, + time = 1621961370106L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/service/voice/HotwordRejectedResult.java", - inputSignatures = "public static final int CONFIDENCE_LEVEL_NONE\npublic static final int CONFIDENCE_LEVEL_LOW\npublic static final int CONFIDENCE_LEVEL_MEDIUM\npublic static final int CONFIDENCE_LEVEL_HIGH\nprivate final @android.service.voice.HotwordRejectedResult.HotwordConfidenceLevelValue int mConfidenceLevel\nprivate static int defaultConfidenceLevel()\nclass HotwordRejectedResult extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genHiddenBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)") + inputSignatures = "public static final int CONFIDENCE_LEVEL_NONE\npublic static final int CONFIDENCE_LEVEL_LOW\npublic static final int CONFIDENCE_LEVEL_MEDIUM\npublic static final int CONFIDENCE_LEVEL_HIGH\nprivate final @android.service.voice.HotwordRejectedResult.HotwordConfidenceLevelValue int mConfidenceLevel\nprivate static int defaultConfidenceLevel()\nclass HotwordRejectedResult extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genConstructor=false, genBuilder=true, genEqualsHashCode=true, genHiddenConstDefs=true, genParcelable=true, genToString=true)") @Deprecated private void __metadata() {} diff --git a/core/java/android/service/voice/IHotwordDetectionService.aidl b/core/java/android/service/voice/IHotwordDetectionService.aidl index 7ba00982e6a2..72dd45aeeb0f 100644 --- a/core/java/android/service/voice/IHotwordDetectionService.aidl +++ b/core/java/android/service/voice/IHotwordDetectionService.aidl @@ -53,4 +53,6 @@ oneway interface IHotwordDetectionService { void updateContentCaptureManager( in IContentCaptureManager contentCaptureManager, in ContentCaptureOptions options); + + void stopDetection(); } diff --git a/core/java/android/view/translation/TranslationRequest.java b/core/java/android/view/translation/TranslationRequest.java index da1baf9a89d8..df4836ebde46 100644 --- a/core/java/android/view/translation/TranslationRequest.java +++ b/core/java/android/view/translation/TranslationRequest.java @@ -327,7 +327,9 @@ public final class TranslationRequest implements Parcelable { return this; } - /** @see #setTranslationRequestValues */ + /** @see #setTranslationRequestValues + * @removed + */ @DataClass.Generated.Member @Override @Deprecated @@ -350,7 +352,9 @@ public final class TranslationRequest implements Parcelable { return this; } - /** @see #setViewTranslationRequests */ + /** @see #setViewTranslationRequests + * @removed + */ @DataClass.Generated.Member @Override @Deprecated diff --git a/core/java/android/view/translation/TranslationResponse.java b/core/java/android/view/translation/TranslationResponse.java index 7d23e1976837..b77f2e282650 100644 --- a/core/java/android/view/translation/TranslationResponse.java +++ b/core/java/android/view/translation/TranslationResponse.java @@ -367,6 +367,7 @@ public final class TranslationResponse implements Parcelable { /** * The translation result status code. + * @removed */ @DataClass.Generated.Member @Override @@ -447,7 +448,7 @@ public final class TranslationResponse implements Parcelable { } @DataClass.Generated( - time = 1620089618357L, + time = 1621972659130L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/view/translation/TranslationResponse.java", inputSignatures = "public static final int TRANSLATION_STATUS_SUCCESS\npublic static final int TRANSLATION_STATUS_UNKNOWN_ERROR\npublic static final int TRANSLATION_STATUS_CONTEXT_UNSUPPORTED\nprivate final @android.view.translation.TranslationResponse.TranslationStatus int mTranslationStatus\nprivate final @android.annotation.NonNull android.util.SparseArray<android.view.translation.TranslationResponseValue> mTranslationResponseValues\nprivate final @android.annotation.NonNull android.util.SparseArray<android.view.translation.ViewTranslationResponse> mViewTranslationResponses\nprivate final boolean mFinalResponse\nprivate static android.util.SparseArray<android.view.translation.TranslationResponseValue> defaultTranslationResponseValues()\nprivate static android.util.SparseArray<android.view.translation.ViewTranslationResponse> defaultViewTranslationResponses()\nprivate static boolean defaultFinalResponse()\nclass TranslationResponse extends java.lang.Object implements [android.os.Parcelable]\npublic abstract @java.lang.Deprecated android.view.translation.TranslationResponse.Builder setTranslationStatus(int)\npublic @android.annotation.NonNull @java.lang.SuppressWarnings android.view.translation.TranslationResponse.Builder setTranslationResponseValue(int,android.view.translation.TranslationResponseValue)\npublic @android.annotation.NonNull @java.lang.SuppressWarnings android.view.translation.TranslationResponse.Builder setViewTranslationResponse(int,android.view.translation.ViewTranslationResponse)\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=true, genToString=true, genHiddenConstDefs=true)\npublic abstract @java.lang.Deprecated android.view.translation.TranslationResponse.Builder setTranslationStatus(int)\npublic @android.annotation.NonNull @java.lang.SuppressWarnings android.view.translation.TranslationResponse.Builder setTranslationResponseValue(int,android.view.translation.TranslationResponseValue)\npublic @android.annotation.NonNull @java.lang.SuppressWarnings android.view.translation.TranslationResponse.Builder setViewTranslationResponse(int,android.view.translation.ViewTranslationResponse)\nclass BaseBuilder extends java.lang.Object implements []") diff --git a/core/java/android/view/translation/TranslationResponseValue.java b/core/java/android/view/translation/TranslationResponseValue.java index a68ae5658b37..e2ef5d341c82 100644 --- a/core/java/android/view/translation/TranslationResponseValue.java +++ b/core/java/android/view/translation/TranslationResponseValue.java @@ -49,7 +49,24 @@ public final class TranslationResponseValue implements Parcelable { * <p>The dictionary definitions consists of groups of terms keyed by their corresponding parts * of speech. This map-like structure is stored in a {@link Bundle}. The individual parts of * speech can be traversed by {@link Bundle#keySet()} and used to get the corresponding list - * of terms as {@link CharSequence}s.</p> + * of terms as {@link CharSequence}s. + * + * <ul> + * <li>"noun" -> ["def1", "def2", ...]</li> + * <li>"verb" -> ["def3", "def4", ...]</li> + * <li>...</li> + * </ul> + * + * The set of parts of speech can then be used by + * {@link Bundle#getCharSequenceArrayList(String)} to get the list of terms. + * + * <b>Example</b>: + * + * {@code for (String partOfSpeech : extras.getBundle(EXTRA_DEFINITIONS).keySet()) { + * ArrayList<CharSequence> terms = + * extras.getBundle(EXTRA_DEFINITIONS).getCharSequenceArrayList(partOfSpeech); + * ... + * }}</p> */ public static final String EXTRA_DEFINITIONS = "android.view.translation.extra.DEFINITIONS"; @@ -70,7 +87,8 @@ public final class TranslationResponseValue implements Parcelable { /** * Extra results associated with the translated text. * - * <p>The bundle includes {@link #EXTRA_DEFINITIONS}, obtained by {@link Bundle#getBundle}.</p> + * <p>The bundle includes {@link #EXTRA_DEFINITIONS}, obtained by {@link Bundle#getBundle}. + * </p> */ @NonNull private final Bundle mExtras; @@ -190,7 +208,8 @@ public final class TranslationResponseValue implements Parcelable { /** * Extra results associated with the translated text. * - * <p>The bundle includes {@link #EXTRA_DEFINITIONS}, obtained by {@link Bundle#getBundle}.</p> + * <p>The bundle includes {@link #EXTRA_DEFINITIONS}, obtained by {@link Bundle#getBundle}. + * </p> */ @DataClass.Generated.Member public @NonNull Bundle getExtras() { @@ -370,7 +389,8 @@ public final class TranslationResponseValue implements Parcelable { /** * Extra results associated with the translated text. * - * <p>The bundle includes {@link #EXTRA_DEFINITIONS}, obtained by {@link Bundle#getBundle}.</p> + * <p>The bundle includes {@link #EXTRA_DEFINITIONS}, obtained by {@link Bundle#getBundle}. + * </p> */ @DataClass.Generated.Member public @NonNull Builder setExtras(@NonNull Bundle value) { @@ -423,7 +443,7 @@ public final class TranslationResponseValue implements Parcelable { } @DataClass.Generated( - time = 1621034223313L, + time = 1621623218037L, codegenVersion = "1.0.23", sourceFile = "frameworks/base/core/java/android/view/translation/TranslationResponseValue.java", inputSignatures = "public static final int STATUS_SUCCESS\npublic static final int STATUS_ERROR\npublic static final java.lang.String EXTRA_DEFINITIONS\nprivate final @android.view.translation.TranslationResponseValue.Status int mStatusCode\nprivate final @android.annotation.Nullable java.lang.CharSequence mText\nprivate final @android.annotation.NonNull android.os.Bundle mExtras\nprivate final @android.annotation.Nullable java.lang.CharSequence mTransliteration\npublic static @android.annotation.NonNull android.view.translation.TranslationResponseValue forError()\nprivate static java.lang.CharSequence defaultText()\nprivate static android.os.Bundle defaultExtras()\nprivate static java.lang.CharSequence defaultTransliteration()\nclass TranslationResponseValue extends java.lang.Object implements [android.os.Parcelable]\nclass BaseBuilder extends java.lang.Object implements []\n@com.android.internal.util.DataClass(genBuilder=true, genToString=true, genEqualsHashCode=true, genHiddenConstDefs=true)\nclass BaseBuilder extends java.lang.Object implements []") diff --git a/core/jni/android_os_Parcel.cpp b/core/jni/android_os_Parcel.cpp index 3acbd1ecd16e..787d34822ef7 100644 --- a/core/jni/android_os_Parcel.cpp +++ b/core/jni/android_os_Parcel.cpp @@ -36,7 +36,6 @@ #include <utils/List.h> #include <utils/KeyedVector.h> #include <binder/Parcel.h> -#include <binder/ParcelRef.h> #include <binder/ProcessState.h> #include <binder/IServiceManager.h> #include <utils/threads.h> @@ -516,9 +515,8 @@ static jobject android_os_Parcel_readFileDescriptor(JNIEnv* env, jclass clazz, j static jlong android_os_Parcel_create(JNIEnv* env, jclass clazz) { - sp<ParcelRef> parcelRef = ParcelRef::create(); - parcelRef->incStrong(reinterpret_cast<const void*>(android_os_Parcel_create)); - return reinterpret_cast<jlong>(static_cast<Parcel *>(parcelRef.get())); + Parcel* parcel = new Parcel(); + return reinterpret_cast<jlong>(parcel); } static void android_os_Parcel_freeBuffer(JNIEnv* env, jclass clazz, jlong nativePtr) @@ -531,8 +529,8 @@ static void android_os_Parcel_freeBuffer(JNIEnv* env, jclass clazz, jlong native static void android_os_Parcel_destroy(JNIEnv* env, jclass clazz, jlong nativePtr) { - ParcelRef* derivative = static_cast<ParcelRef*>(reinterpret_cast<Parcel*>(nativePtr)); - derivative->decStrong(reinterpret_cast<const void*>(android_os_Parcel_create)); + Parcel* parcel = reinterpret_cast<Parcel*>(nativePtr); + delete parcel; } static jbyteArray android_os_Parcel_marshall(JNIEnv* env, jclass clazz, jlong nativePtr) diff --git a/core/jni/android_util_Binder.cpp b/core/jni/android_util_Binder.cpp index 29f8ccf37654..793b4eba788c 100644 --- a/core/jni/android_util_Binder.cpp +++ b/core/jni/android_util_Binder.cpp @@ -35,7 +35,6 @@ #include <binder/IPCThreadState.h> #include <binder/IServiceManager.h> #include <binder/Parcel.h> -#include <binder/ParcelRef.h> #include <binder/ProcessState.h> #include <binder/Stability.h> #include <binderthreadstate/CallerUtils.h> @@ -1381,8 +1380,7 @@ static bool should_time_binder_calls() { } static jboolean android_os_BinderProxy_transact(JNIEnv* env, jobject obj, - jint code, jobject dataObj, jobject replyObj, jboolean replyObjOwnsNativeParcel, - jint flags) // throws RemoteException + jint code, jobject dataObj, jobject replyObj, jint flags) // throws RemoteException { if (dataObj == NULL) { jniThrowNullPointerException(env, NULL); @@ -1424,21 +1422,6 @@ static jboolean android_os_BinderProxy_transact(JNIEnv* env, jobject obj, status_t err = target->transact(code, *data, reply, flags); //if (reply) printf("Transact from Java code to %p received: ", target); reply->print(); - if (reply) { - if (replyObjOwnsNativeParcel) { - // as per Parcel java class constructor, here, "reply" MUST be a "ParcelRef" - // only for Parcel that contained Binder objects - if (reply->objectsCount() > 0) { - IPCThreadState::self()->createTransactionReference(static_cast<ParcelRef*>(reply)); - } - } else { - // as per Parcel.java, if Parcel java object NOT owning native Parcel object, it will - // NOT destroy the native Parcel object upon GC(finalize()), so, there will be no race - // condtion in this case. Please refer to the java class methods: Parcel.finalize(), - // Parcel.destroy(). - } - } - if (kEnableBinderSample) { if (time_binder_calls) { conditionally_log_binder_call(start_millis, target, code); @@ -1567,7 +1550,7 @@ static const JNINativeMethod gBinderProxyMethods[] = { {"pingBinder", "()Z", (void*)android_os_BinderProxy_pingBinder}, {"isBinderAlive", "()Z", (void*)android_os_BinderProxy_isBinderAlive}, {"getInterfaceDescriptor", "()Ljava/lang/String;", (void*)android_os_BinderProxy_getInterfaceDescriptor}, - {"transactNative", "(ILandroid/os/Parcel;Landroid/os/Parcel;ZI)Z", (void*)android_os_BinderProxy_transact}, + {"transactNative", "(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z", (void*)android_os_BinderProxy_transact}, {"linkToDeath", "(Landroid/os/IBinder$DeathRecipient;I)V", (void*)android_os_BinderProxy_linkToDeath}, {"unlinkToDeath", "(Landroid/os/IBinder$DeathRecipient;I)Z", (void*)android_os_BinderProxy_unlinkToDeath}, {"getNativeFinalizer", "()J", (void*)android_os_BinderProxy_getNativeFinalizer}, diff --git a/core/res/res/color/text_color_on_accent_device_default.xml b/core/res/res/color/text_color_on_accent_device_default.xml new file mode 100644 index 000000000000..1379523258de --- /dev/null +++ b/core/res/res/color/text_color_on_accent_device_default.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2021 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> +<!-- Please see primary_text_material_light.xml --> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_enabled="false" + android:color="@color/system_neutral1_400"/> + <item android:color="@color/system_neutral1_900"/> +</selector> diff --git a/core/res/res/drawable/notification_material_media_action_background.xml b/core/res/res/drawable/notification_material_media_action_background.xml index 4f50f1519465..b4ec7fd8190c 100644 --- a/core/res/res/drawable/notification_material_media_action_background.xml +++ b/core/res/res/drawable/notification_material_media_action_background.xml @@ -16,4 +16,10 @@ --> <ripple xmlns:android="http://schemas.android.com/apk/res/android" - android:color="@color/ripple_material_light" /> + android:color="@color/ripple_material_light"> + <item android:id="@id/mask"> + <shape android:shape="oval"> + <solid android:color="#333" /> + </shape> + </item> +</ripple> diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index e975938d3f7f..a5f505176d5d 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -1137,6 +1137,9 @@ <!-- Darker accent color used on Material NEXT buttons. @hide --> <attr name="colorAccentPrimaryVariant" format="color" /> + <!-- Text color used on top of Material NEXT accent colors. @hide --> + <attr name="textColorOnAccent" format="color" /> + <!-- Secondary darker accent color used on Material NEXT buttons. @hide --> <attr name="colorAccentSecondaryVariant" format="color" /> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 28f18a4124de..1ddff3272b11 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -955,7 +955,7 @@ 4 - Go to voice assist 5 - Go to assistant (Settings.Secure.ASSISTANT) --> - <integer name="config_longPressOnPowerBehavior">1</integer> + <integer name="config_longPressOnPowerBehavior">5</integer> <!-- Whether the setting to change long press on power behaviour from default to assistant (5) is available in Settings. @@ -973,7 +973,7 @@ 1 - Mute toggle 2 - Global actions menu --> - <integer name="config_keyChordPowerVolumeUp">1</integer> + <integer name="config_keyChordPowerVolumeUp">2</integer> <!-- Control the behavior when the user long presses the back button. Non-zero values are only valid for watches as part of CDD/CTS. diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 52892431fc8e..b33a2819b55d 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -1594,7 +1594,7 @@ <!-- Message shown during fingerprint acquisision when the fingerprint sensor needs cleaning --> <string name="fingerprint_acquired_imager_dirty">Clean the sensor</string> <!-- Message shown during fingerprint acquisision when the user removes their finger from the sensor too quickly --> - <string name="fingerprint_acquired_too_fast">Finger moved too fast</string> + <string name="fingerprint_acquired_too_fast">Hold a little longer</string> <!-- Message shown during fingerprint acquisision when the user moves their finger too slowly --> <string name="fingerprint_acquired_too_slow">Finger moved too slow. Please try again.</string> <!-- Message shown during fingerprint acquisition when the fingerprint was already enrolled.[CHAR LIMIT=50] --> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index d86c6e727048..4da5859fa49b 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -4274,6 +4274,7 @@ <java-symbol type="attr" name="colorSurfaceHighlight" format="color" /> <java-symbol type="attr" name="colorSurfaceVariant" format="color" /> <java-symbol type="attr" name="colorSurfaceHeader" format="color" /> + <java-symbol type="attr" name="textColorOnAccent" format="color" /> <!-- CEC Configuration --> <java-symbol type="bool" name="config_cecHdmiCecEnabled_userConfigurable" /> diff --git a/core/res/res/values/themes_device_defaults.xml b/core/res/res/values/themes_device_defaults.xml index 41bedb2ed43c..97acd5b9bf1e 100644 --- a/core/res/res/values/themes_device_defaults.xml +++ b/core/res/res/values/themes_device_defaults.xml @@ -232,6 +232,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> </style> @@ -260,6 +261,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -305,6 +307,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -352,6 +355,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -398,6 +402,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -459,6 +464,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -497,6 +503,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -541,6 +548,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -586,6 +594,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -647,6 +656,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -693,6 +703,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -737,6 +748,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -783,6 +795,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -828,6 +841,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -873,6 +887,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -918,6 +933,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -963,6 +979,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1012,6 +1029,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -1058,6 +1076,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -1101,6 +1120,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -1298,6 +1318,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> <item name="colorPopupBackground">?attr/colorBackgroundFloating</item> @@ -1327,6 +1348,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1371,6 +1393,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1416,6 +1439,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1463,6 +1487,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1509,6 +1534,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1572,6 +1598,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1609,6 +1636,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1656,6 +1684,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1704,6 +1733,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1751,6 +1781,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> </style> @@ -1780,6 +1811,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> </style> @@ -1810,6 +1842,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1859,6 +1892,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1906,6 +1940,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1952,6 +1987,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -1997,6 +2033,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -2042,6 +2079,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -2085,6 +2123,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -2246,6 +2285,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_dark</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_dark</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_dark</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_dark</item> <item name="colorForegroundInverse">@color/foreground_device_default_light</item> @@ -2290,6 +2330,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -2344,6 +2385,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> @@ -2391,6 +2433,7 @@ easier. <item name="textColorPrimary">@color/text_color_primary_device_default_light</item> <item name="textColorSecondary">@color/text_color_secondary_device_default_light</item> <item name="textColorTertiary">@color/text_color_tertiary_device_default_light</item> + <item name="textColorOnAccent">@color/text_color_on_accent_device_default</item> <item name="colorForeground">@color/foreground_device_default_light</item> <item name="colorForegroundInverse">@color/foreground_device_default_dark</item> diff --git a/framework-jarjar-rules.txt b/framework-jarjar-rules.txt index 52ee63a15a63..be21f4e87101 100644 --- a/framework-jarjar-rules.txt +++ b/framework-jarjar-rules.txt @@ -1,3 +1,7 @@ +# This rule is meant to be reused across libraries in the bootclasspath that depend +# on the HIDL libraries. rule android.hidl.** android.internal.hidl.@1 + +# Framework-specific renames. rule android.net.wifi.WifiAnnotations* android.internal.wifi.WifiAnnotations@1 rule com.android.server.vcn.util.** com.android.server.vcn.repackaged.util.@1 diff --git a/packages/SettingsLib/AppPreference/res/layout/preference_app.xml b/packages/SettingsLib/AppPreference/res/layout/preference_app.xml index 657a12cd13de..e65f7de2466a 100644 --- a/packages/SettingsLib/AppPreference/res/layout/preference_app.xml +++ b/packages/SettingsLib/AppPreference/res/layout/preference_app.xml @@ -90,7 +90,7 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center_vertical|end" - android:minWidth="64dp" + android:minWidth="@dimen/two_target_min_width" android:orientation="vertical"/> </LinearLayout> diff --git a/packages/SettingsLib/MainSwitchPreference/Android.bp b/packages/SettingsLib/MainSwitchPreference/Android.bp index 4ce854ada849..23ee49e70595 100644 --- a/packages/SettingsLib/MainSwitchPreference/Android.bp +++ b/packages/SettingsLib/MainSwitchPreference/Android.bp @@ -15,6 +15,7 @@ android_library { static_libs: [ "androidx.preference_preference", + "SettingsLibSettingsTheme", ], sdk_version: "system_current", diff --git a/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml b/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml index 9ca3683dfd31..58ab9921f9f7 100644 --- a/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml +++ b/packages/SettingsLib/MainSwitchPreference/res/values-night/colors.xml @@ -18,13 +18,4 @@ <resources> <color name="settingslib_switchbar_switch_track_tint">#82000000</color> <color name="settingslib_switchbar_switch_thumb_tint">@android:color/black</color> - - <!-- Material next thumb off color--> - <color name="settingslib_thumb_off_color">@android:color/system_neutral2_300</color> - - <!-- Material next track on color--> - <color name="settingslib_track_on_color">@android:color/system_accent2_700</color> - - <!-- Material next track off color--> - <color name="settingslib_track_off_color">@android:color/system_neutral1_700</color> </resources> diff --git a/packages/SettingsLib/MainSwitchPreference/res/values/colors.xml b/packages/SettingsLib/MainSwitchPreference/res/values/colors.xml index 2c73238da254..0c95a9ec65e1 100644 --- a/packages/SettingsLib/MainSwitchPreference/res/values/colors.xml +++ b/packages/SettingsLib/MainSwitchPreference/res/values/colors.xml @@ -19,19 +19,4 @@ <color name="settingslib_switchbar_background_color">@*android:color/material_grey_600</color> <color name="settingslib_switchbar_switch_track_tint">#BFFFFFFF</color> <color name="settingslib_switchbar_switch_thumb_tint">@android:color/white</color> - - <!-- Material next state on color--> - <color name="settingslib_state_on_color">?androidprv:attr/colorAccentPrimary</color> - - <!-- Material next state off color--> - <color name="settingslib_state_off_color">?androidprv:attr/colorAccentSecondary</color> - - <!-- Material next thumb off color--> - <color name="settingslib_thumb_off_color">@android:color/system_neutral2_100</color> - - <!-- Material next track on color--> - <color name="settingslib_track_on_color">?androidprv:attr/colorAccentPrimaryVariant</color> - - <!-- Material next track off color--> - <color name="settingslib_track_off_color">@android:color/system_neutral2_600</color> </resources> diff --git a/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml b/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml index e92b6716976e..b299061ce591 100644 --- a/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml +++ b/packages/SettingsLib/RadioButtonPreference/res/layout/preference_radio.xml @@ -58,13 +58,14 @@ android:layout_weight="1" android:orientation="vertical" android:paddingTop="16dp" - android:paddingBottom="16dp"> + android:paddingBottom="16dp" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"> <TextView android:id="@android:id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:singleLine="true" + android:maxLines="2" android:textAppearance="?android:attr/textAppearanceListItem"/> <LinearLayout @@ -109,12 +110,13 @@ android:background="?android:attr/dividerVertical" /> <ImageView android:id="@+id/radio_extra_widget" - android:layout_width="wrap_content" + android:layout_width="match_parent" + android:minWidth="@dimen/two_target_min_width" android:layout_height="fill_parent" android:src="@drawable/ic_settings_accent" android:contentDescription="@string/settings_label" - android:paddingStart="16dp" - android:paddingEnd="16dp" + android:paddingStart="24dp" + android:paddingEnd="24dp" android:layout_gravity="center" android:background="?android:attr/selectableItemBackground" /> </LinearLayout> diff --git a/packages/SettingsLib/SettingsTheme/res/color-v31/settingslib_switch_thumb_color.xml b/packages/SettingsLib/SettingsTheme/res/color-v31/settingslib_switch_thumb_color.xml new file mode 100644 index 000000000000..df3bad4ee377 --- /dev/null +++ b/packages/SettingsLib/SettingsTheme/res/color-v31/settingslib_switch_thumb_color.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Disabled status of thumb --> + <item android:state_enabled="false" + android:color="@color/settingslib_thumb_off_color" /> + <!-- Toggle off status of thumb --> + <item android:state_checked="false" + android:color="@color/settingslib_thumb_off_color" /> + <!-- Enabled or toggle on status of thumb --> + <item android:color="@color/settingslib_state_on_color" /> +</selector>
\ No newline at end of file diff --git a/packages/SettingsLib/SettingsTheme/res/color-v31/settingslib_switch_track_color.xml b/packages/SettingsLib/SettingsTheme/res/color-v31/settingslib_switch_track_color.xml new file mode 100644 index 000000000000..9568f52dcd01 --- /dev/null +++ b/packages/SettingsLib/SettingsTheme/res/color-v31/settingslib_switch_track_color.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Disabled status of thumb --> + <item android:state_enabled="false" + android:color="@color/settingslib_track_off_color" + android:alpha="?android:attr/disabledAlpha" /> + <!-- Toggle off status of thumb --> + <item android:state_checked="false" + android:color="@color/settingslib_track_off_color" /> + <!-- Enabled or toggle on status of thumb --> + <item android:color="@color/settingslib_track_on_color" /> +</selector>
\ No newline at end of file diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v31/settingslib_switch_thumb.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v31/settingslib_switch_thumb.xml new file mode 100644 index 000000000000..87c6dea49e2b --- /dev/null +++ b/packages/SettingsLib/SettingsTheme/res/drawable-v31/settingslib_switch_thumb.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item + android:top="4dp" + android:left="4dp" + android:right="4dp" + android:bottom="4dp"> + <shape android:shape="oval" > + <size android:height="20dp" android:width="20dp" /> + <solid android:color="@color/settingslib_switch_thumb_color" /> + </shape> + </item> +</layer-list>
\ No newline at end of file diff --git a/packages/SettingsLib/SettingsTheme/res/drawable-v31/settingslib_switch_track.xml b/packages/SettingsLib/SettingsTheme/res/drawable-v31/settingslib_switch_track.xml new file mode 100644 index 000000000000..cb8f3f09201c --- /dev/null +++ b/packages/SettingsLib/SettingsTheme/res/drawable-v31/settingslib_switch_track.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2021 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<shape + xmlns:android="http://schemas.android.com/apk/res/android" + android:shape="rectangle" + android:width="52dp" + android:height="28dp"> + + <solid android:color="@color/settingslib_switch_track_color" /> + <corners android:radius="35dp" /> +</shape>
\ No newline at end of file diff --git a/packages/SettingsLib/SettingsTheme/res/values-night-v31/colors.xml b/packages/SettingsLib/SettingsTheme/res/values-night-v31/colors.xml new file mode 100644 index 000000000000..df0e3e1d9641 --- /dev/null +++ b/packages/SettingsLib/SettingsTheme/res/values-night-v31/colors.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2020 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> + <!-- Material next thumb off color--> + <color name="settingslib_thumb_off_color">@android:color/system_neutral2_300</color> + + <!-- Material next track on color--> + <color name="settingslib_track_on_color">@android:color/system_accent2_700</color> + + <!-- Material next track off color--> + <color name="settingslib_track_off_color">@android:color/system_neutral1_700</color> +</resources>
\ No newline at end of file diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/colors.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/colors.xml new file mode 100644 index 000000000000..c9bc583b209f --- /dev/null +++ b/packages/SettingsLib/SettingsTheme/res/values-v31/colors.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2020 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + +<resources xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> + <!-- Material next state on color--> + <color name="settingslib_state_on_color">?androidprv:attr/colorAccentPrimary</color> + + <!-- Material next state off color--> + <color name="settingslib_state_off_color">?androidprv:attr/colorAccentSecondary</color> + + <!-- Material next thumb off color--> + <color name="settingslib_thumb_off_color">@android:color/system_neutral2_100</color> + + <!-- Material next track on color--> + <color name="settingslib_track_on_color">?androidprv:attr/colorAccentPrimaryVariant</color> + + <!-- Material next track off color--> + <color name="settingslib_track_off_color">@android:color/system_neutral2_600</color> +</resources> diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml index 83a259e624bd..e3a023995e76 100644 --- a/packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml +++ b/packages/SettingsLib/SettingsTheme/res/values-v31/styles.xml @@ -22,4 +22,10 @@ <style name="TextAppearance.CategoryTitle.SettingsLib" parent="@*android:style/TextAppearance.DeviceDefault.Body2" /> + + <style name="Switch.SettingsLib" parent="@android:style/Widget.Material.CompoundButton.Switch"> + <item name="android:switchMinWidth">52dp</item> + <item name="android:track">@drawable/settingslib_switch_track</item> + <item name="android:thumb">@drawable/settingslib_switch_thumb</item> + </style> </resources> diff --git a/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml b/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml index 69649e042ac4..adf506dc47cb 100644 --- a/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml +++ b/packages/SettingsLib/SettingsTheme/res/values-v31/themes.xml @@ -22,6 +22,7 @@ <item name="android:listPreferredItemPaddingStart">24dp</item> <item name="android:listPreferredItemPaddingEnd">16dp</item> <item name="preferenceTheme">@style/PreferenceTheme.SettingsLib</item> + <item name="android:switchStyle">@style/Switch.SettingsLib</item> </style> <!-- Using in SubSettings page including injected settings page --> diff --git a/packages/SettingsLib/SettingsTheme/res/values/dimens.xml b/packages/SettingsLib/SettingsTheme/res/values/dimens.xml index 3f473a3e0e85..25f9514c29b7 100644 --- a/packages/SettingsLib/SettingsTheme/res/values/dimens.xml +++ b/packages/SettingsLib/SettingsTheme/res/values/dimens.xml @@ -19,4 +19,5 @@ <dimen name="secondary_app_icon_size">32dp</dimen> <dimen name="app_preference_padding_start">?android:attr/listPreferredItemPaddingStart</dimen> <dimen name="app_icon_min_width">56dp</dimen> + <dimen name="two_target_min_width">72dp</dimen> </resources> diff --git a/packages/SettingsLib/Tile/src/com/android/settingslib/drawer/Tile.java b/packages/SettingsLib/Tile/src/com/android/settingslib/drawer/Tile.java index 52d2b3c919d9..8f3e4bd87aa7 100644 --- a/packages/SettingsLib/Tile/src/com/android/settingslib/drawer/Tile.java +++ b/packages/SettingsLib/Tile/src/com/android/settingslib/drawer/Tile.java @@ -19,7 +19,6 @@ package com.android.settingslib.drawer; import static com.android.settingslib.drawer.TileUtils.META_DATA_KEY_ORDER; import static com.android.settingslib.drawer.TileUtils.META_DATA_KEY_PROFILE; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON; -import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_ICON_URI; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_KEYHINT; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY; import static com.android.settingslib.drawer.TileUtils.META_DATA_PREFERENCE_SUMMARY_URI; @@ -301,16 +300,8 @@ public abstract class Tile implements Parcelable { } int iconResId = mMetaData.getInt(META_DATA_PREFERENCE_ICON); - // Set the icon - if (iconResId == 0) { - // Only fallback to componentInfo.icon if metadata does not contain ICON_URI. - // ICON_URI should be loaded in app UI when need the icon object. Handling IPC at this - // level is too complex because we don't have a strong threading contract for this class - if (!mMetaData.containsKey(META_DATA_PREFERENCE_ICON_URI)) { - iconResId = getComponentIcon(componentInfo); - } - } - if (iconResId != 0) { + // Set the icon. Skip the transparent color for backward compatibility since Android S. + if (iconResId != 0 && iconResId != android.R.color.transparent) { final Icon icon = Icon.createWithResource(componentInfo.packageName, iconResId); if (isIconTintable(context)) { final TypedArray a = context.obtainStyledAttributes(new int[]{ diff --git a/packages/SettingsLib/TwoTargetPreference/res/layout/preference_two_target.xml b/packages/SettingsLib/TwoTargetPreference/res/layout/preference_two_target.xml index 7978e73b9b37..2c2756b36533 100644 --- a/packages/SettingsLib/TwoTargetPreference/res/layout/preference_two_target.xml +++ b/packages/SettingsLib/TwoTargetPreference/res/layout/preference_two_target.xml @@ -63,7 +63,7 @@ android:id="@android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="match_parent" - android:minWidth="64dp" + android:minWidth="@dimen/two_target_min_width" android:gravity="center" android:orientation="vertical" /> diff --git a/packages/SettingsLib/res/layout/preference_access_point.xml b/packages/SettingsLib/res/layout/preference_access_point.xml index 9dc87de38ec2..f3f43accca3c 100644 --- a/packages/SettingsLib/res/layout/preference_access_point.xml +++ b/packages/SettingsLib/res/layout/preference_access_point.xml @@ -24,6 +24,8 @@ android:minHeight="?android:attr/listPreferredItemHeightSmall" android:gravity="center_vertical" android:background="?android:attr/selectableItemBackground" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:clipToPadding="false"> <LinearLayout @@ -31,9 +33,7 @@ android:layout_height="match_parent" android:layout_weight="1" android:gravity="start|center_vertical" - android:clipToPadding="false" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"> + android:clipToPadding="false"> <LinearLayout android:id="@+id/icon_frame" @@ -89,7 +89,7 @@ android:id="@android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="match_parent" - android:minWidth="64dp" + android:minWidth="@dimen/two_target_min_width" android:gravity="center" android:orientation="vertical" /> @@ -97,7 +97,7 @@ android:id="@+id/icon_button" android:layout_width="wrap_content" android:layout_height="match_parent" - android:minWidth="64dp" + android:minWidth="@dimen/two_target_min_width" android:minHeight="@dimen/min_tap_target_size" android:layout_gravity="center" android:background="?android:attr/selectableItemBackground" diff --git a/packages/SettingsLib/res/layout/preference_checkable_two_target.xml b/packages/SettingsLib/res/layout/preference_checkable_two_target.xml index 1ae1c8967679..e4f72422e408 100644 --- a/packages/SettingsLib/res/layout/preference_checkable_two_target.xml +++ b/packages/SettingsLib/res/layout/preference_checkable_two_target.xml @@ -24,6 +24,8 @@ android:minHeight="?android:attr/listPreferredItemHeightSmall" android:gravity="center_vertical" android:background="@android:color/transparent" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:clipToPadding="false"> <LinearLayout @@ -32,9 +34,7 @@ android:layout_weight="1" android:background="?android:attr/selectableItemBackground" android:gravity="start|center_vertical" - android:clipToPadding="false" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"> + android:clipToPadding="false"> <LinearLayout android:id="@+id/checkbox_container" @@ -86,7 +86,7 @@ android:id="@android:id/widget_frame" android:layout_width="wrap_content" android:layout_height="match_parent" - android:minWidth="64dp" + android:minWidth="@dimen/two_target_min_width" android:gravity="center" android:orientation="vertical" /> diff --git a/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java b/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java index bd0b9e93b09d..6cb60d1aaf0e 100644 --- a/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java +++ b/packages/SettingsLib/src/com/android/settingslib/core/instrumentation/MetricsFeatureProvider.java @@ -98,7 +98,7 @@ public class MetricsFeatureProvider { /** * Logs a simple action without page id or attribution */ - public void action(Context context, int category, Pair<Integer, Object>... taggedData) { + public void action(Context context, int category, Pair<Integer, Object>... taggedData) { for (LogWriter writer : mLoggerWriters) { writer.action(context, category, taggedData); } diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/ActivityTileTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/ActivityTileTest.java index 4f8ecf8f8823..aa6b0bf33b69 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/ActivityTileTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/ActivityTileTest.java @@ -105,11 +105,10 @@ public class ActivityTileTest { } @Test - public void getIcon_noIconMetadata_returnActivityIcon() { - mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_ICON, 0); + public void getIcon_transparentColorInMetadata_returnNull() { + mActivityInfo.metaData.putInt(META_DATA_PREFERENCE_ICON, android.R.color.transparent); - assertThat(mTile.getIcon(RuntimeEnvironment.application).getResId()) - .isEqualTo(mActivityInfo.icon); + assertThat(mTile.getIcon(RuntimeEnvironment.application)).isNull(); } @Test diff --git a/packages/SystemUI/res-keyguard/values-eu/strings.xml b/packages/SystemUI/res-keyguard/values-eu/strings.xml index 83a0a32f5eef..2742ac3de7a7 100644 --- a/packages/SystemUI/res-keyguard/values-eu/strings.xml +++ b/packages/SystemUI/res-keyguard/values-eu/strings.xml @@ -22,7 +22,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_name" msgid="514691256816366517">"Teklatu-babeslea"</string> <string name="keyguard_password_enter_pin_code" msgid="8582296866585566671">"Idatzi PIN kodea"</string> - <string name="keyguard_password_enter_puk_code" msgid="3813154965969758868">"Idatzi SIM txartelaren PUK kodea eta PIN kode berria"</string> + <string name="keyguard_password_enter_puk_code" msgid="3813154965969758868">"Idatzi SIM txartelaren PUKa eta PIN berria"</string> <string name="keyguard_password_enter_puk_prompt" msgid="3529260761374385243">"SIM txartelaren PUK kodea"</string> <string name="keyguard_password_enter_pin_prompt" msgid="2304037870481240781">"SIM txartelaren PIN berria"</string> <string name="keyguard_password_entry_touch_hint" msgid="6180028658339706333"><font size="17">"Pasahitza idazteko, sakatu hau"</font></string> @@ -31,7 +31,7 @@ <string name="keyguard_enter_your_pin" msgid="5429932527814874032">"Idatzi PIN kodea"</string> <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"Marraztu eredua"</string> <string name="keyguard_enter_your_password" msgid="7225626204122735501">"Idatzi pasahitza"</string> - <string name="keyguard_password_wrong_pin_code" msgid="3514267777289393046">"PIN kode hori ez da zuzena."</string> + <string name="keyguard_password_wrong_pin_code" msgid="3514267777289393046">"PINa ez da zuzena."</string> <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"Txartelak ez du balio."</string> <string name="keyguard_charged" msgid="5478247181205188995">"Kargatuta"</string> <string name="keyguard_plugged_in_wireless" msgid="2537874724955057383">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Hari gabe kargatzen"</string> diff --git a/packages/SystemUI/res-keyguard/values-lv/strings.xml b/packages/SystemUI/res-keyguard/values-lv/strings.xml index d6fdfaf17e27..88c52d9be8f7 100644 --- a/packages/SystemUI/res-keyguard/values-lv/strings.xml +++ b/packages/SystemUI/res-keyguard/values-lv/strings.xml @@ -39,7 +39,7 @@ <string name="keyguard_plugged_in_charging_fast" msgid="4386594091107340426">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Notiek ātrā uzlāde"</string> <string name="keyguard_plugged_in_charging_slowly" msgid="217655355424210">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Notiek lēnā uzlāde"</string> <string name="keyguard_plugged_in_charging_limited" msgid="1158086783302116604">"<xliff:g id="PERCENTAGE">%s</xliff:g> • Akumulatora darbības optimizēšana"</string> - <string name="keyguard_low_battery" msgid="1868012396800230904">"Pievienojiet uzlādes ierīci."</string> + <string name="keyguard_low_battery" msgid="1868012396800230904">"Pievienojiet lādētāju."</string> <string name="keyguard_instructions_when_pattern_disabled" msgid="8448804180089936954">"Lai atbloķētu, nospiediet izvēlnes ikonu."</string> <string name="keyguard_network_locked_message" msgid="407096292844868608">"Tīkls ir bloķēts."</string> <string name="keyguard_missing_sim_message_short" msgid="704159478161444907">"Nav SIM kartes."</string> diff --git a/packages/SystemUI/res/drawable/volume_background_bottom.xml b/packages/SystemUI/res/drawable/volume_background_bottom.xml new file mode 100644 index 000000000000..ae3d15991f65 --- /dev/null +++ b/packages/SystemUI/res/drawable/volume_background_bottom.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2021 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<shape xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> + <size android:width="@dimen/volume_dialog_panel_width" /> + <solid android:color="?androidprv:attr/colorSurface" /> + <corners android:bottomLeftRadius="@dimen/volume_dialog_panel_width_half" + android:bottomRightRadius="@dimen/volume_dialog_panel_width_half"/> +</shape>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/volume_background.xml b/packages/SystemUI/res/drawable/volume_background_top.xml index 66f1d0da4990..3cd87fc32061 100644 --- a/packages/SystemUI/res/drawable/volume_background.xml +++ b/packages/SystemUI/res/drawable/volume_background_top.xml @@ -20,7 +20,8 @@ <shape> <size android:width="@dimen/volume_dialog_panel_width" /> <solid android:color="?androidprv:attr/colorSurface" /> - <corners android:radius="@dimen/volume_dialog_panel_width_half"/> + <corners android:topLeftRadius="@dimen/volume_dialog_panel_width_half" + android:topRightRadius="@dimen/volume_dialog_panel_width_half"/> </shape> </item> </layer-list>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/volume_background_top_rounded.xml b/packages/SystemUI/res/drawable/volume_background_top_rounded.xml new file mode 100644 index 000000000000..77382e14631f --- /dev/null +++ b/packages/SystemUI/res/drawable/volume_background_top_rounded.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2021 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> +<layer-list xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> + <item> + <shape> + <size android:width="@dimen/volume_dialog_panel_width" /> + <solid android:color="?androidprv:attr/colorSurface" /> + <corners android:topLeftRadius="@dimen/volume_dialog_panel_width_half" + android:topRightRadius="@dimen/volume_dialog_panel_width_half" + android:bottomLeftRadius="@dimen/volume_dialog_panel_width_half" + android:bottomRightRadius="@dimen/volume_dialog_panel_width_half"/> + </shape> + </item> +</layer-list>
\ No newline at end of file diff --git a/packages/SystemUI/res/drawable/volume_row_rounded_background.xml b/packages/SystemUI/res/drawable/volume_row_rounded_background.xml new file mode 100644 index 000000000000..95ba73df61c4 --- /dev/null +++ b/packages/SystemUI/res/drawable/volume_row_rounded_background.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2021 The Android Open Source Project + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License + --> + +<shape xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"> + <size android:width="@dimen/volume_dialog_panel_width" /> + <solid android:color="?androidprv:attr/colorSurface" /> + <corners android:radius="@dimen/volume_dialog_panel_width_half"/> +</shape>
\ No newline at end of file diff --git a/packages/SystemUI/res/layout-land-television/volume_dialog.xml b/packages/SystemUI/res/layout-land-television/volume_dialog.xml index 8adc6eb753b5..6b5629facd41 100644 --- a/packages/SystemUI/res/layout-land-television/volume_dialog.xml +++ b/packages/SystemUI/res/layout-land-television/volume_dialog.xml @@ -32,7 +32,7 @@ android:clipToPadding="false"> <LinearLayout - android:id="@+id/main" + android:id="@+id/volume_dialog_rows_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" diff --git a/packages/SystemUI/res/layout-land/volume_dialog.xml b/packages/SystemUI/res/layout-land/volume_dialog.xml index 1a4e81279be4..b08e51372dd0 100644 --- a/packages/SystemUI/res/layout-land/volume_dialog.xml +++ b/packages/SystemUI/res/layout-land/volume_dialog.xml @@ -39,13 +39,12 @@ <LinearLayout - android:id="@+id/volume_dialog_ringer_and_rows_container" + android:id="@+id/volume_dialog_top_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" - android:padding="7dp" android:clipChildren="false" - android:background="@drawable/volume_background"> + android:gravity="right"> <include layout="@layout/volume_ringer_drawer" /> @@ -80,7 +79,7 @@ </FrameLayout> <LinearLayout - android:id="@+id/main" + android:id="@+id/volume_dialog_rows_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" @@ -93,14 +92,17 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" - android:orientation="horizontal" - android:layout_marginTop="@dimen/volume_row_slider_padding_start"> + android:orientation="horizontal"> <!-- volume rows added and removed here! :-) --> </LinearLayout> <FrameLayout android:id="@+id/settings_container" - android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/volume_background_bottom" + android:paddingLeft="@dimen/volume_dialog_ringer_rows_padding" + android:paddingBottom="@dimen/volume_dialog_ringer_rows_padding" + android:paddingRight="@dimen/volume_dialog_ringer_rows_padding"> <com.android.keyguard.AlphaOptimizedImageButton android:id="@+id/settings" android:src="@drawable/horizontal_ellipsis" @@ -124,7 +126,7 @@ android:gravity="right" android:layout_gravity="right" android:clipToPadding="false" - android:background="@drawable/volume_background"> + android:background="@drawable/volume_row_rounded_background"> <com.android.systemui.volume.CaptionsToggleImageButton android:id="@+id/odi_captions_icon" android:src="@drawable/ic_volume_odi_captions_disabled" diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packages/SystemUI/res/layout/navigation_bar.xml index a2a14c754e98..5f59e781ef5e 100644 --- a/packages/SystemUI/res/layout/navigation_bar.xml +++ b/packages/SystemUI/res/layout/navigation_bar.xml @@ -22,11 +22,15 @@ android:id="@+id/navigation_bar_view" android:layout_height="match_parent" android:layout_width="match_parent" + android:clipChildren="false" + android:clipToPadding="false" android:background="@drawable/system_bar_background"> <com.android.systemui.navigationbar.NavigationBarInflaterView android:id="@+id/navigation_inflater" android:layout_width="match_parent" - android:layout_height="match_parent" /> + android:layout_height="match_parent" + android:clipChildren="false" + android:clipToPadding="false" /> </com.android.systemui.navigationbar.NavigationBarView> diff --git a/packages/SystemUI/res/layout/navigation_layout.xml b/packages/SystemUI/res/layout/navigation_layout.xml index 64c7422c27ed..46f238cbe588 100644 --- a/packages/SystemUI/res/layout/navigation_layout.xml +++ b/packages/SystemUI/res/layout/navigation_layout.xml @@ -23,6 +23,8 @@ android:layout_marginEnd="@dimen/rounded_corner_content_padding" android:paddingStart="@dimen/nav_content_padding" android:paddingEnd="@dimen/nav_content_padding" + android:clipChildren="false" + android:clipToPadding="false" android:id="@+id/horizontal"> <com.android.systemui.navigationbar.buttons.NearestTouchFrame diff --git a/packages/SystemUI/res/layout/volume_dialog.xml b/packages/SystemUI/res/layout/volume_dialog.xml index a39006c70fa7..beac05794fe9 100644 --- a/packages/SystemUI/res/layout/volume_dialog.xml +++ b/packages/SystemUI/res/layout/volume_dialog.xml @@ -37,15 +37,13 @@ android:clipToPadding="false" android:clipChildren="false"> - <LinearLayout - android:id="@+id/volume_dialog_ringer_and_rows_container" + android:id="@+id/volume_dialog_top_container" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:orientation="vertical" - android:padding="7dp" android:clipChildren="false" - android:background="@drawable/volume_background"> + android:orientation="vertical" + android:gravity="right"> <include layout="@layout/volume_ringer_drawer" /> @@ -80,7 +78,7 @@ </FrameLayout> <LinearLayout - android:id="@+id/main" + android:id="@+id/volume_dialog_rows_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right" @@ -93,14 +91,17 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" - android:orientation="horizontal" - android:layout_marginTop="@dimen/volume_row_slider_padding_start"> + android:orientation="horizontal"> <!-- volume rows added and removed here! :-) --> </LinearLayout> <FrameLayout android:id="@+id/settings_container" - android:layout_width="match_parent" - android:layout_height="wrap_content"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:background="@drawable/volume_background_bottom" + android:paddingLeft="@dimen/volume_dialog_ringer_rows_padding" + android:paddingBottom="@dimen/volume_dialog_ringer_rows_padding" + android:paddingRight="@dimen/volume_dialog_ringer_rows_padding"> <com.android.keyguard.AlphaOptimizedImageButton android:id="@+id/settings" android:src="@drawable/horizontal_ellipsis" @@ -122,9 +123,9 @@ android:layout_height="@dimen/volume_dialog_caption_size" android:layout_marginTop="@dimen/volume_dialog_row_margin_bottom" android:gravity="right" - android:layout_gravity="center" + android:layout_gravity="right" android:clipToPadding="false" - android:background="@drawable/volume_background"> + android:background="@drawable/volume_row_rounded_background"> <com.android.systemui.volume.CaptionsToggleImageButton android:id="@+id/odi_captions_icon" android:src="@drawable/ic_volume_odi_captions_disabled" diff --git a/packages/SystemUI/res/layout/volume_dialog_row.xml b/packages/SystemUI/res/layout/volume_dialog_row.xml index 4b5a008b896b..1b0076cae671 100644 --- a/packages/SystemUI/res/layout/volume_dialog_row.xml +++ b/packages/SystemUI/res/layout/volume_dialog_row.xml @@ -17,15 +17,18 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:tag="row" android:layout_height="wrap_content" - android:layout_width="@dimen/volume_dialog_slider_width" + android:layout_width="@dimen/volume_dialog_panel_width" android:clipChildren="false" android:clipToPadding="false" - android:translationZ="@dimen/volume_dialog_elevation" + android:gravity="center" + android:paddingTop="@dimen/volume_dialog_ringer_rows_padding" + android:paddingBottom="@dimen/volume_dialog_ringer_rows_padding" + android:background="@drawable/volume_row_rounded_background" android:theme="@style/volume_dialog_theme"> <LinearLayout android:layout_height="wrap_content" - android:layout_width="@dimen/volume_dialog_slider_width" + android:layout_width="@dimen/volume_dialog_panel_width" android:gravity="center" android:layout_gravity="center" android:orientation="vertical" > diff --git a/packages/SystemUI/res/layout/volume_ringer_drawer.xml b/packages/SystemUI/res/layout/volume_ringer_drawer.xml index 9d14ac46e406..9b6c92c71e5d 100644 --- a/packages/SystemUI/res/layout/volume_ringer_drawer.xml +++ b/packages/SystemUI/res/layout/volume_ringer_drawer.xml @@ -18,9 +18,16 @@ <!-- Contains the active ringer icon and a hidden drawer containing all three ringer options. --> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/volume_ringer_and_drawer_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" + android:paddingLeft="@dimen/volume_dialog_ringer_rows_padding" + android:paddingTop="@dimen/volume_dialog_ringer_rows_padding" + android:paddingRight="@dimen/volume_dialog_ringer_rows_padding" + android:paddingBottom="@dimen/volume_dialog_ringer_rows_padding" + android:background="@drawable/volume_background_top" + android:layoutDirection="ltr" android:clipToPadding="false" android:clipChildren="false"> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 21c5d6eff1eb..31ff9c66b847 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -179,7 +179,7 @@ <string name="biometric_dialog_failed_attempts_now_wiping_user" msgid="7015008539146949115">"لقد استنفدت عدد المحاولات غير الصحيحة وسيتم حذف هذا المستخدم."</string> <string name="biometric_dialog_failed_attempts_now_wiping_profile" msgid="5239378521440749682">"لقد استنفدت عدد المحاولات غير الصحيحة وسيتم حذف الملف الشخصي للعمل وبياناته."</string> <string name="biometric_dialog_now_wiping_dialog_dismiss" msgid="7189432882125106154">"إغلاق"</string> - <string name="fingerprint_dialog_touch_sensor" msgid="2817887108047658975">"المس زر استشعار بصمة الإصبع"</string> + <string name="fingerprint_dialog_touch_sensor" msgid="2817887108047658975">"المس مستشعر بصمة الإصبع"</string> <string name="accessibility_fingerprint_dialog_fingerprint_icon" msgid="4465698996175640549">"رمز بصمة الإصبع"</string> <string name="fingerprint_dialog_use_fingerprint_instead" msgid="6178228876763024452">"يتعذّر التعرّف على الوجه. استخدِم بصمة الإصبع بدلاً من ذلك."</string> <string name="fingerprint_dialog_use_fingerprint" msgid="923777032861374285">"عليك استخدام بصمة الإصبع للمتابعة."</string> @@ -431,8 +431,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"تم إيقاف الاتصال القريب المدى"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"تم تفعيل الاتصال القريب المدى"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"تسجيل الشاشة"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"بدء"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"إيقاف"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"هل تريد إزالة حظر ميكروفون الجهاز؟"</string> diff --git a/packages/SystemUI/res/values-as/strings.xml b/packages/SystemUI/res/values-as/strings.xml index cd6a00782b71..a288d6fe5274 100644 --- a/packages/SystemUI/res/values-as/strings.xml +++ b/packages/SystemUI/res/values-as/strings.xml @@ -408,8 +408,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="6798849610647988987">"<xliff:g id="DATA_USED">%s</xliff:g> ব্যৱহৃত"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সীমা"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সকীয়নি"</string> - <!-- no translation found for quick_settings_work_mode_label (6440531507319809121) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"কৰ্মস্থানৰ এপ্"</string> <string name="quick_settings_night_display_label" msgid="8180030659141778180">"ৰাতিৰ পোহৰ"</string> <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"সূৰ্যাস্তত অন কৰক"</string> <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"সূৰ্যোদয়ৰ লৈকে"</string> @@ -424,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC নিষ্ক্ৰিয় হৈ আছে"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC সক্ষম হৈ আছে"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"স্ক্ৰীন ৰেকৰ্ড কৰা"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"আৰম্ভ কৰক"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"বন্ধ কৰক"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"ডিভাইচৰ মাইক্ৰ\'ফ\'ন অৱৰোধৰ পৰা আঁতৰাবনে?"</string> @@ -1042,8 +1040,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"কাষলৈ নিয়ক আৰু লুকুৱাওক"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"কাষৰ বাহিৰলৈ নিয়ক আৰু দেখুৱাওক"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ট’গল কৰক"</string> - <!-- no translation found for quick_controls_title (7095074621086860062) --> - <skip /> + <string name="quick_controls_title" msgid="7095074621086860062">"গৃহ নিয়ন্ত্ৰণ"</string> <string name="controls_providers_title" msgid="6879775889857085056">"নিয়ন্ত্ৰণসমূহ যোগ কৰিবলৈ এপ্ বাছনি কৰক"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> টা নিয়ন্ত্ৰণ যোগ কৰা হ’ল।</item> @@ -1057,8 +1054,7 @@ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"অপ্ৰিয়"</string> <string name="accessibility_control_move" msgid="8980344493796647792">"<xliff:g id="NUMBER">%d</xliff:g> নম্বৰ অৱস্থানলৈ স্থানান্তৰিত কৰক"</string> <string name="controls_favorite_default_title" msgid="967742178688938137">"নিয়ন্ত্ৰণসমূহ"</string> - <!-- no translation found for controls_favorite_subtitle (6481675111056961083) --> - <skip /> + <string name="controls_favorite_subtitle" msgid="6481675111056961083">"ক্ষিপ্ৰ ছেটিঙৰ পৰা এক্সেছ কৰিবলৈ নিয়ন্ত্ৰণসমূহ বাছনি কৰক"</string> <string name="controls_favorite_rearrange" msgid="5616952398043063519">"নিয়ন্ত্ৰণসমূহ পুনৰ সজাবলৈ ধৰি ৰাখক আৰু টানি আনি এৰক"</string> <string name="controls_favorite_removed" msgid="5276978408529217272">"সকলো নিয়ন্ত্ৰণ আঁতৰোৱা হৈছে"</string> <string name="controls_favorite_toast_no_changes" msgid="7094494210840877931">"সালসলনিসমূহ ছেভ নহ’ল"</string> @@ -1097,8 +1093,7 @@ <string name="controls_error_generic" msgid="352500456918362905">"স্থিতি ল’ড কৰিব নোৱাৰি"</string> <string name="controls_error_failed" msgid="960228639198558525">"আসোঁৱাহ হৈছে, আকৌ চেষ্টা কৰক"</string> <string name="controls_in_progress" msgid="4421080500238215939">"চলি আছে"</string> - <!-- no translation found for controls_added_tooltip (5866098408470111984) --> - <skip /> + <string name="controls_added_tooltip" msgid="5866098408470111984">"নতুন নিয়ন্ত্ৰণসমূহ চাবলৈ ক্ষিপ্ৰ ছেটিং খোলক"</string> <string name="controls_menu_add" msgid="4447246119229920050">"নিয়ন্ত্ৰণসমূহ যোগ দিয়ক"</string> <string name="controls_menu_edit" msgid="890623986951347062">"নিয়ন্ত্ৰণসমূহ সম্পাদনা কৰক"</string> <string name="media_output_dialog_add_output" msgid="5642703238877329518">"আউটপুটসমূহ যোগ দিয়ক"</string> @@ -1117,16 +1112,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"অগ্ৰাধিকাৰপ্ৰাপ্ত বাৰ্তালাপ"</string> <string name="recent_conversations" msgid="8531874684782574622">"শেহতীয়া বাৰ্তালাপ"</string> <string name="okay" msgid="6490552955618608554">"ঠিক আছে"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> দিন আগতে"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"১ সপ্তাহ আগতে"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"২ সপ্তাহ পূৰ্বে"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"১ সপ্তাহতকৈ বেছি আগতে"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"২ সপ্তাহতকৈ বেছি আগতে"</string> <string name="birthday_status" msgid="2596961629465396761">"জন্মদিন"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"এয়া <xliff:g id="NAME">%1$s</xliff:g>ৰ জন্মদিন"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"জন্মদিন সোনকালে আহি আছে"</string> diff --git a/packages/SystemUI/res/values-az/strings.xml b/packages/SystemUI/res/values-az/strings.xml index 0a3e73f36e18..0e8cb5737fd8 100644 --- a/packages/SystemUI/res/values-az/strings.xml +++ b/packages/SystemUI/res/values-az/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC deaktiv edilib"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC aktiv edilib"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ekran yazması"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Başlayın"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Dayandırın"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Cihaz mikrofonu blokdan çıxarılsın?"</string> diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml index bdf62a3c18ae..83c8513f6ad4 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml @@ -425,8 +425,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC je onemogućen"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC je omogućen"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Snimanje ekrana"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Počnite"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Zaustavite"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Želite da odblokirate mikrofon uređaja?"</string> diff --git a/packages/SystemUI/res/values-be/strings.xml b/packages/SystemUI/res/values-be/strings.xml index 2f41132934d2..63ec9264961e 100644 --- a/packages/SystemUI/res/values-be/strings.xml +++ b/packages/SystemUI/res/values-be/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC адключаны"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC уключаны"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Запіс экрана"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Пачаць"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Спыніць"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Разблакіраваць мікрафон прылады?"</string> diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 14297dbc931a..a064d108e5b6 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"КБП е деактивирана"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"КБП е активирана"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Запис на екрана"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Старт"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Стоп"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Да се отблокира ли микрофонът на устройството?"</string> diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml index e683594177b2..4400cfbc1588 100644 --- a/packages/SystemUI/res/values-bn/strings.xml +++ b/packages/SystemUI/res/values-bn/strings.xml @@ -408,8 +408,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="6798849610647988987">"<xliff:g id="DATA_USED">%s</xliff:g> ব্যবহৃত হয়েছে"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"সীমা <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> সতর্কতা"</string> - <!-- no translation found for quick_settings_work_mode_label (6440531507319809121) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"অফিসের অ্যাপ"</string> <string name="quick_settings_night_display_label" msgid="8180030659141778180">"নাইট লাইট"</string> <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"সূর্যাস্তে চালু হবে"</string> <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"সূর্যোদয় পর্যন্ত"</string> @@ -1042,8 +1041,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"প্রান্তে যান ও আড়াল করুন"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"প্রান্ত থেকে সরান এবং দেখুন"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"টগল করুন"</string> - <!-- no translation found for quick_controls_title (7095074621086860062) --> - <skip /> + <string name="quick_controls_title" msgid="7095074621086860062">"হোম কন্ট্রোল"</string> <string name="controls_providers_title" msgid="6879775889857085056">"কন্ট্রোল যোগ করতে অ্যাপ বেছে নিন"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g>টি কন্ট্রোল যোগ করা হয়েছে।</item> @@ -1057,8 +1055,7 @@ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"পছন্দসই থেকে সরান"</string> <string name="accessibility_control_move" msgid="8980344493796647792">"<xliff:g id="NUMBER">%d</xliff:g> অবস্থানে সরান"</string> <string name="controls_favorite_default_title" msgid="967742178688938137">"নিয়ন্ত্রণ"</string> - <!-- no translation found for controls_favorite_subtitle (6481675111056961083) --> - <skip /> + <string name="controls_favorite_subtitle" msgid="6481675111056961083">"যে কন্ট্রোল অ্যাক্সেস করতে চান তা \'দ্রুত সেটিংস\' থেকে বেছে নিন"</string> <string name="controls_favorite_rearrange" msgid="5616952398043063519">"কন্ট্রোলগুলিকে আবার সাজানোর জন্য ধরে রেখে টেনে আনুন"</string> <string name="controls_favorite_removed" msgid="5276978408529217272">"সমস্ত কন্ট্রোল সরানো হয়েছে"</string> <string name="controls_favorite_toast_no_changes" msgid="7094494210840877931">"পরিবর্তন সেভ করা হয়নি"</string> @@ -1097,8 +1094,7 @@ <string name="controls_error_generic" msgid="352500456918362905">"স্ট্যাটাস লোড করা যাচ্ছে না"</string> <string name="controls_error_failed" msgid="960228639198558525">"সমস্যা হয়েছে, আবার চেষ্টা করুন"</string> <string name="controls_in_progress" msgid="4421080500238215939">"চলছে"</string> - <!-- no translation found for controls_added_tooltip (5866098408470111984) --> - <skip /> + <string name="controls_added_tooltip" msgid="5866098408470111984">"নতুন কন্ট্রোলগুলি দেখতে \'দ্রুত সেটিংস\' খুলুন"</string> <string name="controls_menu_add" msgid="4447246119229920050">"কন্ট্রোল যোগ করুন"</string> <string name="controls_menu_edit" msgid="890623986951347062">"কন্ট্রোল এডিট করুন"</string> <string name="media_output_dialog_add_output" msgid="5642703238877329518">"আউটপুট যোগ করুন"</string> @@ -1117,16 +1113,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"গুরুত্বপূর্ণ কথোপকথন"</string> <string name="recent_conversations" msgid="8531874684782574622">"সাম্প্রতিক কথোপকথন"</string> <string name="okay" msgid="6490552955618608554">"ঠিক আছে"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> দিন আগে"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"১ সপ্তাহ আগে"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"২ সপ্তাহ আগে"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"১ সপ্তাহেরও আগে"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"২ সপ্তাহেরও আগে"</string> <string name="birthday_status" msgid="2596961629465396761">"জন্মদিন"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"এটি হল <xliff:g id="NAME">%1$s</xliff:g>-এর জন্মদিন"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"জন্মদিন শীঘ্রই আসছে"</string> diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml index 058e8ed74c74..b0b012b0278b 100644 --- a/packages/SystemUI/res/values-bs/strings.xml +++ b/packages/SystemUI/res/values-bs/strings.xml @@ -425,7 +425,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC je onemogućen"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC je omogućen"</string> - <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Snimanje zaslona"</string> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Snimanje ekrana"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Započnite"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Zaustavite"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Deblokirati mikrofon uređaja?"</string> diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 59edc3f00a2a..06c25422b461 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC je vypnuto"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC je zapnuto"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Záznam obrazovky"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Spustit"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Ukončit"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Odblokovat mikrofon zařízení?"</string> diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 7c35e07ab13e..5fd3c03327a4 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC er deaktiveret"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC er aktiveret"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Skærmoptagelse"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Start"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Stop"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Vil du fjerne blokeringen af enhedens mikrofone?"</string> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index b8f6aa531b31..6220a48e664a 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC ist deaktiviert"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC ist aktiviert"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Bildschirmaufzeichnung"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Starten"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Beenden"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Blockierung des Gerätemikrofons aufheben?"</string> @@ -1113,16 +1112,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"Vorrangige Unterhaltungen"</string> <string name="recent_conversations" msgid="8531874684782574622">"Neueste Unterhaltungen"</string> <string name="okay" msgid="6490552955618608554">"Ok"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"Vor <xliff:g id="DURATION">%1$s</xliff:g> Tagen"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"Vor 1 Woche"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"Vor 2 Wochen"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"Vor über 1 Woche"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"Vor über 2 Wochen"</string> <string name="birthday_status" msgid="2596961629465396761">"Geburtstag"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"<xliff:g id="NAME">%1$s</xliff:g> hat heute Geburtstag"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"Bald Geburtstag"</string> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 5cf9bdf8774a..29c938b6a5ba 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -535,7 +535,7 @@ <string name="quick_settings_disclosure_named_management_vpns" msgid="4046375645500668555">"Este dispositivo pertenece a <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> y está conectado a VPN"</string> <string name="quick_settings_disclosure_managed_profile_monitoring" msgid="1423899084754272514">"Tu organización puede controlar el tráfico de red en tu perfil de trabajo"</string> <string name="quick_settings_disclosure_named_managed_profile_monitoring" msgid="8321469176706219860">"Es posible que <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> controle el tráfico de red en tu perfil de trabajo"</string> - <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"El admin. de TI puede ver la actividad de red de tu perfil de trabajo"</string> + <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"El administrador de IT puede ver la actividad de red de tu perfil de trabajo"</string> <string name="quick_settings_disclosure_monitoring" msgid="8548019955631378680">"Es posible que la red esté supervisada"</string> <string name="quick_settings_disclosure_vpns" msgid="7213546797022280246">"Este dispositivo está conectado a VPN"</string> <string name="quick_settings_disclosure_managed_profile_named_vpn" msgid="8117568745060010789">"Tu perfil de trabajo está conectado a <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index e3928ef8bde6..0b0936912897 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -547,7 +547,7 @@ <string name="monitoring_title" msgid="4063890083735924568">"Supervisión de red"</string> <string name="monitoring_subtitle_vpn" msgid="800485258004629079">"VPN"</string> <string name="monitoring_subtitle_network_logging" msgid="2444199331891219596">"Registro de red"</string> - <string name="monitoring_subtitle_ca_certificate" msgid="8588092029755175800">"Certificados de CA"</string> + <string name="monitoring_subtitle_ca_certificate" msgid="8588092029755175800">"Certificados AC"</string> <string name="disable_vpn" msgid="482685974985502922">"Inhabilitar VPN"</string> <string name="disconnect_vpn" msgid="26286850045344557">"Desconectar VPN"</string> <string name="monitoring_button_view_policies" msgid="3869724835853502410">"Ver políticas"</string> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index fdc06fb1aec5..71ac58388017 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC on keelatud"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC on lubatud"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ekraanisalvestus"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Alustage"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Peatage"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Kas tühistada seadme mikrofoni blokeerimine?"</string> diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml index 77911e9229b9..04abe9dc3ac2 100644 --- a/packages/SystemUI/res/values-eu/strings.xml +++ b/packages/SystemUI/res/values-eu/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Desgaituta dago NFC"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Gaituta dago NFC"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Pantaila-grabaketa"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Hasi"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Gelditu"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Gailuaren mikrofonoa desblokeatu nahi duzu?"</string> diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 1af4a7b7dc36..18e33e5d375a 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC on poistettu käytöstä"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC on käytössä"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Näytön tallennus"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Aloita"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Lopeta"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Kumotaanko laitteen mikrofonin esto?"</string> diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index 235dbe9f480d..33b023bbaf8a 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC désactivée"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC activée"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Enregistrement de l\'écran"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Démarrer"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Arrêter"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Débloquer le microphone de l\'appareil?"</string> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 2a88d9ad12d4..b4a584399efd 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC désactivée"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"La technologie NFC est activée"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Enregistreur d\'écran"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Démarrer"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Arrêter"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Débloquer le micro de l\'appareil ?"</string> diff --git a/packages/SystemUI/res/values-gl/strings.xml b/packages/SystemUI/res/values-gl/strings.xml index b3f58269cc80..045143ef0d65 100644 --- a/packages/SystemUI/res/values-gl/strings.xml +++ b/packages/SystemUI/res/values-gl/strings.xml @@ -218,7 +218,7 @@ <string name="data_connection_hspa" msgid="6096234094857660873">"HSPA"</string> <string name="data_connection_roaming" msgid="375650836665414797">"Itinerancia"</string> <string name="accessibility_data_connection_wifi" msgid="4422160347472742434">"Wi-Fi"</string> - <string name="accessibility_no_sim" msgid="1140839832913084973">"Sen SIM"</string> + <string name="accessibility_no_sim" msgid="1140839832913084973">"Non hai SIM"</string> <string name="accessibility_cell_data" msgid="172950885786007392">"Datos móbiles"</string> <string name="accessibility_cell_data_on" msgid="691666434519443162">"Os datos móbiles están activados"</string> <string name="cell_data_off" msgid="4886198950247099526">"Desactivados"</string> @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"A opción NFC está desactivada"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"A opción NFC está activada"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Gravación da pantalla"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Iniciar"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Deter"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Queres desbloquear o micrófono do dispositivo?"</string> diff --git a/packages/SystemUI/res/values-gu/strings.xml b/packages/SystemUI/res/values-gu/strings.xml index b7b5516f7005..815430ca60eb 100644 --- a/packages/SystemUI/res/values-gu/strings.xml +++ b/packages/SystemUI/res/values-gu/strings.xml @@ -409,8 +409,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="6798849610647988987">"<xliff:g id="DATA_USED">%s</xliff:g> વાપર્યો"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> મર્યાદા"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> ચેતવણી"</string> - <!-- no translation found for quick_settings_work_mode_label (6440531507319809121) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"ઑફિસ માટેની ઍપ"</string> <string name="quick_settings_night_display_label" msgid="8180030659141778180">"રાત્રિ પ્રકાશ"</string> <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"સૂર્યાસ્ત વખતે"</string> <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"સૂર્યોદય સુધી"</string> @@ -670,12 +669,10 @@ <string name="wallet_title" msgid="5369767670735827105">"વૉલેટ"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"બધું બતાવો"</string> <string name="wallet_action_button_label_unlock" msgid="8663239748726774487">"ચુકવણી કરવા માટે અનલૉક કરો"</string> - <!-- no translation found for wallet_secondary_label_no_card (1282609666895946317) --> - <skip /> + <string name="wallet_secondary_label_no_card" msgid="1282609666895946317">"કોઈ સેટઅપ કર્યું નથી"</string> <string name="wallet_secondary_label_device_locked" msgid="5175862019125370506">"ઉપયોગ કરવા માટે અનલૉક કરો"</string> <string name="wallet_error_generic" msgid="257704570182963611">"તમારા કાર્ડની માહિતી મેળવવામાં સમસ્યા આવી હતી, કૃપા કરીને થોડા સમય પછી ફરી પ્રયાસ કરો"</string> - <!-- no translation found for wallet_lockscreen_settings_label (3539105300870383570) --> - <skip /> + <string name="wallet_lockscreen_settings_label" msgid="3539105300870383570">"લૉક સ્ક્રીનના સેટિંગ"</string> <string name="status_bar_work" msgid="5238641949837091056">"ઑફિસની પ્રોફાઇલ"</string> <string name="status_bar_airplane" msgid="4848702508684541009">"એરપ્લેન મોડ"</string> <string name="add_tile" msgid="6239678623873086686">"ટાઇલ ઉમેરો"</string> @@ -865,8 +862,7 @@ <string name="switch_bar_on" msgid="1770868129120096114">"ચાલુ"</string> <string name="switch_bar_off" msgid="5669805115416379556">"બંધ"</string> <string name="tile_unavailable" msgid="3095879009136616920">"ઉપલબ્ધ નથી"</string> - <!-- no translation found for tile_disabled (373212051546573069) --> - <skip /> + <string name="tile_disabled" msgid="373212051546573069">"બંધ છે"</string> <string name="nav_bar" msgid="4642708685386136807">"નેવિગેશન બાર"</string> <string name="nav_bar_layout" msgid="4716392484772899544">"લેઆઉટ"</string> <string name="left_nav_bar_button_type" msgid="2634852842345192790">"અતિરિક્ત ડાબો બટન પ્રકાર"</string> @@ -1046,8 +1042,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"કિનારી પર ખસેડો અને છુપાવો"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"કિનારીથી ખસેડો અને બતાવો"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ટૉગલ કરો"</string> - <!-- no translation found for quick_controls_title (7095074621086860062) --> - <skip /> + <string name="quick_controls_title" msgid="7095074621086860062">"ઘરેલું સાધનોનાં નિયંત્રણો"</string> <string name="controls_providers_title" msgid="6879775889857085056">"નિયંત્રણો ઉમેરવા માટે ઍપ પસંદ કરો"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="one"><xliff:g id="NUMBER_1">%s</xliff:g> નિયંત્રણ ઉમેર્યું.</item> @@ -1061,8 +1056,7 @@ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"મનપસંદમાંથી કાઢી નાખો"</string> <string name="accessibility_control_move" msgid="8980344493796647792">"સ્થાન <xliff:g id="NUMBER">%d</xliff:g> પર ખસેડો"</string> <string name="controls_favorite_default_title" msgid="967742178688938137">"નિયંત્રણો"</string> - <!-- no translation found for controls_favorite_subtitle (6481675111056961083) --> - <skip /> + <string name="controls_favorite_subtitle" msgid="6481675111056961083">"ઝડપી સેટિંગમાંથી ઍક્સેસ કરવાના નિયંત્રણો પસંદ કરો"</string> <string name="controls_favorite_rearrange" msgid="5616952398043063519">"નિયંત્રણોને ફરીથી ગોઠવવા માટે તેમને હોલ્ડ કરીને ખેંચો"</string> <string name="controls_favorite_removed" msgid="5276978408529217272">"બધા નિયંત્રણો કાઢી નાખ્યા"</string> <string name="controls_favorite_toast_no_changes" msgid="7094494210840877931">"ફેરફારો સાચવ્યા નથી"</string> @@ -1101,8 +1095,7 @@ <string name="controls_error_generic" msgid="352500456918362905">"સ્ટેટસ લોડ કરી શકાતું નથી"</string> <string name="controls_error_failed" msgid="960228639198558525">"ભૂલ, ફરીથી પ્રયાસ કરો"</string> <string name="controls_in_progress" msgid="4421080500238215939">"પ્રક્રિયા ચાલુ છે"</string> - <!-- no translation found for controls_added_tooltip (5866098408470111984) --> - <skip /> + <string name="controls_added_tooltip" msgid="5866098408470111984">"નવા નિયંત્રણો જોવા માટે ઝડપી સેટિંગ ખોલો"</string> <string name="controls_menu_add" msgid="4447246119229920050">"નિયંત્રણો ઉમેરો"</string> <string name="controls_menu_edit" msgid="890623986951347062">"નિયંત્રણોમાં ફેરફાર કરો"</string> <string name="media_output_dialog_add_output" msgid="5642703238877329518">"આઉટપુટ ઉમેરો"</string> @@ -1121,16 +1114,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"પ્રાધાન્યતા ધરાવતી વાતચીતો"</string> <string name="recent_conversations" msgid="8531874684782574622">"તાજેતરની વાતચીતો"</string> <string name="okay" msgid="6490552955618608554">"ઓકે"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> દિવસ પહેલાં"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"1 અઠવાડિયા પહેલાં"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 અઠવાડિયા પહેલાં"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"1 અઠવાડિયા કરતાં પહેલાંથી"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"2 અઠવાડિયા કરતાં પહેલાંથી"</string> <string name="birthday_status" msgid="2596961629465396761">"જન્મદિવસ"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"આ તો <xliff:g id="NAME">%1$s</xliff:g>નો જન્મદિવસ છે"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"જલ્દી જ જન્મદિવસ છે"</string> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 35bfca9c68e6..f77db5c7d53f 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"एनएफ़सी"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC बंद है"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC चालू है"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"स्क्रीन रिकॉर्डर"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"शुरू करें"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"रोकें"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"क्या आप डिवाइस के माइक्रोफ़ोन को अनब्लॉक करना चाहते हैं?"</string> diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 3e5b0445a76d..540bd43a3782 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Az NFC ki van kapcsolva"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Az NFC be van kapcsolva"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Képernyőrögzítés"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Indítás"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Leállítás"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Feloldja az eszközmikrofon letiltását?"</string> diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml index 36da43919b7f..4f4afd6b801d 100644 --- a/packages/SystemUI/res/values-hy/strings.xml +++ b/packages/SystemUI/res/values-hy/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC-ն անջատված է"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC-ն միացված է"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Էկրանի տեսագրում"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Սկսել"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Կանգնեցնել"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Արգելահանե՞լ սարքի խոսափողը"</string> diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index ee718b470465..8fc2e8af30dd 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC dinonaktifkan"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC diaktifkan"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Perekam layar"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Mulai"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Berhenti"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Batalkan pemblokiran mikrofon perangkat?"</string> diff --git a/packages/SystemUI/res/values-is/strings.xml b/packages/SystemUI/res/values-is/strings.xml index 476ed383609a..adaa7a73ae61 100644 --- a/packages/SystemUI/res/values-is/strings.xml +++ b/packages/SystemUI/res/values-is/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Slökkt á NFC"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Kveikt á NFC"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Skjáupptaka"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Hefja"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Stöðva"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Opna fyrir hljóðnema tækisins?"</string> diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 7b2fbac6d9c1..12e4dc7b03be 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC מושבת"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC מופעל"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"הקלטת המסך"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"התחלה"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"עצירה"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"לבטל את חסימת המיקרופון של המכשיר?"</string> @@ -1051,7 +1050,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"העברה לשוליים והסתרה"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"העברה מהשוליים והצגה"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"החלפת מצב"</string> - <string name="quick_controls_title" msgid="7095074621086860062">"בית חכם"</string> + <string name="quick_controls_title" msgid="7095074621086860062">"פקדי הבית החכם"</string> <string name="controls_providers_title" msgid="6879775889857085056">"יש לבחור אפליקציה כדי להוסיף פקדים"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="two">נוספו <xliff:g id="NUMBER_1">%s</xliff:g> פקדים.</item> @@ -1125,16 +1124,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"שיחות בעדיפות גבוהה"</string> <string name="recent_conversations" msgid="8531874684782574622">"שיחות אחרונות"</string> <string name="okay" msgid="6490552955618608554">"בסדר"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"לפני <xliff:g id="DURATION">%1$s</xliff:g> ימים"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"לפני שבוע"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"לפני שבועיים"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"לפני יותר משבוע"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"לפני יותר משבועיים"</string> <string name="birthday_status" msgid="2596961629465396761">"יום הולדת"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"זהו יום ההולדת של <xliff:g id="NAME">%1$s</xliff:g>"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"יום הולדת יחול בקרוב"</string> diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index 717ab3fb260e..f093cadbba61 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC は無効です"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC は有効です"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"スクリーン レコード"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"開始"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"停止"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"デバイスのマイクのブロックを解除しますか?"</string> diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml index f910f76efa1d..6d012516cc78 100644 --- a/packages/SystemUI/res/values-kk/strings.xml +++ b/packages/SystemUI/res/values-kk/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC өшірулі"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC қосулы"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Экранды жазу"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Бастау"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Тоқтату"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Құрылғы микрофонының бөгеуі алынсын ба?"</string> diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml index 326aab514050..08045e32a31f 100644 --- a/packages/SystemUI/res/values-km/strings.xml +++ b/packages/SystemUI/res/values-km/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"បានបិទ NFC"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"បានបើក NFC"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"ការថតវីដេអូអេក្រង់"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"ចាប់ផ្ដើម"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"ឈប់"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"ឈប់ទប់ស្កាត់មីក្រូហ្វូនរបស់ឧបករណ៍ឬ?"</string> diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml index bbc0a0f9fd43..211e943afedf 100644 --- a/packages/SystemUI/res/values-kn/strings.xml +++ b/packages/SystemUI/res/values-kn/strings.xml @@ -136,8 +136,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"ಕ್ಯಾಮರಾ"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ಫೋನ್"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"ಧ್ವನಿ ಸಹಾಯಕ"</string> - <!-- no translation found for accessibility_wallet_button (1458258783460555507) --> - <skip /> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"ಅನ್ಲಾಕ್"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"ಸಾಧನ ಲಾಕ್ ಆಗಿದೆ"</string> <string name="accessibility_waiting_for_fingerprint" msgid="5209142744692162598">"ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ"</string> @@ -424,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC ನಿಷ್ಕ್ರಿಯಗೊಂಡಿದೆ"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC ಸಕ್ರಿಯಗೊಂಡಿದೆ"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡ್"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"ಪ್ರಾರಂಭಿಸಿ"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"ನಿಲ್ಲಿಸಿ"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"ಸಾಧನದ ಮೈಕ್ರೋಫೋನ್ ನಿರ್ಬಂಧವನ್ನು ತೆಗೆಯಬೇಕೆ?"</string> @@ -1114,16 +1112,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"ಆದ್ಯತೆಯ ಸಂಭಾಷಣೆಗಳು"</string> <string name="recent_conversations" msgid="8531874684782574622">"ಇತ್ತೀಚಿನ ಸಂಭಾಷಣೆಗಳು"</string> <string name="okay" msgid="6490552955618608554">"ಸರಿ"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> ದಿನಗಳ ಹಿಂದೆ"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"1 ವಾರದ ಹಿಂದೆ"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 ವಾರಗಳ ಹಿಂದೆ"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"1 ವಾರಕ್ಕಿಂತ ಹಿಂದೆ"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"2 ವಾರಗಳಿಗಿಂತ ಹಿಂದೆ"</string> <string name="birthday_status" msgid="2596961629465396761">"ಜನ್ಮದಿನ"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"<xliff:g id="NAME">%1$s</xliff:g> ಅವರ ಜನ್ಮದಿನ"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"ಶೀಘ್ರದಲ್ಲಿ ಜನ್ಮದಿನವಿದೆ"</string> @@ -1154,8 +1147,6 @@ <string name="accessibility_authenticate_hint" msgid="798914151813205721">"ದೃಢೀಕರಿಸಿ"</string> <string name="accessibility_enter_hint" msgid="2617864063504824834">"ಸಾಧನವನ್ನು ಪ್ರವೇಶಿಸಿ"</string> <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"ತೆರೆಯುವುದಕ್ಕಾಗಿ ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ನು ಬಳಸಿ"</string> - <!-- no translation found for accessibility_fingerprint_bouncer (7189102492498735519) --> - <skip /> - <!-- no translation found for ongoing_phone_call_content_description (5332334388483099947) --> - <skip /> + <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"ದೃಢೀಕರಣದ ಅವಶ್ಯಕತೆಯಿದೆ. ದೃಢೀಕರಿಸಲು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ."</string> + <string name="ongoing_phone_call_content_description" msgid="5332334388483099947">"ಚಾಲ್ತಿಯಲ್ಲಿರುವ ಫೋನ್ ಕರೆ"</string> </resources> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 019f31027e8c..f32aeff15597 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC 사용 중지됨"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC 사용 설정됨"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"화면 녹화"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"시작"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"중지"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"기기 마이크를 차단 해제하시겠습니까?"</string> diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml index f523fa291d2a..d997a7b68d47 100644 --- a/packages/SystemUI/res/values-ky/strings.xml +++ b/packages/SystemUI/res/values-ky/strings.xml @@ -423,16 +423,15 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC өчүрүлгөн"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC иштетилген"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Экрандан видео жаздырып алуу"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Баштадык"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Токтотуу"</string> - <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Түзмөктүн микрофонунун кулпусу ачысынбы?"</string> - <string name="sensor_privacy_start_use_camera_dialog_title" msgid="8807639852654305227">"Түзмөктүн камерасынын кулпусу ачылсынбы?"</string> + <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Түзмөктүн микрофонунун кулпусун ачасызбы?"</string> + <string name="sensor_privacy_start_use_camera_dialog_title" msgid="8807639852654305227">"Түзмөктүн камерасынын кулпусун ачасызбы?"</string> <string name="sensor_privacy_start_use_mic_camera_dialog_title" msgid="4316471859905020023">"Түзмөктүн камерасы менен микрофону бөгөттөн чыгарылсынбы?"</string> - <string name="sensor_privacy_start_use_mic_dialog_content" msgid="1624701280680913717">"Ушуну менен микрофонуңузду колдонууга уруксаты бар бардык колдонмолор менен кызматтар бөгөттөн чыгарылат."</string> - <string name="sensor_privacy_start_use_camera_dialog_content" msgid="4704948062372435963">"Ушуну менен камераңызды колдонууга уруксаты бар бардык колдонмолор менен кызматтар бөгөттөн чыгарылат."</string> - <string name="sensor_privacy_start_use_mic_camera_dialog_content" msgid="3577642558418404919">"Ушуну менен камераңызды же микрофонуңузду колдонууга уруксаты бар бардык колдонмолор менен кызматтар бөгөттөн чыгарылат."</string> + <string name="sensor_privacy_start_use_mic_dialog_content" msgid="1624701280680913717">"Микрофонуңузду колдонууга уруксат алган бардык колдонмолор менен кызматтар бөгөттөн чыгат."</string> + <string name="sensor_privacy_start_use_camera_dialog_content" msgid="4704948062372435963">"Камераны колдонууга уруксат алган бардык колдонмолор менен кызматтар бөгөттөн чыгат."</string> + <string name="sensor_privacy_start_use_mic_camera_dialog_content" msgid="3577642558418404919">"Камераңызды же микрофонуңузду колдонууга уруксат алган бардык колдонмолор менен кызматтар бөгөттөн чыгат."</string> <string name="media_seamless_remote_device" msgid="177033467332920464">"Түзмөк"</string> <string name="recents_swipe_up_onboarding" msgid="2820265886420993995">"Башка колдонмого которулуу үчүн өйдө сүрүңүз"</string> <string name="recents_quick_scrub_onboarding" msgid="765934300283514912">"Колдонмолорду тез которуштуруу үчүн, оңго сүйрөңүз"</string> @@ -1116,8 +1115,8 @@ <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> күн мурун"</string> <string name="one_week_timestamp" msgid="4925600765473875590">"1 апта мурун"</string> <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 апта мурда"</string> - <string name="over_one_week_timestamp" msgid="3770560704420807142">"1 аптадан ашуун мурда"</string> - <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"2 аптадан ашуун мурда"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"1 аптадан ашык мурда"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"2 аптадан ашык мурда"</string> <string name="birthday_status" msgid="2596961629465396761">"Туулган күн"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"<xliff:g id="NAME">%1$s</xliff:g> бүгүн туулган күнүн белгилеп жатат"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"Алдыдагы туулган күн"</string> diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 6eb84eec91bf..ae4fd14c78aa 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"ALR"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"ALR išjungtas"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"ALR įjungtas"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ekrano įrašas"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Pradėti"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Stabdyti"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Panaikinti įrenginio mikrofono blokavimą?"</string> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 3c5905a56e21..635baa0c1a33 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -29,9 +29,9 @@ <string name="battery_low_percent_format_hybrid" msgid="3985614339605686167">"Atlikušais laiks: <xliff:g id="PERCENTAGE">%1$s</xliff:g> — aptuveni <xliff:g id="TIME">%2$s</xliff:g> (ņemot vērā lietojumu)"</string> <string name="battery_low_percent_format_hybrid_short" msgid="5917433188456218857">"Atlikušais laiks: <xliff:g id="PERCENTAGE">%1$s</xliff:g> — aptuveni <xliff:g id="TIME">%2$s</xliff:g>"</string> <string name="battery_low_percent_format_saver_started" msgid="4968468824040940688">"Atlikuši <xliff:g id="PERCENTAGE">%s</xliff:g>. Ir ieslēgts akumulatora enerģijas taupīšanas režīms."</string> - <string name="invalid_charger" msgid="4370074072117767416">"Nevar veikt uzlādi, izmantojot USB. Izmantojiet ierīces komplektācijā iekļauto uzlādes ierīci."</string> + <string name="invalid_charger" msgid="4370074072117767416">"Nevar veikt uzlādi, izmantojot USB. Izmantojiet ierīces komplektācijā iekļauto lādētāju."</string> <string name="invalid_charger_title" msgid="938685362320735167">"Nevar veikt uzlādi, izmantojot USB"</string> - <string name="invalid_charger_text" msgid="2339310107232691577">"Izmantojiet ierīces komplektācijā iekļauto uzlādes ierīci"</string> + <string name="invalid_charger_text" msgid="2339310107232691577">"Izmantojiet ierīces komplektācijā iekļauto lādētāju"</string> <string name="battery_low_why" msgid="2056750982959359863">"Iestatījumi"</string> <string name="battery_saver_confirmation_title" msgid="1234998463717398453">"Vai ieslēgt akumulatora enerģijas taupīšanas režīmu?"</string> <string name="battery_saver_confirmation_title_generic" msgid="2299231884234959849">"Par akumulatora enerģijas taupīšanas režīmu"</string> @@ -425,8 +425,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC ir atspējoti"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC ir iespējoti"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ekrāna ierakstīšana"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Sākt"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Apturēt"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Vai vēlaties atbloķēt ierīces mikrofonu?"</string> diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml index 8b83e61315a9..6a092d6de9b7 100644 --- a/packages/SystemUI/res/values-mk/strings.xml +++ b/packages/SystemUI/res/values-mk/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC е оневозможено"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC е овозможено"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Снимање екран"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Започни"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Сопри"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Да се одблокира пристапот до микрофонот на уредот?"</string> diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml index 5b953880a21d..292e1e19a482 100644 --- a/packages/SystemUI/res/values-ml/strings.xml +++ b/packages/SystemUI/res/values-ml/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC പ്രവർത്തനരഹിതമാക്കി"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC പ്രവർത്തനക്ഷമമാക്കി"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"സ്ക്രീൻ റെക്കോർഡ്"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"ആരംഭിക്കുക"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"നിര്ത്തുക"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"ഉപകരണ മൈക്രോഫോൺ അൺബ്ലോക്ക് ചെയ്യണോ?"</string> diff --git a/packages/SystemUI/res/values-mn/strings.xml b/packages/SystemUI/res/values-mn/strings.xml index 0e9a5cbe94cc..2bcca675924b 100644 --- a/packages/SystemUI/res/values-mn/strings.xml +++ b/packages/SystemUI/res/values-mn/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC-г цуцалсан"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC-г идэвхжүүлсэн"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Дэлгэцийн үйлдэл бичих"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Эхлүүлэх"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Зогсоох"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Төхөөрөмжийн микрофоныг блокоос гаргах уу?"</string> diff --git a/packages/SystemUI/res/values-mr/strings.xml b/packages/SystemUI/res/values-mr/strings.xml index 8b9f5c17f914..c69992b1199d 100644 --- a/packages/SystemUI/res/values-mr/strings.xml +++ b/packages/SystemUI/res/values-mr/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC अक्षम केले आहे"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC सक्षम केले आहे"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"स्क्रीन रेकॉर्ड"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"सुरू"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"थांबा"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"डिव्हाइसचा मायक्रोफोन अनब्लॉक करायचा आहे का?"</string> @@ -1113,16 +1112,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"प्राधान्य दिलेली संभाषणे"</string> <string name="recent_conversations" msgid="8531874684782574622">"अलीकडील संभाषणे"</string> <string name="okay" msgid="6490552955618608554">"ओके"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> दिवसांपूर्वी"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"१ आठवड्यापूर्वी"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"२ आठवड्यांपूर्वी"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"१ आठवड्यापेक्षा जास्त आधी"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"२ आठवड्यांपेक्षा जास्त आधी"</string> <string name="birthday_status" msgid="2596961629465396761">"वाढदिवस"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"आज <xliff:g id="NAME">%1$s</xliff:g> यांचा वाढदिवस आहे"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"वाढदिवस लवकरच आहे"</string> diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml index 0ec67d50de48..d2780b9870f3 100644 --- a/packages/SystemUI/res/values-ms/strings.xml +++ b/packages/SystemUI/res/values-ms/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC dilumpuhkan"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC didayakan"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Rakam skrin"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Mula"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Berhenti"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Nyahsekat mikrofon peranti?"</string> diff --git a/packages/SystemUI/res/values-my/strings.xml b/packages/SystemUI/res/values-my/strings.xml index beaad24bc401..a8b5f0809d90 100644 --- a/packages/SystemUI/res/values-my/strings.xml +++ b/packages/SystemUI/res/values-my/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC ကို ပိတ်ထားသည်"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC ကို ဖွင့်ထားသည်"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"ဖန်သားပြင် ရိုက်ကူးရန်"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"စတင်ရန်"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"ရပ်ရန်"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"စက်၏မိုက်ခရိုဖုန်းကို ပြန်ဖွင့်မလား။"</string> @@ -751,7 +750,7 @@ <string name="notification_multichannel_desc" msgid="7414593090056236179">"ဤအကြောင်းကြားချက်အုပ်စုကို ဤနေရာတွင် စီစဉ်သတ်မှတ်၍ မရပါ"</string> <string name="notification_delegate_header" msgid="1264510071031479920">"ပရောက်စီထည့်ထားသော အကြောင်းကြားချက်"</string> <string name="notification_channel_dialog_title" msgid="6856514143093200019">"<xliff:g id="APP_NAME">%1$s</xliff:g> အကြောင်းကြားချက်များ အားလုံး"</string> - <string name="see_more_title" msgid="7409317011708185729">"ပိုပြရန်"</string> + <string name="see_more_title" msgid="7409317011708185729">"ပိုကြည့်ရန်"</string> <string name="appops_camera" msgid="5215967620896725715">"ဤအက်ပ်က ကင်မရာကို အသုံးပြုနေသည်။"</string> <string name="appops_microphone" msgid="8805468338613070149">"ဤအက်ပ်က မိုက်ခရိုဖုန်းကို အသုံးပြုနေသည်။"</string> <string name="appops_overlay" msgid="4822261562576558490">"ဤအက်ပ်က ဖန်သားမျက်နှာပြင်ပေါ်ရှိ အခြားအက်ပ်များ အပေါ်မှ ထပ်ပြီး ပြသနေပါသည်။"</string> @@ -1040,7 +1039,7 @@ <string name="accessibility_floating_button_action_move_bottom_right" msgid="6196904373227440500">"ညာဘက်အောက်ခြေသို့ ရွှေ့ရန်"</string> <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"အစွန်းသို့ရွှေ့ပြီး ဝှက်ရန်"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"အစွန်းမှရွှေ့ပြီး ပြရန်"</string> - <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ခလုတ်"</string> + <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"ပြောင်းရန်"</string> <string name="quick_controls_title" msgid="7095074621086860062">"ပင်မ ထိန်းချုပ်မှုများ"</string> <string name="controls_providers_title" msgid="6879775889857085056">"ထိန်းချုပ်မှုများထည့်ရန် အက်ပ်ရွေးခြင်း"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> @@ -1076,7 +1075,7 @@ <string name="controls_pin_instructions_retry" msgid="1566667581012131046">"နောက်ပင်နံပါတ်တစ်ခု စမ်းကြည့်ရန်"</string> <string name="controls_confirmation_confirming" msgid="2596071302617310665">"အတည်ပြုနေသည်…"</string> <string name="controls_confirmation_message" msgid="7744104992609594859">"<xliff:g id="DEVICE">%s</xliff:g> အတွက် အပြောင်းအလဲကို အတည်ပြုပါ"</string> - <string name="controls_structure_tooltip" msgid="4355922222944447867">"ပိုမိုကြည့်ရှုရန် ပွတ်ဆွဲပါ"</string> + <string name="controls_structure_tooltip" msgid="4355922222944447867">"ပိုကြည့်ရန် ပွတ်ဆွဲပါ"</string> <string name="controls_seeding_in_progress" msgid="3033855341410264148">"အကြံပြုချက်များ ဖွင့်နေသည်"</string> <string name="controls_media_title" msgid="1746947284862928133">"မီဒီယာ"</string> <string name="controls_media_close_session" msgid="1193000643003066508">"ဤမီဒီယာစက်ရှင်ကို ဝှက်မလား။"</string> diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index e99c18dbd35d..c7507c9db654 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC er slått av"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC er slått på"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Skjermopptak"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Start"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Stopp"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Vil du oppheve blokkeringen av enhetsmikrofonen?"</string> diff --git a/packages/SystemUI/res/values-ne/strings.xml b/packages/SystemUI/res/values-ne/strings.xml index 05f0f10bf5c2..b649ebae5eba 100644 --- a/packages/SystemUI/res/values-ne/strings.xml +++ b/packages/SystemUI/res/values-ne/strings.xml @@ -136,8 +136,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"क्यामेरा"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"फोन"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"आवाज सहायता"</string> - <!-- no translation found for accessibility_wallet_button (1458258783460555507) --> - <skip /> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"वालेट"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"खोल्नुहोस्"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"यन्त्र लक गरिएको छ"</string> <string name="accessibility_waiting_for_fingerprint" msgid="5209142744692162598">"फिंगरप्रिन्ट कुर्दै"</string> @@ -409,8 +408,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="6798849610647988987">"<xliff:g id="DATA_USED">%s</xliff:g> प्रयोग गरियो"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"<xliff:g id="DATA_LIMIT">%s</xliff:g> सीमा"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"<xliff:g id="DATA_LIMIT">%s</xliff:g> चेतावनी दिँदै"</string> - <!-- no translation found for quick_settings_work_mode_label (6440531507319809121) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"कामसम्बन्धी एपहरू"</string> <string name="quick_settings_night_display_label" msgid="8180030659141778180">"Night Light"</string> <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"सूर्यास्तमा सक्रिय"</string> <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"सूर्योदयसम्म"</string> @@ -1043,8 +1041,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"किनारामा सार्नुहोस् र नदेखिने पार्नु…"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"किनाराबाट सार्नुहोस् र देखिने पार्नु…"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"टगल गर्नुहोस्"</string> - <!-- no translation found for quick_controls_title (7095074621086860062) --> - <skip /> + <string name="quick_controls_title" msgid="7095074621086860062">"घरायसी उपकरणका नियन्त्रणहरू"</string> <string name="controls_providers_title" msgid="6879775889857085056">"नियन्त्रणहरू थप्नु पर्ने एप छान्नुहोस्"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="other"><xliff:g id="NUMBER_1">%s</xliff:g> वटा नियन्त्र थपियो।</item> @@ -1058,8 +1055,7 @@ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"मन पर्ने कुराहरूको सूचीमा नराख्नुहोस्"</string> <string name="accessibility_control_move" msgid="8980344493796647792">"<xliff:g id="NUMBER">%d</xliff:g>ले निर्देश गर्ने ठाउँमा सार्नुहोस्"</string> <string name="controls_favorite_default_title" msgid="967742178688938137">"नियन्त्रणहरू"</string> - <!-- no translation found for controls_favorite_subtitle (6481675111056961083) --> - <skip /> + <string name="controls_favorite_subtitle" msgid="6481675111056961083">"आफूले द्रुत सेटिङबाट प्रयोग गर्न चाहेका नियन्त्रणहरू छान्नुहोस्"</string> <string name="controls_favorite_rearrange" msgid="5616952398043063519">"नियन्त्रणहरूको क्रम मिलाउन तिनलाई थिचेर ड्र्याग गर्नुहोस्"</string> <string name="controls_favorite_removed" msgid="5276978408529217272">"सबै नियन्त्रणहरू हटाइए"</string> <string name="controls_favorite_toast_no_changes" msgid="7094494210840877931">"परिवर्तनहरू सुरक्षित गरिएका छैनन्"</string> @@ -1098,8 +1094,7 @@ <string name="controls_error_generic" msgid="352500456918362905">"वस्तुस्थिति लोड गर्न सकिएन"</string> <string name="controls_error_failed" msgid="960228639198558525">"त्रुटि भयो, फेरि प्रयास गर्नु…"</string> <string name="controls_in_progress" msgid="4421080500238215939">"कार्य हुँदै छ"</string> - <!-- no translation found for controls_added_tooltip (5866098408470111984) --> - <skip /> + <string name="controls_added_tooltip" msgid="5866098408470111984">"नयाँ नियन्त्रणहरू हेर्न द्रुत सेटिङ खोल्नुहोस्"</string> <string name="controls_menu_add" msgid="4447246119229920050">"नियन्त्रण सुविधाहरू थप्नुहोस्"</string> <string name="controls_menu_edit" msgid="890623986951347062">"नियन्त्रण सुविधाहरू सम्पादन गर्नु…"</string> <string name="media_output_dialog_add_output" msgid="5642703238877329518">"आउटपुट यन्त्रहरू थप्नुहोस्"</string> @@ -1118,16 +1113,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"महत्त्वपूर्ण वार्तालापहरू"</string> <string name="recent_conversations" msgid="8531874684782574622">"हालसालैका वार्तालापहरू"</string> <string name="okay" msgid="6490552955618608554">"ठिक छ"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> दिनअघि"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"१ हप्ताअघि"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"२ हप्ताअघि"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"१ हप्ताभन्दा पहिले"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"२ हप्ताभन्दा पहिले"</string> <string name="birthday_status" msgid="2596961629465396761">"जन्मदिन"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"आज <xliff:g id="NAME">%1$s</xliff:g> को जन्मदिन हो"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"आगामी जन्मदिन"</string> @@ -1158,8 +1148,6 @@ <string name="accessibility_authenticate_hint" msgid="798914151813205721">"प्रमाणित गर्नुहोस्"</string> <string name="accessibility_enter_hint" msgid="2617864063504824834">"डिभाइस हाल्नुहोस्"</string> <string name="keyguard_try_fingerprint" msgid="2825130772993061165">"फिंगरप्रिन्ट प्रयोग गरी खोल्नुहोस्"</string> - <!-- no translation found for accessibility_fingerprint_bouncer (7189102492498735519) --> - <skip /> - <!-- no translation found for ongoing_phone_call_content_description (5332334388483099947) --> - <skip /> + <string name="accessibility_fingerprint_bouncer" msgid="7189102492498735519">"पुष्टि गर्नु पर्ने हुन्छ। पुष्टि गर्न फिंगरप्रिन्ट सेन्सर छुनुहोस्।"</string> + <string name="ongoing_phone_call_content_description" msgid="5332334388483099947">"जारी फोन कल"</string> </resources> diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index 5eb67001a6b4..b0df16e59963 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC staat uit"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC staat aan"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Schermopname"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Starten"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Stoppen"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Blokkeren van apparaatmicrofoon opheffen?"</string> diff --git a/packages/SystemUI/res/values-or/strings.xml b/packages/SystemUI/res/values-or/strings.xml index a15efe24f8ee..9b0350686dbc 100644 --- a/packages/SystemUI/res/values-or/strings.xml +++ b/packages/SystemUI/res/values-or/strings.xml @@ -1113,16 +1113,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"ପ୍ରାଥମିକତା ଦିଆଯାଇଥିବା ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string> <string name="recent_conversations" msgid="8531874684782574622">"ବର୍ତ୍ତମାନର ବାର୍ତ୍ତାଳାପଗୁଡ଼ିକ"</string> <string name="okay" msgid="6490552955618608554">"ଠିକ୍ ଅଛି"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> ଦିନ ପୂର୍ବେ"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"1 ସପ୍ତାହ ପୂର୍ବେ"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 ସପ୍ତାହ ପୂର୍ବେ"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"1 ସପ୍ତାହରୁ ଅଧିକ ଦିନ ଆଗରୁ"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"2 ସପ୍ତାହରୁ ଅଧିକ ଦିନ ଆଗରୁ"</string> <string name="birthday_status" msgid="2596961629465396761">"ଜନ୍ମଦିନ"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"ଆଜି <xliff:g id="NAME">%1$s</xliff:g>ଙ୍କର ଜନ୍ମଦିନ"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"ଜନ୍ମଦିନ ଶୀଘ୍ର ଆସୁଛି"</string> diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml index b6a9c86dddbd..d9f4f9667420 100644 --- a/packages/SystemUI/res/values-pa/strings.xml +++ b/packages/SystemUI/res/values-pa/strings.xml @@ -1113,16 +1113,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"ਤਰਜੀਹੀ ਗੱਲਾਂਬਾਤਾਂ"</string> <string name="recent_conversations" msgid="8531874684782574622">"ਹਾਲੀਆ ਗੱਲਾਂਬਾਤਾਂ"</string> <string name="okay" msgid="6490552955618608554">"ਠੀਕ ਹੈ"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> ਦਿਨ ਪਹਿਲਾਂ"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"1 ਹਫ਼ਤਾ ਪਹਿਲਾਂ"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 ਹਫ਼ਤੇ ਪਹਿਲਾਂ"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"1 ਹਫ਼ਤੇ ਤੋਂ ਵੀ ਪਹਿਲਾਂ"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"2 ਹਫ਼ਤੇ ਤੋਂ ਵੀ ਪਹਿਲਾਂ"</string> <string name="birthday_status" msgid="2596961629465396761">"ਜਨਮਦਿਨ"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"ਅੱਜ <xliff:g id="NAME">%1$s</xliff:g> ਦਾ ਜਨਮਦਿਨ ਹੈ"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"ਜਨਮਦਿਨ ਜਲਦ ਆ ਰਿਹਾ ਹੈ"</string> diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 47abb55b9f14..458bf0a142db 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -412,8 +412,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="6798849610647988987">"Wykorzyst.: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Limit <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Ostrzeżenie: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6440531507319809121) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"Aplikacje służbowe"</string> <string name="quick_settings_night_display_label" msgid="8180030659141778180">"Podświetlenie nocne"</string> <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Włącz o zachodzie"</string> <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Do wschodu słońca"</string> @@ -428,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"Komunikacja NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Komunikacja NFC jest wyłączona"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Komunikacja NFC jest włączona"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Nagrywanie ekranu"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Rozpocznij"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Zatrzymaj"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Odblokować mikrofon urządzenia?"</string> @@ -543,7 +541,7 @@ <string name="quick_settings_disclosure_named_management_vpns" msgid="4046375645500668555">"To urządzenie należy do organizacji <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> i jest połączone z sieciami VPN"</string> <string name="quick_settings_disclosure_managed_profile_monitoring" msgid="1423899084754272514">"Twoja organizacja może monitorować ruch w sieci w Twoim profilu służbowym"</string> <string name="quick_settings_disclosure_named_managed_profile_monitoring" msgid="8321469176706219860">"Organizacja <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> może monitorować ruch w sieci w Twoim profilu służbowym"</string> - <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"Aktywność w sieci w profilu służbowym widoczna dla administratora IT"</string> + <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"Aktywność w sieci w profilu służbowym jest widoczna dla administratora IT"</string> <string name="quick_settings_disclosure_monitoring" msgid="8548019955631378680">"Sieć może być monitorowana"</string> <string name="quick_settings_disclosure_vpns" msgid="7213546797022280246">"To urządzenie jest połączone z sieciami VPN"</string> <string name="quick_settings_disclosure_managed_profile_named_vpn" msgid="8117568745060010789">"Twój profil służbowy jest połączony z siecią <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> @@ -1052,8 +1050,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Przenieś do krawędzi i ukryj"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Przenieś poza krawędź i pokaż"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"przełącz"</string> - <!-- no translation found for quick_controls_title (7095074621086860062) --> - <skip /> + <string name="quick_controls_title" msgid="7095074621086860062">"Sterowanie domem"</string> <string name="controls_providers_title" msgid="6879775889857085056">"Wybierz aplikację, do której chcesz dodać elementy sterujące"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="few">Dodano <xliff:g id="NUMBER_1">%s</xliff:g> elementy sterujące</item> @@ -1069,8 +1066,7 @@ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"usunąć z ulubionych"</string> <string name="accessibility_control_move" msgid="8980344493796647792">"Przenieś w położenie <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="controls_favorite_default_title" msgid="967742178688938137">"Elementy sterujące"</string> - <!-- no translation found for controls_favorite_subtitle (6481675111056961083) --> - <skip /> + <string name="controls_favorite_subtitle" msgid="6481675111056961083">"Wybierz elementy sterujące dostępne w Szybkich ustawieniach"</string> <string name="controls_favorite_rearrange" msgid="5616952398043063519">"Przytrzymaj i przeciągnij, aby przestawić elementy sterujące"</string> <string name="controls_favorite_removed" msgid="5276978408529217272">"Usunięto wszystkie elementy sterujące"</string> <string name="controls_favorite_toast_no_changes" msgid="7094494210840877931">"Zmiany nie zostały zapisane"</string> @@ -1109,8 +1105,7 @@ <string name="controls_error_generic" msgid="352500456918362905">"Nie udało się wczytać stanu"</string> <string name="controls_error_failed" msgid="960228639198558525">"Błąd, spróbuj ponownie"</string> <string name="controls_in_progress" msgid="4421080500238215939">"W toku"</string> - <!-- no translation found for controls_added_tooltip (5866098408470111984) --> - <skip /> + <string name="controls_added_tooltip" msgid="5866098408470111984">"Otwórz Szybkie ustawienia, by zobaczyć nowe elementy sterujące"</string> <string name="controls_menu_add" msgid="4447246119229920050">"Dodaj elementy sterujące"</string> <string name="controls_menu_edit" msgid="890623986951347062">"Edytuj elementy sterujące"</string> <string name="media_output_dialog_add_output" msgid="5642703238877329518">"Dodaj urządzenia wyjściowe"</string> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index a61a2bef400c..bbe3cc01b2a6 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -425,8 +425,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Serviciul NFC este dezactivat"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Serviciul NFC este activat"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Înregistrarea ecranului"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Începeți"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Opriți"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Deblocați microfonul dispozitivului?"</string> @@ -1046,7 +1045,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Mutați în afară și ascundeți"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Mutați în afară și afișați"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"Activați / dezactivați"</string> - <string name="quick_controls_title" msgid="7095074621086860062">"Controalele locuinței"</string> + <string name="quick_controls_title" msgid="7095074621086860062">"Comenzi pentru locuință"</string> <string name="controls_providers_title" msgid="6879775889857085056">"Alegeți aplicația pentru a adăuga comenzi"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="few">S-au adăugat <xliff:g id="NUMBER_1">%s</xliff:g> comenzi.</item> diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index a1b8919cd215..80bf12aaede7 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"Модуль NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Модуль NFC отключен"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Модуль NFC включен"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Запись видео с экрана"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Начать"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Остановить"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Разблокировать микрофон устройства?"</string> diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml index 2312f157eb04..89127274b84c 100644 --- a/packages/SystemUI/res/values-si/strings.xml +++ b/packages/SystemUI/res/values-si/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC අබලයි"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC සබලයි"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"තිර පටිගත කිරීම"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"ආරම්භ කරන්න"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"නතර කරන්න"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"උපාංග මයික්රෆෝනය අවහිර කිරීම ඉවත් කරන්නද?"</string> diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index b5683d42277d..dd36b29ff569 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC je deaktivované"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC je aktivované"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Rekordér obrazovky"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Začať"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Ukončiť"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Chcete odblokovať mikrofón zariadenia?"</string> diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 94ed73343479..8ba5d797b6aa 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Tehnologija NFC je onemogočena"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Tehnologija NFC je omogočena"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Snemanje zaslona"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Začni"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Ustavi"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Želite odblokirati mikrofon v napravi?"</string> diff --git a/packages/SystemUI/res/values-sq/strings.xml b/packages/SystemUI/res/values-sq/strings.xml index 746091d96a85..e17d51779653 100644 --- a/packages/SystemUI/res/values-sq/strings.xml +++ b/packages/SystemUI/res/values-sq/strings.xml @@ -408,8 +408,7 @@ <string name="quick_settings_cellular_detail_data_used" msgid="6798849610647988987">"Të përdorura: <xliff:g id="DATA_USED">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_limit" msgid="1791389609409211628">"Kufiri: <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> <string name="quick_settings_cellular_detail_data_warning" msgid="7957253810481086455">"Paralajmërim për kufirin prej <xliff:g id="DATA_LIMIT">%s</xliff:g>"</string> - <!-- no translation found for quick_settings_work_mode_label (6440531507319809121) --> - <skip /> + <string name="quick_settings_work_mode_label" msgid="6440531507319809121">"Aplikacionet e punës"</string> <string name="quick_settings_night_display_label" msgid="8180030659141778180">"Drita e natës"</string> <string name="quick_settings_night_secondary_label_on_at_sunset" msgid="3358706312129866626">"Në perëndim të diellit"</string> <string name="quick_settings_night_secondary_label_until_sunrise" msgid="4063448287758262485">"Deri në lindje të diellit"</string> @@ -424,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC është çaktivizuar"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC është aktivizuar"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Regjistrimi i ekranit"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Nis"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Ndalo"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Të zhbllokohet mikrofoni i pajisjes?"</string> @@ -1042,8 +1040,7 @@ <string name="accessibility_floating_button_action_move_to_edge_and_hide_to_half" msgid="662401168245782658">"Zhvendose te skaji dhe fshihe"</string> <string name="accessibility_floating_button_action_move_out_edge_and_show" msgid="8354760891651663326">"Zhvendose jashtë skajit dhe shfaqe"</string> <string name="accessibility_floating_button_action_double_tap_to_toggle" msgid="7976492639670692037">"aktivizo/çaktivizo"</string> - <!-- no translation found for quick_controls_title (7095074621086860062) --> - <skip /> + <string name="quick_controls_title" msgid="7095074621086860062">"Kontrollet e shtëpisë"</string> <string name="controls_providers_title" msgid="6879775889857085056">"Zgjidh aplikacionin për të shtuar kontrollet"</string> <plurals name="controls_number_of_favorites" formatted="false" msgid="1057347832073807380"> <item quantity="other">U shtuan <xliff:g id="NUMBER_1">%s</xliff:g> kontrolle.</item> @@ -1057,8 +1054,7 @@ <string name="accessibility_control_change_unfavorite" msgid="6997408061750740327">"ta heqësh nga të preferuarat"</string> <string name="accessibility_control_move" msgid="8980344493796647792">"Zhvendose te pozicioni <xliff:g id="NUMBER">%d</xliff:g>"</string> <string name="controls_favorite_default_title" msgid="967742178688938137">"Kontrollet"</string> - <!-- no translation found for controls_favorite_subtitle (6481675111056961083) --> - <skip /> + <string name="controls_favorite_subtitle" msgid="6481675111056961083">"Zgjidh kontrollet për t\'u qasur nga \"Cilësimet e shpejta\""</string> <string name="controls_favorite_rearrange" msgid="5616952398043063519">"Mbaje të shtypur dhe zvarrit për të risistemuar kontrollet"</string> <string name="controls_favorite_removed" msgid="5276978408529217272">"Të gjitha kontrollet u hoqën"</string> <string name="controls_favorite_toast_no_changes" msgid="7094494210840877931">"Ndryshimet nuk u ruajtën"</string> @@ -1097,8 +1093,7 @@ <string name="controls_error_generic" msgid="352500456918362905">"Statusi nuk mund të ngarkohet"</string> <string name="controls_error_failed" msgid="960228639198558525">"Gabim, provo sërish"</string> <string name="controls_in_progress" msgid="4421080500238215939">"Në vazhdim"</string> - <!-- no translation found for controls_added_tooltip (5866098408470111984) --> - <skip /> + <string name="controls_added_tooltip" msgid="5866098408470111984">"Hap \"Cilësimet e shpejta\" për të shikuar kontrollet e reja"</string> <string name="controls_menu_add" msgid="4447246119229920050">"Shto kontrollet"</string> <string name="controls_menu_edit" msgid="890623986951347062">"Modifiko kontrollet"</string> <string name="media_output_dialog_add_output" msgid="5642703238877329518">"Shto daljet"</string> @@ -1117,16 +1112,11 @@ <string name="priority_conversations" msgid="3967482288896653039">"Bisedat me përparësi"</string> <string name="recent_conversations" msgid="8531874684782574622">"Bisedat e fundit"</string> <string name="okay" msgid="6490552955618608554">"Në rregull"</string> - <!-- no translation found for days_timestamp (5821854736213214331) --> - <skip /> - <!-- no translation found for one_week_timestamp (4925600765473875590) --> - <skip /> - <!-- no translation found for two_weeks_timestamp (9111801081871962155) --> - <skip /> - <!-- no translation found for over_one_week_timestamp (3770560704420807142) --> - <skip /> - <!-- no translation found for over_two_weeks_timestamp (6300507859007874050) --> - <skip /> + <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> ditë më parë"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"1 javë më parë"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 javë më parë"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"Mbi 1 javë më parë"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"Mbi 2 javë më parë"</string> <string name="birthday_status" msgid="2596961629465396761">"Ditëlindja"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"<xliff:g id="NAME">%1$s</xliff:g> ka ditëlindjen"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"Ditëlindje së shpejti"</string> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 0c3bae4ea300..7ed0cd189ea1 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -425,8 +425,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC је онемогућен"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC је омогућен"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Снимање екрана"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Почните"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Зауставите"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Желите да одблокирате микрофон уређаја?"</string> diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 6f49e049ac77..e7f6fe54f404 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -378,7 +378,7 @@ <string name="quick_settings_cast_device_default_name" msgid="6988469571141331700">"Namnlös enhet"</string> <string name="quick_settings_cast_device_default_description" msgid="2580520859212250265">"Redo att casta"</string> <string name="quick_settings_cast_detail_empty_text" msgid="2846282280014617785">"Inga tillgängliga enheter"</string> - <string name="quick_settings_cast_no_wifi" msgid="6980194769795014875">"Inte ansluten till wifi"</string> + <string name="quick_settings_cast_no_wifi" msgid="6980194769795014875">"Ej ansluten till wifi"</string> <string name="quick_settings_brightness_dialog_title" msgid="4980669966716685588">"Ljusstyrka"</string> <string name="quick_settings_brightness_dialog_auto_brightness_label" msgid="2325362583903258677">"AUTO"</string> <string name="quick_settings_inversion_label" msgid="5078769633069667698">"Invertera färger"</string> @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC är inaktiverat"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC är aktiverat"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Skärminspelning"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Starta"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Stoppa"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Vill du återaktivera enhetens mikrofon?"</string> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 9b2025028ced..bbc7a75ec172 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC imezimwa"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC imewashwa"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Rekodi ya skrini"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Anza kurekodi"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Acha kurekodi"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Ungependa kuondoa kizuizi kwenye maikrofoni ya kifaa?"</string> diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml index 3c14595fe052..8c2649ef5a04 100644 --- a/packages/SystemUI/res/values-ta/strings.xml +++ b/packages/SystemUI/res/values-ta/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC முடக்கப்பட்டது"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC இயக்கப்பட்டது"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"ஸ்கிரீன் ரெக்கார்டு"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"தொடங்கு"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"நிறுத்து"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"சாதனத்தின் மைக்ரோஃபோனுக்கான தடுப்பை நீக்கவா?"</string> diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml index 076a24bce142..407ab00d994b 100644 --- a/packages/SystemUI/res/values-te/strings.xml +++ b/packages/SystemUI/res/values-te/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC నిలిపివేయబడింది"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC ప్రారంభించబడింది"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"స్క్రీన్ రికార్డ్"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"ప్రారంభించు"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"ఆపు"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"పరికరం మైక్రోఫోన్ను అన్బ్లాక్ చేయమంటారా?"</string> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 9e88d34a3073..1536d9a78a21 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC ถูกปิดใช้งาน"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"เปิดใช้งาน NFC แล้ว"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"บันทึกหน้าจอ"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"เริ่ม"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"หยุด"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"เลิกบล็อกไมโครโฟนของอุปกรณ์ใช่ไหม"</string> @@ -860,7 +859,7 @@ <string name="accessibility_data_saver_off" msgid="58339669022107171">"โปรแกรมประหยัดอินเทอร์เน็ตปิดอยู่"</string> <string name="switch_bar_on" msgid="1770868129120096114">"เปิด"</string> <string name="switch_bar_off" msgid="5669805115416379556">"ปิด"</string> - <string name="tile_unavailable" msgid="3095879009136616920">"ไม่มี"</string> + <string name="tile_unavailable" msgid="3095879009136616920">"ไม่พร้อมใช้งาน"</string> <string name="tile_disabled" msgid="373212051546573069">"ปิดใช้"</string> <string name="nav_bar" msgid="4642708685386136807">"แถบนำทาง"</string> <string name="nav_bar_layout" msgid="4716392484772899544">"การจัดวาง"</string> diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index f6ac329d54f9..0ece0cb44788 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"Naka-disable ang NFC"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"Naka-enable ang NFC"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Pag-record ng screen"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Magsimula"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Ihinto"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"I-unblock ang mikropono ng device?"</string> @@ -1114,10 +1113,10 @@ <string name="recent_conversations" msgid="8531874684782574622">"Mga kamakailang pag-uusap"</string> <string name="okay" msgid="6490552955618608554">"Okay"</string> <string name="days_timestamp" msgid="5821854736213214331">"<xliff:g id="DURATION">%1$s</xliff:g> (na) araw ang nakalipas"</string> - <string name="one_week_timestamp" msgid="4925600765473875590">"1 linggo ang nakalipas"</string> - <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 linggo ang nakalipas"</string> - <string name="over_one_week_timestamp" msgid="3770560704420807142">"Mahigit 1 linggo ang nakalipas"</string> - <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"Mahigit 2 linggo ang nakalipas"</string> + <string name="one_week_timestamp" msgid="4925600765473875590">"1 linggo na"</string> + <string name="two_weeks_timestamp" msgid="9111801081871962155">"2 linggo na"</string> + <string name="over_one_week_timestamp" msgid="3770560704420807142">"Mahigit 1 linggo na"</string> + <string name="over_two_weeks_timestamp" msgid="6300507859007874050">"Mahigit 2 linggo na"</string> <string name="birthday_status" msgid="2596961629465396761">"Kaarawan"</string> <string name="birthday_status_content_description" msgid="682836371128282925">"Kaarawan ni <xliff:g id="NAME">%1$s</xliff:g> ngayon"</string> <string name="upcoming_birthday_status" msgid="2005452239256870351">"Kaarawang paparating"</string> diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index ddadcc81c865..c0702e9523cd 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC devre dışı"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC etkin"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ekran kaydı"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Başlat"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Durdur"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Cihaz mikrofonunun engellemesi kaldırılsın mı?"</string> diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index 36b96cf4d8fa..2b6183d5b25c 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -427,8 +427,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC вимкнено"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC ввімкнено"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Запис відео з екрана"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Почати"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Зупинити"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Надати доступ до мікрофона?"</string> diff --git a/packages/SystemUI/res/values-ur/strings.xml b/packages/SystemUI/res/values-ur/strings.xml index e198d996a60b..f27f81317c7e 100644 --- a/packages/SystemUI/res/values-ur/strings.xml +++ b/packages/SystemUI/res/values-ur/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC غیر فعال ہے"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC فعال ہے"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"اسکرین ریکارڈ"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"شروع کریں"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"روکیں"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"آلے کا مائیکروفون غیر مسدود کریں؟"</string> diff --git a/packages/SystemUI/res/values-uz/strings.xml b/packages/SystemUI/res/values-uz/strings.xml index fc31ebc82d29..6a9d46f69e40 100644 --- a/packages/SystemUI/res/values-uz/strings.xml +++ b/packages/SystemUI/res/values-uz/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC o‘chiq"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC yoniq"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ekranni yozib olish"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Boshlash"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Toʻxtatish"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Qurilma mikrofoni blokdan chiqarilsinmi?"</string> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index d6844e866cb4..86ee67a82818 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC đã được tắt"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC đã được bật"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"Ghi màn hình"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"Bắt đầu"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"Dừng"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"Bỏ chặn micrô của thiết bị?"</string> diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index ccaec6495b79..928510bebbb8 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC 已停用"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC 已启用"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"屏幕录制"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"开始"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"停止"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"要取消禁用设备麦克风吗?"</string> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 03bc62995f7e..a80896f3cc73 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC 已停用"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC 已啟用"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"螢幕錄影"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"開始"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"停"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"要解除封鎖裝置麥克風嗎?"</string> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 47cc4c384a43..7584d230a774 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -423,8 +423,7 @@ <string name="quick_settings_nfc_label" msgid="1054317416221168085">"NFC"</string> <string name="quick_settings_nfc_off" msgid="3465000058515424663">"NFC 已停用"</string> <string name="quick_settings_nfc_on" msgid="1004976611203202230">"NFC 已啟用"</string> - <!-- no translation found for quick_settings_screen_record_label (8650355346742003694) --> - <skip /> + <string name="quick_settings_screen_record_label" msgid="8650355346742003694">"螢幕錄影"</string> <string name="quick_settings_screen_record_start" msgid="1574725369331638985">"開始"</string> <string name="quick_settings_screen_record_stop" msgid="8087348522976412119">"停止"</string> <string name="sensor_privacy_start_use_mic_dialog_title" msgid="563796653825944944">"要將裝置麥克風解除封鎖嗎?"</string> diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index d4dbcf969a73..be9065b2c13b 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -352,7 +352,7 @@ <!-- Nav bar button default ordering/layout --> <string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string> <string name="config_navBarLayoutQuickstep" translatable="false">back[1.7WC];home;contextual[1.7WC]</string> - <string name="config_navBarLayoutHandle" translatable="false">back[40AC];home_handle;ime_switcher[40AC]</string> + <string name="config_navBarLayoutHandle" translatable="false">back[70AC];home_handle;ime_switcher[70AC]</string> <bool name="quick_settings_show_full_alarm">false</bool> diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 24eac1593195..b2ab5f782d71 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -472,6 +472,8 @@ <dimen name="volume_dialog_panel_transparent_padding">20dp</dimen> + <dimen name="volume_dialog_ringer_rows_padding">7dp</dimen> + <dimen name="volume_dialog_stream_padding">12dp</dimen> <dimen name="volume_dialog_panel_width">56dp</dimen> diff --git a/packages/SystemUI/res/values/ids.xml b/packages/SystemUI/res/values/ids.xml index bdc7bdb2d2f7..f4f881f1ffa5 100644 --- a/packages/SystemUI/res/values/ids.xml +++ b/packages/SystemUI/res/values/ids.xml @@ -100,6 +100,7 @@ <!-- For notification icons for which targetSdk < L, this caches whether the icon is grayscale --> <item type="id" name="icon_is_grayscale" /> <item type="id" name="image_icon_tag" /> + <item type="id" name="align_transform_end_tag" /> <item type="id" name="contains_transformed_view" /> <item type="id" name="is_clicked_heads_up_tag" /> diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java index 3ab2cca09a29..299ecebd021c 100644 --- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java @@ -228,9 +228,7 @@ public class KeyguardStatusView extends GridLayout { } mDarkAmount = darkAmount; mClockView.setDarkAmount(darkAmount); - if (mMediaHostContainer.getVisibility() != View.GONE) { - CrossFadeHelper.fadeOut(mMediaHostContainer, darkAmount); - } + CrossFadeHelper.fadeOut(mMediaHostContainer, darkAmount); updateDark(); } diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java index b7f2cd0da642..be7adbc77ca1 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java @@ -416,10 +416,10 @@ public class InternetTile extends QSTileImpl<SignalState> { if (cb.mAirplaneModeEnabled) { if (!state.value) { state.state = Tile.STATE_INACTIVE; - state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_airplane); + state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_unavailable); state.secondaryLabel = r.getString(R.string.status_bar_airplane); } else if (!wifiConnected) { - state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_airplane); + state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_unavailable); if (cb.mNoNetworksAvailable) { state.secondaryLabel = r.getString(R.string.quick_settings_networks_unavailable); @@ -486,7 +486,7 @@ public class InternetTile extends QSTileImpl<SignalState> { if (cb.mAirplaneModeEnabled && cb.mQsTypeIcon != TelephonyIcons.ICON_CWF) { state.state = Tile.STATE_INACTIVE; - state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_airplane); + state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_unavailable); state.secondaryLabel = r.getString(R.string.status_bar_airplane); } else if (cb.mNoDefaultNetwork && cb.mNoNetworksAvailable) { state.icon = ResourceIcon.get(R.drawable.ic_qs_no_internet_unavailable); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java index 99c0f4ea5144..889dfde3a66d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java @@ -53,37 +53,26 @@ import com.android.systemui.statusbar.phone.NotificationIconContainer; public class NotificationShelf extends ActivatableNotificationView implements View.OnLayoutChangeListener, StateListener { - private static final boolean ICON_ANMATIONS_WHILE_SCROLLING - = SystemProperties.getBoolean("debug.icon_scroll_animations", true); private static final int TAG_CONTINUOUS_CLIPPING = R.id.continuous_clipping_tag; private static final String TAG = "NotificationShelf"; private NotificationIconContainer mShelfIcons; private int[] mTmp = new int[2]; private boolean mHideBackground; - private int mIconAppearTopPadding; - private float mHiddenShelfIconSize; private int mStatusBarHeight; private AmbientState mAmbientState; private NotificationStackScrollLayoutController mHostLayoutController; - private int mMaxLayoutHeight; private int mPaddingBetweenElements; private int mNotGoneIndex; private boolean mHasItemsInStableShelf; private NotificationIconContainer mCollapsedIcons; private int mScrollFastThreshold; - private int mIconSize; private int mStatusBarState; - private int mRelativeOffset; private boolean mInteractive; - private float mOpenedAmount; - private boolean mNoAnimationsInThisFrame; private boolean mAnimationsEnabled = true; private boolean mShowNotificationShelf; private float mFirstElementRoundness; private Rect mClipRect = new Rect(); - private int mCutoutHeight; - private int mGapHeight; private int mIndexOfFirstViewInShelf = -1; private float mCornerAnimationDistance; private NotificationShelfController mController; @@ -121,7 +110,6 @@ public class NotificationShelf extends ActivatableNotificationView implements private void initDimens() { Resources res = getResources(); - mIconAppearTopPadding = res.getDimensionPixelSize(R.dimen.notification_icon_appear_padding); mStatusBarHeight = res.getDimensionPixelOffset(R.dimen.status_bar_height); mPaddingBetweenElements = res.getDimensionPixelSize(R.dimen.notification_divider_height); @@ -133,9 +121,6 @@ public class NotificationShelf extends ActivatableNotificationView implements mShelfIcons.setPadding(padding, 0, padding, 0); mScrollFastThreshold = res.getDimensionPixelOffset(R.dimen.scroll_fast_threshold); mShowNotificationShelf = res.getBoolean(R.bool.config_showNotificationShelf); - mIconSize = res.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_icon_size); - mHiddenShelfIconSize = res.getDimensionPixelOffset(R.dimen.hidden_shelf_icon_size); - mGapHeight = res.getDimensionPixelSize(R.dimen.qs_notification_padding); mCornerAnimationDistance = res.getDimensionPixelSize( R.dimen.notification_corner_animation_distance); @@ -641,8 +626,7 @@ public class NotificationShelf extends ActivatableNotificationView implements transitionAmount = mAmbientState.isFullyHidden() ? 1 : 0; } else { transitionAmount = iconTransitionAmount; - iconState.needsCannedAnimation = iconState.clampedAppearAmount != clampedAmount - && !mNoAnimationsInThisFrame; + iconState.needsCannedAnimation = iconState.clampedAppearAmount != clampedAmount; } iconState.clampedAppearAmount = clampedAmount; setIconTransformationAmount(view, transitionAmount); @@ -743,29 +727,7 @@ public class NotificationShelf extends ActivatableNotificationView implements private void updateRelativeOffset() { mCollapsedIcons.getLocationOnScreen(mTmp); - mRelativeOffset = mTmp[0]; getLocationOnScreen(mTmp); - mRelativeOffset -= mTmp[0]; - } - - @Override - public WindowInsets onApplyWindowInsets(WindowInsets insets) { - WindowInsets ret = super.onApplyWindowInsets(insets); - - // NotificationShelf drag from the status bar and the status bar dock on the top - // of the display for current design so just focus on the top of ScreenDecorations. - // In landscape or multiple window split mode, the NotificationShelf still drag from - // the top and the physical notch/cutout goes to the right, left, or both side of the - // display so it doesn't matter for the NotificationSelf in landscape. - DisplayCutout displayCutout = insets.getDisplayCutout(); - mCutoutHeight = displayCutout == null || displayCutout.getSafeInsetTop() < 0 - ? 0 : displayCutout.getSafeInsetTop(); - - return ret; - } - - public void setMaxLayoutHeight(int maxLayoutHeight) { - mMaxLayoutHeight = maxLayoutHeight; } /** @@ -862,7 +824,6 @@ public class NotificationShelf extends ActivatableNotificationView implements private class ShelfState extends ExpandableViewState { private boolean hasItemsInStableShelf; private ExpandableView firstViewInShelf; - private ExpandableView firstViewInOverflowSection; @Override public void applyToView(View view) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/charging/WiredChargingRippleController.kt b/packages/SystemUI/src/com/android/systemui/statusbar/charging/WiredChargingRippleController.kt index 91415f2788a4..05afc57fbb59 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/charging/WiredChargingRippleController.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/charging/WiredChargingRippleController.kt @@ -83,6 +83,7 @@ class WiredChargingRippleController @Inject constructor( var rippleView: ChargingRippleView = ChargingRippleView(context, attrs = null) init { + pluggedIn = batteryController.isPluggedIn val batteryStateChangeCallback = object : BatteryController.BatteryStateChangeCallback { override fun onBatteryLevelChanged( level: Int, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/TextViewTransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/TextViewTransformState.java index c1ffc22637de..8b1efb54cb63 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/TextViewTransformState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/TextViewTransformState.java @@ -98,20 +98,20 @@ public class TextViewTransformState extends TransformState { int lineCount = mText.getLineCount(); return lineCount == 1 && lineCount == otherTvs.mText.getLineCount() && getEllipsisCount() == otherTvs.getEllipsisCount() - && getViewHeight() != otherTvs.getViewHeight(); + && getContentHeight() != otherTvs.getContentHeight(); } @Override - protected int getViewWidth() { + protected int getContentWidth() { Layout l = mText.getLayout(); if (l != null) { return (int) l.getLineWidth(0); } - return super.getViewWidth(); + return super.getContentWidth(); } @Override - protected int getViewHeight() { + protected int getContentHeight() { return mText.getLineHeight(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java index 74e62b6afc19..9f9fba437869 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/TransformState.java @@ -41,6 +41,7 @@ public class TransformState { public static final int TRANSFORM_X = 0x1; public static final int TRANSFORM_Y = 0x10; public static final int TRANSFORM_ALL = TRANSFORM_X | TRANSFORM_Y; + public static final int ALIGN_END_TAG = R.id.align_transform_end_tag; private static final float UNDEFINED = -1f; private static final int TRANSFORMATION_START_X = R.id.transformation_start_x_tag; @@ -78,11 +79,13 @@ public class TransformState { private boolean mSameAsAny; private float mTransformationEndY = UNDEFINED; private float mTransformationEndX = UNDEFINED; + private boolean mAlignEnd; protected Interpolator mDefaultInterpolator = Interpolators.FAST_OUT_SLOW_IN; public void initFrom(View view, TransformInfo transformInfo) { mTransformedView = view; mTransformInfo = transformInfo; + mAlignEnd = Boolean.TRUE.equals(view.getTag(ALIGN_END_TAG)); } /** @@ -135,13 +138,16 @@ public class TransformState { final View transformedView = mTransformedView; boolean transformX = (transformationFlags & TRANSFORM_X) != 0; boolean transformY = (transformationFlags & TRANSFORM_Y) != 0; - int viewHeight = getViewHeight(); - int otherHeight = otherState.getViewHeight(); - boolean differentHeight = otherHeight != viewHeight && otherHeight != 0 && viewHeight != 0; - int viewWidth = getViewWidth(); - int otherWidth = otherState.getViewWidth(); - boolean differentWidth = otherWidth != viewWidth && otherWidth != 0 && viewWidth != 0; - boolean transformScale = transformScale(otherState) && (differentHeight || differentWidth); + int ownContentHeight = getContentHeight(); + int otherContentHeight = otherState.getContentHeight(); + boolean differentHeight = otherContentHeight != ownContentHeight + && otherContentHeight != 0 && ownContentHeight != 0; + int ownContentWidth = getContentWidth(); + int otherContentWidth = otherState.getContentWidth(); + boolean differentWidth = otherContentWidth != ownContentWidth + && otherContentWidth != 0 && ownContentWidth != 0; + boolean transformScale = (differentHeight || differentWidth) && transformScale(otherState); + boolean transformRightEdge = transformRightEdge(otherState); // lets animate the positions correctly if (transformationAmount == 0.0f || transformX && getTransformationStartX() == UNDEFINED @@ -159,7 +165,14 @@ public class TransformState { if (customTransformation == null || !customTransformation.initTransformation(this, otherState)) { if (transformX) { - setTransformationStartX(otherPosition[0] - ownStablePosition[0]); + if (transformRightEdge) { + int otherViewWidth = otherState.getTransformedView().getWidth(); + int ownViewWidth = transformedView.getWidth(); + setTransformationStartX((otherPosition[0] + otherViewWidth) + - (ownStablePosition[0] + ownViewWidth)); + } else { + setTransformationStartX(otherPosition[0] - ownStablePosition[0]); + } } if (transformY) { setTransformationStartY(otherPosition[1] - ownStablePosition[1]); @@ -167,15 +180,15 @@ public class TransformState { // we also want to animate the scale if we're the same View otherView = otherState.getTransformedView(); if (transformScale && differentWidth) { - setTransformationStartScaleX(otherWidth * otherView.getScaleX() - / (float) viewWidth); - transformedView.setPivotX(0); + setTransformationStartScaleX(otherContentWidth * otherView.getScaleX() + / (float) ownContentWidth); + transformedView.setPivotX(transformRightEdge ? transformedView.getWidth() : 0); } else { setTransformationStartScaleX(UNDEFINED); } if (transformScale && differentHeight) { - setTransformationStartScaleY(otherHeight * otherView.getScaleY() - / (float) viewHeight); + setTransformationStartScaleY(otherContentHeight * otherView.getScaleY() + / (float) ownContentHeight); transformedView.setPivotY(0); } else { setTransformationStartScaleY(UNDEFINED); @@ -239,11 +252,19 @@ public class TransformState { } } - protected int getViewWidth() { + /** + * The width of the content of this view. For some views, like TextViews, this will be the + * width of content inside the view which is transforming, rather than the view's full width. + */ + protected int getContentWidth() { return mTransformedView.getWidth(); } - protected int getViewHeight() { + /** + * The height of the content of this view. For some views, like TextViews, this will be the + * height of content inside the view which is transforming, rather than the view's full height. + */ + protected int getContentHeight() { return mTransformedView.getHeight(); } @@ -251,6 +272,12 @@ public class TransformState { return sameAs(otherState); } + protected boolean transformRightEdge(TransformState otherState) { + boolean alignEnd = mAlignEnd && otherState.mAlignEnd; + boolean isRtl = mTransformedView.isLayoutRtl() && otherState.mTransformedView.isLayoutRtl(); + return alignEnd ^ isRtl; + } + /** * Transforms the {@link #mTransformedView} to the given transformviewstate * @param otherState the state to transform from @@ -302,6 +329,9 @@ public class TransformState { boolean transformX = (transformationFlags & TRANSFORM_X) != 0; boolean transformY = (transformationFlags & TRANSFORM_Y) != 0; boolean transformScale = transformScale(otherState); + boolean transformRightEdge = transformRightEdge(otherState); + int ownContentWidth = getContentWidth(); + int otherContentWidth = otherState.getContentWidth(); // lets animate the positions correctly if (transformationAmount == 0.0f) { if (transformX) { @@ -316,14 +346,13 @@ public class TransformState { : transformedView.getTranslationY(); setTransformationStartY(start); } - View otherView = otherState.getTransformedView(); - if (transformScale && otherState.getViewWidth() != getViewWidth()) { + if (transformScale && otherContentWidth != ownContentWidth) { setTransformationStartScaleX(transformedView.getScaleX()); - transformedView.setPivotX(0); + transformedView.setPivotX(transformRightEdge ? transformedView.getWidth() : 0); } else { setTransformationStartScaleX(UNDEFINED); } - if (transformScale && otherState.getViewHeight() != getViewHeight()) { + if (transformScale && otherState.getContentHeight() != getContentHeight()) { setTransformationStartScaleY(transformedView.getScaleY()); transformedView.setPivotY(0); } else { @@ -336,7 +365,11 @@ public class TransformState { int[] otherStablePosition = otherState.getLaidOutLocationOnScreen(); int[] ownPosition = getLaidOutLocationOnScreen(); if (transformX) { - float endX = otherStablePosition[0] - ownPosition[0]; + int ownViewWidth = transformedView.getWidth(); + int otherViewWidth = otherState.getTransformedView().getWidth(); + float endX = transformRightEdge + ? (otherStablePosition[0] + otherViewWidth) - (ownPosition[0] + ownViewWidth) + : otherStablePosition[0] - ownPosition[0]; float interpolation = interpolatedValue; if (customTransformation != null) { if (customTransformation.customTransformTarget(this, otherState)) { @@ -370,19 +403,18 @@ public class TransformState { interpolation)); } if (transformScale) { - View otherView = otherState.getTransformedView(); float transformationStartScaleX = getTransformationStartScaleX(); if (transformationStartScaleX != UNDEFINED) { transformedView.setScaleX( NotificationUtils.interpolate(transformationStartScaleX, - (otherState.getViewWidth() / (float) getViewWidth()), + (otherContentWidth / (float) ownContentWidth), interpolatedValue)); } float transformationStartScaleY = getTransformationStartScaleY(); if (transformationStartScaleY != UNDEFINED) { transformedView.setScaleY( NotificationUtils.interpolate(transformationStartScaleY, - (otherState.getViewHeight() / (float) getViewHeight()), + (otherState.getContentHeight() / (float) getContentHeight()), interpolatedValue)); } } @@ -529,6 +561,7 @@ public class TransformState { mSameAsAny = false; mTransformationEndX = UNDEFINED; mTransformationEndY = UNDEFINED; + mAlignEnd = false; mDefaultInterpolator = Interpolators.FAST_OUT_SLOW_IN; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java index 2a157261205d..199692bc3b79 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/wrapper/NotificationTemplateViewWrapper.java @@ -151,6 +151,7 @@ public class NotificationTemplateViewWrapper extends NotificationHeaderViewWrapp mRightIcon = mView.findViewById(com.android.internal.R.id.right_icon); if (mRightIcon != null) { mRightIcon.setTag(ImageTransformState.ICON_TAG, getRightIcon(sbn.getNotification())); + mRightIcon.setTag(TransformState.ALIGN_END_TAG, true); } mLeftIcon = mView.findViewById(com.android.internal.R.id.left_icon); if (mLeftIcon != null) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java index 66d23477436f..a18917789ba1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/AmbientState.java @@ -75,6 +75,7 @@ public class AmbientState { private int mExpandAnimationTopChange; private ExpandableNotificationRow mExpandingNotification; private float mHideAmount; + private float mNotificationScrimTop; private boolean mAppearing; private float mPulseHeight = MAX_PULSE_HEIGHT; private float mDozeAmount = 0.0f; @@ -255,6 +256,20 @@ public class AmbientState { return mHideAmount; } + /** + * Set y position of top of notifications background scrim, relative to top of screen. + */ + public void setNotificationScrimTop(float notificationScrimTop) { + mNotificationScrimTop = notificationScrimTop; + } + + /** + * @return Y position of top of notifications background scrim, relative to top of screen. + */ + public float getNotificationScrimTop() { + return mNotificationScrimTop; + } + public void setHideSensitive(boolean hideSensitive) { mHideSensitive = hideSensitive; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index a804ae6a5cd8..21d8164ba491 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -963,7 +963,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable @ShadeViewRefactor(RefactorComponent.LAYOUT_ALGORITHM) private void setMaxLayoutHeight(int maxLayoutHeight) { mMaxLayoutHeight = maxLayoutHeight; - mShelf.setMaxLayoutHeight(maxLayoutHeight); updateAlgorithmHeightAndPadding(); } @@ -1009,9 +1008,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable @ShadeViewRefactor(RefactorComponent.SHADE_VIEW) private void updateClippingToTopRoundedCorner() { - Float clipStart = (float) mTopPadding - + mStackTranslation - + mAmbientState.getExpandAnimationTopChange(); + Float clipStart = mAmbientState.getNotificationScrimTop(); Float clipEnd = clipStart + mCornerRadius; boolean first = true; for (int i = 0; i < getChildCount(); i++) { @@ -1024,7 +1021,8 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable boolean clip = clipStart > start && clipStart < end || clipEnd >= start && clipEnd <= end; clip &= !(first && mScrollAdapter.isScrolledToTop()); - child.setDistanceToTopRoundness(ExpandableView.NO_ROUNDNESS); + child.setDistanceToTopRoundness(clip ? Math.max(start - clipStart, 0) + : ExpandableView.NO_ROUNDNESS); first = false; } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java index 0d34e9090893..d9cbfda8b3c8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackScrollAlgorithm.java @@ -156,9 +156,9 @@ public class StackScrollAlgorithm { private void updateClipping(StackScrollAlgorithmState algorithmState, AmbientState ambientState) { - float drawStart = !ambientState.isOnKeyguard() - ? ambientState.getStackY() - ambientState.getScrollY() : 0; - float clipStart = 0; + float drawStart = ambientState.isOnKeyguard() ? 0 + : ambientState.getStackY() - ambientState.getScrollY(); + float clipStart = ambientState.getNotificationScrimTop(); int childCount = algorithmState.visibleChildren.size(); boolean firstHeadsUp = true; for (int i = 0; i < childCount; i++) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 3bbabeb0cf7e..1263b104b6a5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -331,7 +331,7 @@ public class NotificationPanelViewController extends PanelViewController { private LockIconViewController mLockIconViewController; private NotificationsQuickSettingsContainer mNotificationContainerParent; private boolean mAnimateNextPositionUpdate; - + private float mQuickQsOffsetHeight; private int mTrackingPointer; private VelocityTracker mQsVelocityTracker; private boolean mQsTracking; @@ -943,6 +943,8 @@ public class NotificationPanelViewController extends PanelViewController { } public void updateResources() { + mQuickQsOffsetHeight = mResources.getDimensionPixelSize( + com.android.internal.R.dimen.quick_qs_offset_height); mSplitShadeNotificationsTopPadding = mResources.getDimensionPixelSize(R.dimen.notifications_top_padding_split_shade); int qsWidth = mResources.getDimensionPixelSize(R.dimen.qs_panel_width); @@ -2170,7 +2172,8 @@ public class NotificationPanelViewController extends PanelViewController { // can be wrong during transitions when waiting for the keyguard to unlock top = mTransitionToFullShadeQSPosition; } else { - float notificationTop = getQSEdgePosition(); + final float notificationTop = getQSEdgePosition(); + mAmbientState.setNotificationScrimTop(notificationTop); top = (int) (isOnKeyguard() ? Math.min(qsPanelBottomY, notificationTop) : notificationTop); } @@ -2252,7 +2255,8 @@ public class NotificationPanelViewController extends PanelViewController { private float getQSEdgePosition() { // TODO: replace StackY with unified calculation - return mAmbientState.getStackY() - mAmbientState.getScrollY(); + return Math.max(mQuickQsOffsetHeight * mAmbientState.getExpansionFraction(), + mAmbientState.getStackY() - mAmbientState.getScrollY()); } private int calculateQsBottomPosition(float qsExpansionFraction) { diff --git a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java index 4b4a428e080b..4be4b11f3d37 100644 --- a/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java +++ b/packages/SystemUI/src/com/android/systemui/theme/ThemeOverlayController.java @@ -103,11 +103,11 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { private final boolean mIsMonetEnabled; private UserTracker mUserTracker; private DeviceProvisionedController mDeviceProvisionedController; - private WallpaperColors mSystemColors; + private WallpaperColors mCurrentColors; private WallpaperManager mWallpaperManager; // If fabricated overlays were already created for the current theme. private boolean mNeedsOverlayCreation; - // Dominant olor extracted from wallpaper, NOT the color used on the overlay + // Dominant color extracted from wallpaper, NOT the color used on the overlay protected int mMainWallpaperColor = Color.TRANSPARENT; // Accent color extracted from wallpaper, NOT the color used on the overlay protected int mWallpaperAccentColor = Color.TRANSPARENT; @@ -162,10 +162,17 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { handleWallpaperColors(wallpaperColors, which); }; + private int getLatestWallpaperType() { + return mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_LOCK) + > mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM) + ? WallpaperManager.FLAG_LOCK : WallpaperManager.FLAG_SYSTEM; + } + private void handleWallpaperColors(WallpaperColors wallpaperColors, int flags) { - final boolean hadWallpaperColors = mSystemColors != null; - if ((flags & WallpaperManager.FLAG_SYSTEM) != 0) { - mSystemColors = wallpaperColors; + final boolean hadWallpaperColors = mCurrentColors != null; + int latestWallpaperType = getLatestWallpaperType(); + if ((flags & latestWallpaperType) != 0) { + mCurrentColors = wallpaperColors; if (DEBUG) Log.d(TAG, "got new colors: " + wallpaperColors + " where: " + flags); } @@ -183,7 +190,7 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { } else { if (DEBUG) { Log.i(TAG, "During user setup, but allowing first color event: had? " - + hadWallpaperColors + " has? " + (mSystemColors != null)); + + hadWallpaperColors + " has? " + (mCurrentColors != null)); } } } @@ -198,7 +205,8 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { if (!TextUtils.isEmpty(overlayPackageJson)) { try { JSONObject jsonObject = new JSONObject(overlayPackageJson); - if (!COLOR_SOURCE_PRESET.equals(jsonObject.optString(OVERLAY_COLOR_SOURCE))) { + if (!COLOR_SOURCE_PRESET.equals(jsonObject.optString(OVERLAY_COLOR_SOURCE)) + && ((flags & latestWallpaperType) != 0)) { mSkipSettingChange = true; if (jsonObject.has(OVERLAY_CATEGORY_ACCENT_COLOR) || jsonObject.has( OVERLAY_CATEGORY_SYSTEM_PALETTE)) { @@ -314,10 +322,10 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { // Upon boot, make sure we have the most up to date colors Runnable updateColors = () -> { WallpaperColors systemColor = mWallpaperManager.getWallpaperColors( - WallpaperManager.FLAG_SYSTEM); + getLatestWallpaperType()); mMainExecutor.execute(() -> { if (DEBUG) Log.d(TAG, "Boot colors: " + systemColor); - mSystemColors = systemColor; + mCurrentColors = systemColor; reevaluateSystemTheme(false /* forceReload */); }); }; @@ -348,7 +356,7 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { } private void reevaluateSystemTheme(boolean forceReload) { - final WallpaperColors currentColors = mSystemColors; + final WallpaperColors currentColors = mCurrentColors; final int mainColor; final int accentCandidate; if (currentColors == null) { @@ -506,7 +514,7 @@ public class ThemeOverlayController extends SystemUI implements Dumpable { @Override public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) { - pw.println("mSystemColors=" + mSystemColors); + pw.println("mSystemColors=" + mCurrentColors); pw.println("mMainWallpaperColor=" + Integer.toHexString(mMainWallpaperColor)); pw.println("mWallpaperAccentColor=" + Integer.toHexString(mWallpaperAccentColor)); pw.println("mSecondaryOverlay=" + mSecondaryOverlay); diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index 98d8b29dc164..50b885815e09 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -28,6 +28,7 @@ import static android.media.AudioManager.STREAM_VOICE_CALL; import static android.view.View.ACCESSIBILITY_LIVE_REGION_POLITE; import static android.view.View.GONE; import static android.view.View.INVISIBLE; +import static android.view.View.LAYOUT_DIRECTION_RTL; import static android.view.View.VISIBLE; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; @@ -52,6 +53,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Color; +import android.graphics.Outline; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.Region; @@ -74,11 +76,13 @@ import android.util.Log; import android.util.Slog; import android.util.SparseBooleanArray; import android.view.ContextThemeWrapper; +import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.View.AccessibilityDelegate; import android.view.View.OnAttachStateChangeListener; import android.view.ViewGroup; +import android.view.ViewOutlineProvider; import android.view.ViewPropertyAnimator; import android.view.ViewStub; import android.view.ViewTreeObserver; @@ -147,7 +151,10 @@ public class VolumeDialogImpl implements VolumeDialog, private final int mDialogShowAnimationDurationMs; private final int mDialogHideAnimationDurationMs; + private final int mDialogWidth; + private final int mDialogCornerRadius; private final int mRingerDrawerItemSize; + private final int mRingerRowsPadding; private final boolean mShowVibrate; private final int mRingerCount; private final boolean mShowLowMediaVolumeIcon; @@ -162,11 +169,25 @@ public class VolumeDialogImpl implements VolumeDialog, private Window mWindow; private CustomDialog mDialog; private ViewGroup mDialogView; + private ViewGroup mDialogRowsViewContainer; private ViewGroup mDialogRowsView; private ViewGroup mRinger; - @Nullable private View mRingerAndRowsContainer; - @Nullable private Drawable mRingerAndRowsContainerBackground; + /** + * Container for the top part of the dialog, which contains the ringer, the ringer drawer, the + * volume rows, and the ellipsis button. This does not include the live caption button. + */ + @Nullable private View mTopContainer; + + /** Container for the ringer icon, and for the (initially hidden) ringer drawer view. */ + @Nullable private View mRingerAndDrawerContainer; + + /** + * Background drawable for the ringer and drawer container. The background's top bound is + * initially inset by the height of the (hidden) ringer drawer. When the drawer is animated in, + * this top bound is animated to accommodate it. + */ + @Nullable private Drawable mRingerAndDrawerContainerBackground; private ViewGroup mSelectedRingerContainer; private ImageView mSelectedRingerIcon; @@ -196,6 +217,7 @@ public class VolumeDialogImpl implements VolumeDialog, private final ValueAnimator mAnimateUpBackgroundToMatchDrawer = ValueAnimator.ofFloat(1f, 0f); private boolean mIsRingerDrawerOpen = false; + private float mRingerDrawerClosedAmount = 1f; private ImageButton mRingerIcon; private ViewGroup mODICaptionsView; @@ -266,8 +288,14 @@ public class VolumeDialogImpl implements VolumeDialog, mDialogRowsView.invalidate(); }; } + mDialogWidth = mContext.getResources().getDimensionPixelSize( + R.dimen.volume_dialog_panel_width); + mDialogCornerRadius = mContext.getResources().getDimensionPixelSize( + R.dimen.volume_dialog_panel_width_half); mRingerDrawerItemSize = mContext.getResources().getDimensionPixelSize( R.dimen.volume_ringer_drawer_item_size); + mRingerRowsPadding = mContext.getResources().getDimensionPixelSize( + R.dimen.volume_dialog_ringer_rows_padding); mShowVibrate = mController.hasVibrator(); // Normal, mute, and possibly vibrate. @@ -321,7 +349,7 @@ public class VolumeDialogImpl implements VolumeDialog, // The ringer and rows container has extra height at the top to fit the expanded ringer // drawer. This area should not be touchable unless the ringer drawer is open. - if (view == mRingerAndRowsContainer && !mIsRingerDrawerOpen) { + if (view == mTopContainer && !mIsRingerDrawerOpen) { if (!isLandscape()) { y += getRingerDrawerOpenExtraSize(); } else { @@ -431,6 +459,46 @@ public class VolumeDialogImpl implements VolumeDialog, }); } + mDialogRowsViewContainer = mDialogView.findViewById(R.id.volume_dialog_rows_container); + mTopContainer = mDialogView.findViewById(R.id.volume_dialog_top_container); + mRingerAndDrawerContainer = mDialogView.findViewById( + R.id.volume_ringer_and_drawer_container); + + if (mRingerAndDrawerContainer != null) { + if (isLandscape()) { + // In landscape, we need to add padding to the bottom of the ringer drawer so that + // when it expands to the left, it doesn't overlap any additional volume rows. + mRingerAndDrawerContainer.setPadding( + mRingerAndDrawerContainer.getPaddingLeft(), + mRingerAndDrawerContainer.getPaddingTop(), + mRingerAndDrawerContainer.getPaddingRight(), + mRingerRowsPadding); + + // Since the ringer drawer is expanding to the left, outside of the background of + // the dialog, it needs its own rounded background drawable. We also need that + // background to be rounded on all sides. We'll use a background rounded on all four + // corners, and then extend the container's background later to fill in the bottom + // corners when the drawer is closed. + mRingerAndDrawerContainer.setBackgroundDrawable( + mContext.getDrawable(R.drawable.volume_background_top_rounded)); + } + + // Post to wait for layout so that the background bounds are set. + mRingerAndDrawerContainer.post(() -> { + final LayerDrawable ringerAndDrawerBg = + (LayerDrawable) mRingerAndDrawerContainer.getBackground(); + + // Retrieve the ShapeDrawable from within the background - this is what we will + // animate up and down when the drawer is opened/closed. + if (ringerAndDrawerBg != null && ringerAndDrawerBg.getNumberOfLayers() > 0) { + mRingerAndDrawerContainerBackground = ringerAndDrawerBg.getDrawable(0); + + updateBackgroundForDrawerClosedAmount(); + setTopContainerBackgroundDrawable(); + } + }); + } + mRinger = mDialog.findViewById(R.id.ringer); if (mRinger != null) { mRingerIcon = mRinger.findViewById(R.id.ringer_icon); @@ -510,6 +578,11 @@ public class VolumeDialogImpl implements VolumeDialog, Configuration.ORIENTATION_LANDSCAPE; } + private boolean isRtl() { + return mContext.getResources().getConfiguration().getLayoutDirection() + == LAYOUT_DIRECTION_RTL; + } + public void setStreamImportant(int stream, boolean important) { mHandler.obtainMessage(H.SET_STREAM_IMPORTANT, stream, important ? 1 : 0).sendToTarget(); } @@ -612,23 +685,6 @@ public class VolumeDialogImpl implements VolumeDialog, row.anim = null; - mRingerAndRowsContainer = mDialogView.findViewById( - R.id.volume_dialog_ringer_and_rows_container); - - if (mRingerAndRowsContainer != null) { - // Wait for layout so the background bounds are set, then set the background top to the - // ringer drawer closed position. - mRingerAndRowsContainer.post(() -> { - final LayerDrawable bgWrapper = - ((LayerDrawable) mRingerAndRowsContainer.getBackground()); - - if (bgWrapper != null) { - mRingerAndRowsContainerBackground = bgWrapper.getDrawable(0); - setRingerAndRowsBackgroundTop(1f /* closedAmount */); - } - }); - } - final LayerDrawable seekbarDrawable = (LayerDrawable) mContext.getDrawable(R.drawable.volume_row_seekbar); @@ -764,8 +820,10 @@ public class VolumeDialogImpl implements VolumeDialog, }); mRingerDrawerIconColorAnimator.setDuration(DRAWER_ANIMATION_DURATION_SHORT); - mAnimateUpBackgroundToMatchDrawer.addUpdateListener(valueAnimator -> - setRingerAndRowsBackgroundTop((float) valueAnimator.getAnimatedValue())); + mAnimateUpBackgroundToMatchDrawer.addUpdateListener(valueAnimator -> { + mRingerDrawerClosedAmount = (float) valueAnimator.getAnimatedValue(); + updateBackgroundForDrawerClosedAmount(); + }); } private ImageView getDrawerIconViewForMode(int mode) { @@ -792,6 +850,10 @@ public class VolumeDialogImpl implements VolumeDialog, /** Animates in the ringer drawer. */ private void showRingerDrawer() { + if (mIsRingerDrawerOpen) { + return; + } + // Show all ringer icons except the currently selected one, since we're going to animate the // ringer button to that position. mRingerDrawerVibrateIcon.setVisibility( @@ -874,6 +936,10 @@ public class VolumeDialogImpl implements VolumeDialog, return; } + if (!mIsRingerDrawerOpen) { + return; + } + // Hide the drawer icon for the selected ringer - it's visible in the ringer button and we // don't want to be able to see it while it animates away. getDrawerIconViewForMode(mState.ringerModeInternal).setVisibility(INVISIBLE); @@ -1143,6 +1209,7 @@ public class VolumeDialogImpl implements VolumeDialog, mController.notifyVisible(true); mController.getCaptionsComponentState(false); checkODICaptionsTooltip(false); + updateBackgroundForDrawerClosedAmount(); } protected void rescheduleTimeoutH() { @@ -1258,15 +1325,65 @@ public class VolumeDialogImpl implements VolumeDialog, if (!mShowing) { trimObsoleteH(); } + + // Index of the last row that is actually visible. + int rightmostVisibleRowIndex = !isRtl() ? -1 : Short.MAX_VALUE; + // apply changes to all rows for (final VolumeRow row : mRows) { final boolean isActive = row == activeRow; final boolean shouldBeVisible = shouldBeVisibleH(row, activeRow); Util.setVisOrGone(row.view, shouldBeVisible); + + if (shouldBeVisible && mRingerAndDrawerContainerBackground != null) { + // For RTL, the rightmost row has the lowest index since child views are laid out + // from right to left. + rightmostVisibleRowIndex = + !isRtl() + ? Math.max(rightmostVisibleRowIndex, + mDialogRowsView.indexOfChild(row.view)) + : Math.min(rightmostVisibleRowIndex, + mDialogRowsView.indexOfChild(row.view)); + + // Add spacing between each of the visible rows - we'll remove the spacing from the + // last row after the loop. + final ViewGroup.LayoutParams layoutParams = row.view.getLayoutParams(); + if (layoutParams instanceof LinearLayout.LayoutParams) { + final LinearLayout.LayoutParams linearLayoutParams = + ((LinearLayout.LayoutParams) layoutParams); + if (!isRtl()) { + linearLayoutParams.setMarginEnd(mRingerRowsPadding); + } else { + linearLayoutParams.setMarginStart(mRingerRowsPadding); + } + } + + // Set the background on each of the rows. We'll remove this from the last row after + // the loop, since the last row's background is drawn by the main volume container. + row.view.setBackgroundDrawable( + mContext.getDrawable(R.drawable.volume_row_rounded_background)); + } + if (row.view.isShown()) { updateVolumeRowTintH(row, isActive); } } + + if (rightmostVisibleRowIndex > -1 && rightmostVisibleRowIndex < Short.MAX_VALUE) { + final View lastVisibleChild = mDialogRowsView.getChildAt(rightmostVisibleRowIndex); + final ViewGroup.LayoutParams layoutParams = lastVisibleChild.getLayoutParams(); + // Remove the spacing on the last row, and remove its background since the container is + // drawing a background for this row. + if (layoutParams instanceof LinearLayout.LayoutParams) { + final LinearLayout.LayoutParams linearLayoutParams = + ((LinearLayout.LayoutParams) layoutParams); + linearLayoutParams.setMarginStart(0); + linearLayoutParams.setMarginEnd(0); + lastVisibleChild.setBackgroundColor(Color.TRANSPARENT); + } + } + + updateBackgroundForDrawerClosedAmount(); } protected void updateRingerH() { @@ -1742,32 +1859,74 @@ public class VolumeDialogImpl implements VolumeDialog, return (mRingerCount - 1) * mRingerDrawerItemSize; } - /** - * Sets the top of the background drawable behind the container view for the ringer icon and the - * volume rows, depending on whether the ringer drawer is open or closed. - */ - private void setRingerAndRowsBackgroundTop(float drawerClosedAmount) { - if (mRingerAndRowsContainerBackground == null) { + private void updateBackgroundForDrawerClosedAmount() { + if (mRingerAndDrawerContainerBackground == null) { return; } - final Rect bounds = mRingerAndRowsContainerBackground.copyBounds(); - + final Rect bounds = mRingerAndDrawerContainerBackground.copyBounds(); if (!isLandscape()) { - // In portrait, the background should fill the full width, but only go up to the ringer - // icon's top. We'll extend it all the way to the top of the container when the ringer - // drawer opens. - bounds.left = 0; - bounds.top = (int) (drawerClosedAmount * getRingerDrawerOpenExtraSize()); + bounds.top = (int) (mRingerDrawerClosedAmount * getRingerDrawerOpenExtraSize()); } else { - // In landscape, the background should be inset by the size of the open drawer, since it - // opens sideways. It should extend to the top of the container since we haven't left - // space for the drawer to open upward. - bounds.left = getRingerDrawerOpenExtraSize(); - bounds.top = 0; + bounds.left = (int) (mRingerDrawerClosedAmount * getRingerDrawerOpenExtraSize()); + } + mRingerAndDrawerContainerBackground.setBounds(bounds); + } + + /* + * The top container is responsible for drawing the solid color background behind the rightmost + * (primary) volume row. This is because the volume drawer animates in from below, initially + * overlapping the primary row. We need the drawer to draw below the row's SeekBar, since it + * looks strange to overlap it, but above the row's background color, since otherwise it will be + * clipped. + * + * Since we can't be both above and below the volume row view, we'll be below it, and render the + * background color in the container since they're both above that. + */ + private void setTopContainerBackgroundDrawable() { + if (mTopContainer == null) { + return; + } + + final ColorDrawable solidDrawable = new ColorDrawable( + Utils.getColorAttrDefaultColor(mContext, com.android.internal.R.attr.colorSurface)); + + final LayerDrawable background = new LayerDrawable(new Drawable[] { solidDrawable }); + + // Size the solid color to match the primary volume row. In landscape, extend it upwards + // slightly so that it fills in the bottom corners of the ringer icon, whose background is + // rounded on all sides so that it can expand to the left, outside the dialog's background. + background.setLayerSize(0, mDialogWidth, + !isLandscape() + ? mDialogRowsView.getHeight() + : mDialogRowsView.getHeight() + mDialogCornerRadius); + // Inset the top so that the color only renders below the ringer drawer, which has its own + // background. In landscape, reduce the inset slightly since we are using the background to + // fill in the corners of the closed ringer drawer. + background.setLayerInsetTop(0, + !isLandscape() + ? mDialogRowsViewContainer.getTop() + : mDialogRowsViewContainer.getTop() - mDialogCornerRadius); + + // Set gravity to top-right, since additional rows will be added on the left. + background.setLayerGravity(0, Gravity.TOP | Gravity.RIGHT); + + // In landscape, the ringer drawer animates out to the left (instead of down). Since the + // drawer comes from the right (beyond the bounds of the dialog), we should clip it so it + // doesn't draw outside the dialog background. This isn't an issue in portrait, since the + // drawer animates downward, below the volume row. + if (isLandscape()) { + mRingerAndDrawerContainer.setOutlineProvider(new ViewOutlineProvider() { + @Override + public void getOutline(View view, Outline outline) { + outline.setRoundRect( + 0, 0, view.getWidth(), view.getHeight(), mDialogCornerRadius); + } + }); + mRingerAndDrawerContainer.setClipToOutline(true); } - mRingerAndRowsContainerBackground.setBounds(bounds); + mTopContainer.setBackground(background); } private final VolumeDialogController.Callbacks mControllerCallbackH diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java index 5fa63bc3d061..ad99e4d5a772 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java @@ -59,6 +59,7 @@ import android.view.WindowManager; import android.view.accessibility.AccessibilityNodeInfo; import androidx.test.InstrumentationRegistry; +import androidx.test.filters.FlakyTest; import androidx.test.filters.LargeTest; import com.android.internal.graphics.SfVsyncFrameCallbackProvider; @@ -72,7 +73,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Answers; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; @@ -91,7 +91,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { @Mock private WindowMagnifierCallback mWindowMagnifierCallback; @Mock(answer = Answers.RETURNS_DEEP_STUBS) - private SurfaceControl.Transaction mTransaction; + private SurfaceControl.Transaction mTransaction = new SurfaceControl.Transaction(); private TestableWindowManager mWindowManager; private SysUiState mSysUiState = new SysUiState(); private Resources mResources; @@ -138,6 +138,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { } @Test + @FlakyTest(bugId = 188889181) public void enableWindowMagnification_showControlAndNotifyBoundsChanged() { mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN, @@ -145,16 +146,9 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { }); verify(mMirrorWindowControl).showControl(); - ArgumentCaptor<Rect> boundsCaptor = ArgumentCaptor.forClass(Rect.class); verify(mWindowMagnifierCallback, - timeout(LAYOUT_CHANGE_TIMEOUT_MS)).onWindowMagnifierBoundsChanged( - eq(mContext.getDisplayId()), boundsCaptor.capture()); - final Rect actualBounds = new Rect(); - final View mirrorView = mWindowManager.getAttachedView(); - assertNotNull(mirrorView); - mirrorView.getBoundsOnScreen(actualBounds); - assertEquals(actualBounds, boundsCaptor.getValue()); - + timeout(LAYOUT_CHANGE_TIMEOUT_MS).atLeastOnce()).onWindowMagnifierBoundsChanged( + eq(mContext.getDisplayId()), any(Rect.class)); } @Test @@ -203,6 +197,12 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { @Test public void setScale_enabled_expectedValueAndUpdateStateDescription() { + doAnswer(invocation -> { + final Runnable runnable = invocation.getArgument(0); + runnable.run(); + return null; + }).when(mHandler).postDelayed(any(Runnable.class), anyLong()); + mInstrumentation.runOnMainSync( () -> mWindowMagnificationController.enableWindowMagnification(2.0f, Float.NaN, Float.NaN)); @@ -210,9 +210,6 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { mInstrumentation.runOnMainSync(() -> mWindowMagnificationController.setScale(3.0f)); assertEquals(3.0f, mWindowMagnificationController.getScale(), 0); - ArgumentCaptor<Runnable> runnableArgumentCaptor = ArgumentCaptor.forClass(Runnable.class); - verify(mHandler).postDelayed(runnableArgumentCaptor.capture(), anyLong()); - runnableArgumentCaptor.getValue().run(); final View mirrorView = mWindowManager.getAttachedView(); assertNotNull(mirrorView); assertThat(mirrorView.getStateDescription().toString(), containsString("300")); diff --git a/packages/SystemUI/tests/src/com/android/systemui/theme/ThemeOverlayControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/theme/ThemeOverlayControllerTest.java index 714998702146..cfaffd08a1a7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/theme/ThemeOverlayControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/theme/ThemeOverlayControllerTest.java @@ -258,6 +258,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase { eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), anyInt())) .thenReturn(jsonString); when(mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_LOCK)).thenReturn(20); + when(mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM)).thenReturn(21); mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM); @@ -302,6 +303,63 @@ public class ThemeOverlayControllerTest extends SysuiTestCase { } @Test + public void onWallpaperColorsChanged_ResetThemeWhenFromLatestWallpaper() { + // Should ask for a new theme when the colors of the last applied wallpaper change + WallpaperColors mainColors = new WallpaperColors(Color.valueOf(Color.RED), + Color.valueOf(Color.BLUE), null); + + String jsonString = + "{\"android.theme.customization.system_palette\":\"override.package.name\"," + + "\"android.theme.customization.color_source\":\"home_wallpaper\"," + + "\"android.theme.customization.color_index\":\"2\"}"; + + when(mSecureSettings.getStringForUser( + eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), anyInt())) + .thenReturn(jsonString); + when(mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_LOCK)).thenReturn(1); + // SYSTEM wallpaper is the last applied one + when(mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM)).thenReturn(2); + + mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM); + + ArgumentCaptor<String> updatedSetting = ArgumentCaptor.forClass(String.class); + verify(mSecureSettings).putString( + eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), updatedSetting.capture()); + + verify(mThemeOverlayApplier) + .applyCurrentUserOverlays(any(), any(), anyInt(), any()); + } + + @Test + public void onWallpaperColorsChanged_keepThemeIfNotLatestWallpaper() { + // Shouldn't ask for a new theme when the colors of the wallpaper that is not the last + // applied one change + WallpaperColors mainColors = new WallpaperColors(Color.valueOf(Color.RED), + Color.valueOf(Color.BLUE), null); + + String jsonString = + "{\"android.theme.customization.system_palette\":\"override.package.name\"," + + "\"android.theme.customization.color_source\":\"home_wallpaper\"," + + "\"android.theme.customization.color_index\":\"2\"}"; + + when(mSecureSettings.getStringForUser( + eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), anyInt())) + .thenReturn(jsonString); + when(mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_LOCK)).thenReturn(1); + // SYSTEM wallpaper is the last applied one + when(mWallpaperManager.getWallpaperId(WallpaperManager.FLAG_SYSTEM)).thenReturn(2); + + mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_LOCK); + + verify(mSecureSettings, never()).putString( + eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), any()); + + + verify(mThemeOverlayApplier, never()) + .applyCurrentUserOverlays(any(), any(), anyInt(), any()); + } + + @Test public void onProfileAdded_setsTheme() { mBroadcastReceiver.getValue().onReceive(null, new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED)); diff --git a/services/core/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java index dc8f84a2f243..85eadf5a5137 100644 --- a/services/core/java/com/android/server/UiModeManagerService.java +++ b/services/core/java/com/android/server/UiModeManagerService.java @@ -754,8 +754,7 @@ final class UiModeManagerService extends SystemService { } @Override - public void setApplicationNightMode(@UiModeManager.NightMode int mode) - throws RemoteException { + public void setApplicationNightMode(@UiModeManager.NightMode int mode) { switch (mode) { case UiModeManager.MODE_NIGHT_NO: case UiModeManager.MODE_NIGHT_YES: @@ -776,14 +775,10 @@ final class UiModeManagerService extends SystemService { default: configNightMode = Configuration.UI_MODE_NIGHT_UNDEFINED; } - try { - final ActivityTaskManagerInternal.PackageConfigurationUpdater updater = - mActivityTaskManager.createPackageConfigurationUpdater(); - updater.setNightMode(configNightMode); - updater.commit(); - } catch (RemoteException e) { - throw e; - } + final ActivityTaskManagerInternal.PackageConfigurationUpdater updater = + mActivityTaskManager.createPackageConfigurationUpdater(); + updater.setNightMode(configNightMode); + updater.commit(); } @Override diff --git a/services/core/java/com/android/server/VcnManagementService.java b/services/core/java/com/android/server/VcnManagementService.java index 57adcb6e3966..7e2274b65f55 100644 --- a/services/core/java/com/android/server/VcnManagementService.java +++ b/services/core/java/com/android/server/VcnManagementService.java @@ -64,6 +64,7 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.util.ArrayMap; +import android.util.LocalLog; import android.util.Log; import android.util.Slog; @@ -149,6 +150,10 @@ import java.util.concurrent.TimeUnit; public class VcnManagementService extends IVcnManagementService.Stub { @NonNull private static final String TAG = VcnManagementService.class.getSimpleName(); private static final long DUMP_TIMEOUT_MILLIS = TimeUnit.SECONDS.toMillis(5); + private static final int LOCAL_LOG_LINE_COUNT = 128; + + // Public for use in all other VCN classes + @NonNull public static final LocalLog LOCAL_LOG = new LocalLog(LOCAL_LOG_LINE_COUNT); public static final boolean VDBG = false; // STOPSHIP: if true @@ -242,13 +247,13 @@ public class VcnManagementService extends IVcnManagementService.Stub { try { configBundle = mConfigDiskRwHelper.readFromDisk(); } catch (IOException e1) { - Slog.e(TAG, "Failed to read configs from disk; retrying", e1); + logErr("Failed to read configs from disk; retrying", e1); // Retry immediately. The IOException may have been transient. try { configBundle = mConfigDiskRwHelper.readFromDisk(); } catch (IOException e2) { - Slog.wtf(TAG, "Failed to read configs from disk", e2); + logWtf("Failed to read configs from disk", e2); return; } } @@ -440,7 +445,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { synchronized (mLock) { final TelephonySubscriptionSnapshot oldSnapshot = mLastSnapshot; mLastSnapshot = snapshot; - Slog.d(TAG, "new snapshot: " + mLastSnapshot); + logDbg("new snapshot: " + mLastSnapshot); // Start any VCN instances as necessary for (Entry<ParcelUuid, VcnConfig> entry : mConfigs.entrySet()) { @@ -543,7 +548,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { @GuardedBy("mLock") private void startVcnLocked(@NonNull ParcelUuid subscriptionGroup, @NonNull VcnConfig config) { - Slog.d(TAG, "Starting VCN config for subGrp: " + subscriptionGroup); + logDbg("Starting VCN config for subGrp: " + subscriptionGroup); // TODO(b/176939047): Support multiple VCNs active at the same time, or limit to one active // VCN. @@ -568,7 +573,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { @GuardedBy("mLock") private void startOrUpdateVcnLocked( @NonNull ParcelUuid subscriptionGroup, @NonNull VcnConfig config) { - Slog.d(TAG, "Starting or updating VCN config for subGrp: " + subscriptionGroup); + logDbg("Starting or updating VCN config for subGrp: " + subscriptionGroup); if (mVcns.containsKey(subscriptionGroup)) { final Vcn vcn = mVcns.get(subscriptionGroup); @@ -594,7 +599,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { if (!config.getProvisioningPackageName().equals(opPkgName)) { throw new IllegalArgumentException("Mismatched caller and VcnConfig creator"); } - Slog.d(TAG, "VCN config updated for subGrp: " + subscriptionGroup); + logDbg("VCN config updated for subGrp: " + subscriptionGroup); mContext.getSystemService(AppOpsManager.class) .checkPackage(mDeps.getBinderCallingUid(), config.getProvisioningPackageName()); @@ -620,7 +625,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { public void clearVcnConfig(@NonNull ParcelUuid subscriptionGroup, @NonNull String opPkgName) { requireNonNull(subscriptionGroup, "subscriptionGroup was null"); requireNonNull(opPkgName, "opPkgName was null"); - Slog.d(TAG, "VCN config cleared for subGrp: " + subscriptionGroup); + logDbg("VCN config cleared for subGrp: " + subscriptionGroup); mContext.getSystemService(AppOpsManager.class) .checkPackage(mDeps.getBinderCallingUid(), opPkgName); @@ -683,7 +688,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { VcnConfig::toPersistableBundle); mConfigDiskRwHelper.writeToDisk(bundle); } catch (IOException e) { - Slog.e(TAG, "Failed to save configs to disk", e); + logErr("Failed to save configs to disk", e); throw new ServiceSpecificException(0, "Failed to save configs"); } } @@ -793,7 +798,7 @@ public class VcnManagementService extends IVcnManagementService.Stub { for (int subId : networkCapabilities.getSubscriptionIds()) { // Verify that all subscriptions point to the same group if (subGrp != null && !subGrp.equals(snapshot.getGroupForSubId(subId))) { - Slog.wtf(TAG, "Got multiple subscription groups for a single network"); + logWtf("Got multiple subscription groups for a single network"); } subGrp = snapshot.getGroupForSubId(subId); @@ -859,10 +864,8 @@ public class VcnManagementService extends IVcnManagementService.Stub { final VcnUnderlyingNetworkPolicy policy = new VcnUnderlyingNetworkPolicy( mTrackingNetworkCallback.requiresRestartForCarrierWifi(result), result); - if (VDBG) { - Slog.d(TAG, "getUnderlyingNetworkPolicy() called for caps: " + networkCapabilities + logVdbg("getUnderlyingNetworkPolicy() called for caps: " + networkCapabilities + "; and lp: " + linkProperties + "; result = " + policy); - } return policy; }); } @@ -954,14 +957,14 @@ public class VcnManagementService extends IVcnManagementService.Stub { || vcnStatus == VCN_STATUS_CODE_SAFE_MODE) { resultStatus = vcnStatus; } else { - Slog.wtf(TAG, "Unknown VCN status: " + vcnStatus); + logWtf("Unknown VCN status: " + vcnStatus); resultStatus = VCN_STATUS_CODE_NOT_CONFIGURED; } try { cbInfo.mCallback.onVcnStatusChanged(resultStatus); } catch (RemoteException e) { - Slog.d(TAG, "VcnStatusCallback threw on VCN status change", e); + logDbg("VcnStatusCallback threw on VCN status change", e); } } } finally { @@ -989,6 +992,43 @@ public class VcnManagementService extends IVcnManagementService.Stub { } } + private void logVdbg(String msg) { + if (VDBG) { + Slog.v(TAG, msg); + LOCAL_LOG.log(TAG + " VDBG: " + msg); + } + } + + private void logDbg(String msg) { + Slog.d(TAG, msg); + LOCAL_LOG.log(TAG + " DBG: " + msg); + } + + private void logDbg(String msg, Throwable tr) { + Slog.d(TAG, msg, tr); + LOCAL_LOG.log(TAG + " DBG: " + msg + tr); + } + + private void logErr(String msg) { + Slog.e(TAG, msg); + LOCAL_LOG.log(TAG + " ERR: " + msg); + } + + private void logErr(String msg, Throwable tr) { + Slog.e(TAG, msg, tr); + LOCAL_LOG.log(TAG + " ERR: " + msg + tr); + } + + private void logWtf(String msg) { + Slog.wtf(TAG, msg); + LOCAL_LOG.log(TAG + " WTF: " + msg); + } + + private void logWtf(String msg, Throwable tr) { + Slog.wtf(TAG, msg, tr); + LOCAL_LOG.log(TAG + " WTF: " + msg + tr); + } + /** * Dumps the state of the VcnManagementService for logging and debugging purposes. * @@ -1029,6 +1069,12 @@ public class VcnManagementService extends IVcnManagementService.Stub { pw.decreaseIndent(); pw.println(); } + + pw.println("Local log:"); + pw.increaseIndent(); + LOCAL_LOG.dump(pw); + pw.decreaseIndent(); + pw.println(); }, DUMP_TIMEOUT_MILLIS); } diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 5f9576120cc5..88f4fc2d59f8 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -4324,8 +4324,8 @@ public class ActivityManagerService extends IActivityManager.Stub if (pid > 0 && pid != MY_PID) { killProcessQuiet(pid); //TODO: killProcessGroup(app.info.uid, pid); - mProcessList.noteAppKill(app, ApplicationExitInfo.REASON_INITIALIZATION_FAILURE, - ApplicationExitInfo.SUBREASON_UNKNOWN, "attach failed"); + // We can't log the app kill info for this process since we don't + // know who it is, so just skip the logging. } else { try { thread.scheduleExit(); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlConversionUtils.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlConversionUtils.java index 6ad4308d7608..573c20fe041b 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlConversionUtils.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/AidlConversionUtils.java @@ -120,10 +120,13 @@ final class AidlConversionUtils { return BiometricFaceConstants.FACE_ACQUIRED_SENSOR_DIRTY; case AcquiredInfo.VENDOR: return BiometricFaceConstants.FACE_ACQUIRED_VENDOR; - case AcquiredInfo.UNKNOWN: case AcquiredInfo.FIRST_FRAME_RECEIVED: + return BiometricFaceConstants.FACE_ACQUIRED_FIRST_FRAME_RECEIVED; case AcquiredInfo.DARK_GLASSES_DETECTED: + return BiometricFaceConstants.FACE_ACQUIRED_DARK_GLASSES_DETECTED; case AcquiredInfo.MOUTH_COVERING_DETECTED: + return BiometricFaceConstants.FACE_ACQUIRED_MOUTH_COVERING_DETECTED; + case AcquiredInfo.UNKNOWN: default: return BiometricFaceConstants.FACE_ACQUIRED_UNKNOWN; } diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java index 0e6a0f72206c..2f71f44b6bef 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/Sensor.java @@ -148,6 +148,16 @@ public class Sensor { } @Override + public int getInterfaceVersion() { + return this.VERSION; + } + + @Override + public String getInterfaceHash() { + return this.HASH; + } + + @Override public void onChallengeGenerated(long challenge) { mHandler.post(() -> { final BaseClientMonitor client = mScheduler.getCurrentClient(); diff --git a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java index bf3f7b45dc4a..525e508f2b6d 100644 --- a/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java +++ b/services/core/java/com/android/server/biometrics/sensors/face/aidl/TestHal.java @@ -35,6 +35,16 @@ public class TestHal extends IFace.Stub { private static final String TAG = "face.aidl.TestHal"; @Override + public int getInterfaceVersion() { + return this.VERSION; + } + + @Override + public String getInterfaceHash() { + return this.HASH; + } + + @Override public SensorProps[] getSensorProps() { Slog.w(TAG, "getSensorProps"); return new SensorProps[0]; @@ -46,6 +56,16 @@ public class TestHal extends IFace.Stub { return new ISession.Stub() { @Override + public int getInterfaceVersion() { + return this.VERSION; + } + + @Override + public String getInterfaceHash() { + return this.HASH; + } + + @Override public void generateChallenge() throws RemoteException { Slog.w(TAG, "generateChallenge"); cb.onChallengeGenerated(0L); @@ -71,6 +91,14 @@ public class TestHal extends IFace.Stub { public void cancel() throws RemoteException { cb.onError(Error.CANCELED, 0 /* vendorCode */); } + @Override + public int getInterfaceVersion() { + return this.VERSION; + } + @Override + public String getInterfaceHash() { + return this.HASH; + } }; } @@ -82,6 +110,14 @@ public class TestHal extends IFace.Stub { public void cancel() throws RemoteException { cb.onError(Error.CANCELED, 0 /* vendorCode */); } + @Override + public int getInterfaceVersion() { + return this.VERSION; + } + @Override + public String getInterfaceHash() { + return this.HASH; + } }; } @@ -93,6 +129,14 @@ public class TestHal extends IFace.Stub { public void cancel() throws RemoteException { cb.onError(Error.CANCELED, 0 /* vendorCode */); } + @Override + public int getInterfaceVersion() { + return this.VERSION; + } + @Override + public String getInterfaceHash() { + return this.HASH; + } }; } diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java index 10137b5a28c9..b3b818fd6d3d 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/Sensor.java @@ -151,6 +151,16 @@ class Sensor { } @Override + public int getInterfaceVersion() { + return this.VERSION; + } + + @Override + public String getInterfaceHash() { + return this.HASH; + } + + @Override public void onChallengeGenerated(long challenge) { mHandler.post(() -> { final BaseClientMonitor client = mScheduler.getCurrentClient(); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/TestHal.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/TestHal.java index abc3597a5183..e7719239d844 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/TestHal.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/TestHal.java @@ -33,6 +33,16 @@ public class TestHal extends IFingerprint.Stub { private static final String TAG = "fingerprint.aidl.TestHal"; @Override + public int getInterfaceVersion() { + return this.VERSION; + } + + @Override + public String getInterfaceHash() { + return this.HASH; + } + + @Override public SensorProps[] getSensorProps() { Slog.w(TAG, "getSensorProps"); return new SensorProps[0]; @@ -44,6 +54,16 @@ public class TestHal extends IFingerprint.Stub { return new ISession.Stub() { @Override + public int getInterfaceVersion() { + return this.VERSION; + } + + @Override + public String getInterfaceHash() { + return this.HASH; + } + + @Override public void generateChallenge() throws RemoteException { Slog.w(TAG, "generateChallenge"); cb.onChallengeGenerated(0L); @@ -63,6 +83,14 @@ public class TestHal extends IFingerprint.Stub { public void cancel() throws RemoteException { cb.onError(Error.CANCELED, 0 /* vendorCode */); } + @Override + public int getInterfaceVersion() { + return this.VERSION; + } + @Override + public String getInterfaceHash() { + return this.HASH; + } }; } @@ -74,6 +102,14 @@ public class TestHal extends IFingerprint.Stub { public void cancel() throws RemoteException { cb.onError(Error.CANCELED, 0 /* vendorCode */); } + @Override + public int getInterfaceVersion() { + return this.VERSION; + } + @Override + public String getInterfaceHash() { + return this.HASH; + } }; } @@ -85,6 +121,14 @@ public class TestHal extends IFingerprint.Stub { public void cancel() throws RemoteException { cb.onError(Error.CANCELED, 0 /* vendorCode */); } + @Override + public int getInterfaceVersion() { + return this.VERSION; + } + @Override + public String getInterfaceHash() { + return this.HASH; + } }; } diff --git a/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java b/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java index aa3e5795b684..a34d7226136a 100644 --- a/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java +++ b/services/core/java/com/android/server/location/injector/SystemEmergencyHelper.java @@ -72,8 +72,11 @@ public class SystemEmergencyHelper extends EmergencyHelper { @Override public boolean isInEmergency(long extensionTimeMs) { + boolean isInExtensionTime = mEmergencyCallEndRealtimeMs != Long.MIN_VALUE + && (SystemClock.elapsedRealtime() - mEmergencyCallEndRealtimeMs) < extensionTimeMs; + return mIsInEmergencyCall - || ((SystemClock.elapsedRealtime() - mEmergencyCallEndRealtimeMs) < extensionTimeMs) + || isInExtensionTime || mTelephonyManager.getEmergencyCallbackMode() || mTelephonyManager.isInEmergencySmsMode(); } diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 0bc28405eab3..f0e693976faa 100755 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -8469,7 +8469,9 @@ public class NotificationManagerService extends SystemService { for (int i = 0; i < newUris.size(); i++) { final Uri uri = newUris.valueAt(i); if (oldUris == null || !oldUris.contains(uri)) { - Slog.d(TAG, key + ": granting " + uri); + if (DBG) { + Slog.d(TAG, key + ": granting " + uri); + } grantUriPermission(permissionOwner, uri, newRecord.getUid(), targetPkg, targetUserId); } diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java index de9add0d0b37..b135e88f40c7 100644 --- a/services/core/java/com/android/server/pm/LauncherAppsService.java +++ b/services/core/java/com/android/server/pm/LauncherAppsService.java @@ -1207,8 +1207,16 @@ public class LauncherAppsService extends SystemService { final long ident = Binder.clearCallingIdentity(); try { String packageName = component.getPackageName(); + int uId = -1; + try { + uId = mContext.getPackageManager().getApplicationInfo( + packageName, PackageManager.MATCH_ANY_USER).uid; + } catch (PackageManager.NameNotFoundException e) { + Log.d(TAG, "package not found: " + e); + } intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", packageName, null)); + intent.putExtra("uId", uId); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.setSourceBounds(sourceBounds); } finally { diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index 4963d64797e5..4ebf4768a973 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -121,6 +121,7 @@ import java.io.PrintWriter; import java.net.URISyntaxException; import java.security.SecureRandom; import java.util.ArrayList; +import java.util.Arrays; import java.util.Base64; import java.util.Collection; import java.util.Collections; @@ -253,6 +254,8 @@ class PackageManagerShellCommand extends ShellCommand { return runSuspend(true); case "unsuspend": return runSuspend(false); + case "set-distracting-restriction": + return runSetDistractingRestriction(); case "grant": return runGrantRevokePermission(true); case "revoke": @@ -2207,6 +2210,57 @@ class PackageManagerShellCommand extends ShellCommand { return 0; } + private int runSetDistractingRestriction() { + final PrintWriter pw = getOutPrintWriter(); + int userId = UserHandle.USER_SYSTEM; + String opt; + int flags = 0; + while ((opt = getNextOption()) != null) { + switch (opt) { + case "--user": + userId = UserHandle.parseUserArg(getNextArgRequired()); + break; + case "--flag": + final String flag = getNextArgRequired(); + switch (flag) { + case "hide-notifications": + flags |= PackageManager.RESTRICTION_HIDE_NOTIFICATIONS; + break; + case "hide-from-suggestions": + flags |= PackageManager.RESTRICTION_HIDE_FROM_SUGGESTIONS; + break; + default: + pw.println("Unrecognized flag: " + flag); + return 1; + } + break; + default: + pw.println("Error: Unknown option: " + opt); + return 1; + } + } + + final List<String> packageNames = getRemainingArgs(); + if (packageNames.isEmpty()) { + pw.println("Error: package name not specified"); + return 1; + } + try { + final int translatedUserId = translateUserId(userId, UserHandle.USER_NULL, + "set-distracting"); + final String[] errored = mInterface.setDistractingPackageRestrictionsAsUser( + packageNames.toArray(new String[]{}), flags, translatedUserId); + if (errored.length > 0) { + pw.println("Could not set restriction for: " + Arrays.toString(errored)); + return 1; + } + return 0; + } catch (RemoteException | IllegalArgumentException e) { + pw.println(e.toString()); + return 1; + } + } + private int runSuspend(boolean suspendedState) { final PrintWriter pw = getOutPrintWriter(); int userId = UserHandle.USER_SYSTEM; @@ -3688,6 +3742,16 @@ class PackageManagerShellCommand extends ShellCommand { pw.println(" unsuspend [--user USER_ID] PACKAGE [PACKAGE...]"); pw.println(" Unsuspends the specified package(s) (as user)."); pw.println(""); + pw.println(" set-distracting-restriction [--user USER_ID] [--flag FLAG ...]"); + pw.println(" PACKAGE [PACKAGE...]"); + pw.println(" Sets the specified restriction flags to given package(s) (for user)."); + pw.println(" Flags are:"); + pw.println(" hide-notifications: Hides notifications from this package"); + pw.println(" hide-from-suggestions: Hides this package from suggestions"); + pw.println(" (by the launcher, etc.)"); + pw.println(" Any existing flags are overwritten, which also means that if no flags are"); + pw.println(" specified then all existing flags will be cleared."); + pw.println(""); pw.println(" grant [--user USER_ID] PACKAGE PERMISSION"); pw.println(" revoke [--user USER_ID] PACKAGE PERMISSION"); pw.println(" These commands either grant or revoke permissions to apps. The permissions"); diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java index a7bac20976cd..bad7e5c27b7b 100644 --- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java @@ -720,7 +720,8 @@ final class DefaultPermissionGrantPolicy { for (String voiceInteractPackageName : voiceInteractPackageNames) { grantPermissionsToSystemPackage(pm, voiceInteractPackageName, userId, CONTACTS_PERMISSIONS, CALENDAR_PERMISSIONS, MICROPHONE_PERMISSIONS, - PHONE_PERMISSIONS, SMS_PERMISSIONS, ALWAYS_LOCATION_PERMISSIONS); + PHONE_PERMISSIONS, SMS_PERMISSIONS, ALWAYS_LOCATION_PERMISSIONS, + NEARBY_DEVICES_PERMISSIONS); } } diff --git a/services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java b/services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java index 5565ccb6cf7c..fca706b707fa 100644 --- a/services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java +++ b/services/core/java/com/android/server/vcn/TelephonySubscriptionTracker.java @@ -39,7 +39,6 @@ import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener; import android.telephony.TelephonyManager; import android.util.ArrayMap; import android.util.ArraySet; -import android.util.Slog; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting.Visibility; @@ -222,12 +221,10 @@ public class TelephonySubscriptionTracker extends BroadcastReceiver { if (SubscriptionManager.isValidSubscriptionId(subId)) { final PersistableBundle carrierConfigs = mCarrierConfigManager.getConfigForSubId(subId); if (mDeps.isConfigForIdentifiedCarrier(carrierConfigs)) { - Slog.v(TAG, String.format("SubId %s ready for SlotId %s", subId, slotId)); mReadySubIdsBySlotId.put(slotId, subId); handleSubscriptionsChanged(); } } else { - Slog.v(TAG, "Slot unloaded: " + slotId); mReadySubIdsBySlotId.remove(slotId); handleSubscriptionsChanged(); } diff --git a/services/core/java/com/android/server/vcn/UnderlyingNetworkTracker.java b/services/core/java/com/android/server/vcn/UnderlyingNetworkTracker.java index 5414a5206abb..732035951462 100644 --- a/services/core/java/com/android/server/vcn/UnderlyingNetworkTracker.java +++ b/services/core/java/com/android/server/vcn/UnderlyingNetworkTracker.java @@ -20,6 +20,8 @@ import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import static android.telephony.TelephonyCallback.ActiveDataSubscriptionIdListener; +import static com.android.server.VcnManagementService.LOCAL_LOG; + import android.annotation.NonNull; import android.annotation.Nullable; import android.net.ConnectivityManager; @@ -433,7 +435,7 @@ public class UnderlyingNetworkTracker { private static boolean isOpportunistic( @NonNull TelephonySubscriptionSnapshot snapshot, Set<Integer> subIds) { if (snapshot == null) { - Slog.wtf(TAG, "Got null snapshot"); + logWtf("Got null snapshot"); return false; } @@ -504,7 +506,7 @@ public class UnderlyingNetworkTracker { final UnderlyingNetworkRecord.Builder builder = mUnderlyingNetworkRecordBuilders.get(network); if (builder == null) { - Slog.wtf(TAG, "Got capabilities change for unknown key: " + network); + logWtf("Got capabilities change for unknown key: " + network); return; } @@ -520,7 +522,7 @@ public class UnderlyingNetworkTracker { final UnderlyingNetworkRecord.Builder builder = mUnderlyingNetworkRecordBuilders.get(network); if (builder == null) { - Slog.wtf(TAG, "Got link properties change for unknown key: " + network); + logWtf("Got link properties change for unknown key: " + network); return; } @@ -535,7 +537,7 @@ public class UnderlyingNetworkTracker { final UnderlyingNetworkRecord.Builder builder = mUnderlyingNetworkRecordBuilders.get(network); if (builder == null) { - Slog.wtf(TAG, "Got blocked status change for unknown key: " + network); + logWtf("Got blocked status change for unknown key: " + network); return; } @@ -623,7 +625,7 @@ public class UnderlyingNetworkTracker { // mRouteSelectionNetworkRequest requires a network be both VALIDATED and NOT_SUSPENDED if (isBlocked) { - Slog.wtf(TAG, "Network blocked for System Server: " + network); + logWtf("Network blocked for System Server: " + network); return PRIORITY_ANY; } @@ -770,6 +772,16 @@ public class UnderlyingNetworkTracker { } } + private static void logWtf(String msg) { + Slog.wtf(TAG, msg); + LOCAL_LOG.log(TAG + " WTF: " + msg); + } + + private static void logWtf(String msg, Throwable tr) { + Slog.wtf(TAG, msg, tr); + LOCAL_LOG.log(TAG + " WTF: " + msg + tr); + } + /** Dumps the state of this record for logging and debugging purposes. */ public void dump(IndentingPrintWriter pw) { pw.println("UnderlyingNetworkTracker:"); diff --git a/services/core/java/com/android/server/vcn/Vcn.java b/services/core/java/com/android/server/vcn/Vcn.java index 6b4ee693c936..f7d61367c81e 100644 --- a/services/core/java/com/android/server/vcn/Vcn.java +++ b/services/core/java/com/android/server/vcn/Vcn.java @@ -24,6 +24,7 @@ import static android.net.vcn.VcnManager.VCN_STATUS_CODE_ACTIVE; import static android.net.vcn.VcnManager.VCN_STATUS_CODE_INACTIVE; import static android.net.vcn.VcnManager.VCN_STATUS_CODE_SAFE_MODE; +import static com.android.server.VcnManagementService.LOCAL_LOG; import static com.android.server.VcnManagementService.VDBG; import android.annotation.NonNull; @@ -513,37 +514,44 @@ public class Vcn extends Handler { } private String getLogPrefix() { - return "[" + LogUtils.getHashedSubscriptionGroup(mSubscriptionGroup) + "]: "; + return "[" + LogUtils.getHashedSubscriptionGroup(mSubscriptionGroup) + "] "; } private void logVdbg(String msg) { if (VDBG) { Slog.v(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "VDBG: " + msg); } } private void logDbg(String msg) { Slog.d(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "DBG: " + msg); } private void logDbg(String msg, Throwable tr) { Slog.d(TAG, getLogPrefix() + msg, tr); + LOCAL_LOG.log(getLogPrefix() + "DBG: " + msg + tr); } private void logErr(String msg) { Slog.e(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "ERR: " + msg); } private void logErr(String msg, Throwable tr) { Slog.e(TAG, getLogPrefix() + msg, tr); + LOCAL_LOG.log(getLogPrefix() + "ERR: " + msg + tr); } private void logWtf(String msg) { Slog.wtf(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "WTF: " + msg); } private void logWtf(String msg, Throwable tr) { Slog.wtf(TAG, getLogPrefix() + msg, tr); + LOCAL_LOG.log(getLogPrefix() + "WTF: " + msg + tr); } /** diff --git a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java b/services/core/java/com/android/server/vcn/VcnGatewayConnection.java index fbbae973538a..55e3ed620160 100644 --- a/services/core/java/com/android/server/vcn/VcnGatewayConnection.java +++ b/services/core/java/com/android/server/vcn/VcnGatewayConnection.java @@ -30,6 +30,7 @@ import static android.net.vcn.VcnManager.VCN_ERROR_CODE_CONFIG_ERROR; import static android.net.vcn.VcnManager.VCN_ERROR_CODE_INTERNAL_ERROR; import static android.net.vcn.VcnManager.VCN_ERROR_CODE_NETWORK_ERROR; +import static com.android.server.VcnManagementService.LOCAL_LOG; import static com.android.server.VcnManagementService.VDBG; import android.annotation.NonNull; @@ -1645,7 +1646,7 @@ public class VcnGatewayConnection extends StateMachine { @NonNull IpSecTransform transform, int direction) { if (direction != IpSecManager.DIRECTION_IN && direction != IpSecManager.DIRECTION_OUT) { - Slog.wtf(TAG, "Applying transform for unexpected direction: " + direction); + logWtf("Applying transform for unexpected direction: " + direction); } try { @@ -2134,37 +2135,44 @@ public class VcnGatewayConnection extends StateMachine { + LogUtils.getHashedSubscriptionGroup(mSubscriptionGroup) + "-" + mConnectionConfig.getGatewayConnectionName() - + "]: "; + + "] "; } private void logVdbg(String msg) { if (VDBG) { Slog.v(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "VDBG: " + msg); } } private void logDbg(String msg) { Slog.d(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "DBG: " + msg); } private void logDbg(String msg, Throwable tr) { Slog.d(TAG, getLogPrefix() + msg, tr); + LOCAL_LOG.log(getLogPrefix() + "DBG: " + msg + tr); } private void logErr(String msg) { Slog.e(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "ERR: " + msg); } private void logErr(String msg, Throwable tr) { Slog.e(TAG, getLogPrefix() + msg, tr); + LOCAL_LOG.log(getLogPrefix() + "ERR: " + msg + tr); } private void logWtf(String msg) { Slog.wtf(TAG, getLogPrefix() + msg); + LOCAL_LOG.log(getLogPrefix() + "WTF: " + msg); } private void logWtf(String msg, Throwable tr) { Slog.wtf(TAG, getLogPrefix() + msg, tr); + LOCAL_LOG.log(getLogPrefix() + "WTF: " + msg + tr); } /** diff --git a/services/core/java/com/android/server/vcn/VcnNetworkProvider.java b/services/core/java/com/android/server/vcn/VcnNetworkProvider.java index 72cd7880325f..31ee2477fa64 100644 --- a/services/core/java/com/android/server/vcn/VcnNetworkProvider.java +++ b/services/core/java/com/android/server/vcn/VcnNetworkProvider.java @@ -172,6 +172,10 @@ public class VcnNetworkProvider extends NetworkProvider { } private void handleNetworkRequestWithdrawn(@NonNull NetworkRequest request) { + if (VDBG) { + Slog.v(TAG, "Network request withdrawn: Request = " + request); + } + mRequests.remove(request); } diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java index 9178a8d16d16..01ee3be08f5f 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java @@ -618,7 +618,7 @@ public abstract class ActivityTaskManagerInternal { /** * Commit changes. */ - void commit() throws RemoteException; + void commit(); } /** diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java index c7e4abbe3db5..134ecdeffa8f 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java +++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java @@ -6390,9 +6390,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { @Override public PackageConfigurationUpdater createPackageConfigurationUpdater() { - synchronized (mGlobalLock) { - return new PackageConfigurationUpdaterImpl(Binder.getCallingPid()); - } + return new PackageConfigurationUpdaterImpl(Binder.getCallingPid()); } @Override @@ -6405,7 +6403,7 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { final class PackageConfigurationUpdaterImpl implements ActivityTaskManagerInternal.PackageConfigurationUpdater { - private int mPid; + private final int mPid; private int mNightMode; PackageConfigurationUpdaterImpl(int pid) { @@ -6419,24 +6417,26 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } @Override - public void commit() throws RemoteException { - if (mPid == 0) { - throw new RemoteException("Invalid process"); - } + public void commit() { synchronized (mGlobalLock) { - final WindowProcessController wpc = mProcessMap.getProcess(mPid); - if (wpc == null) { - Slog.w(TAG, "Override application configuration: cannot find application"); - return; - } - if (wpc.getNightMode() == mNightMode) { - return; - } - if (!wpc.setOverrideNightMode(mNightMode)) { - return; + final long ident = Binder.clearCallingIdentity(); + try { + final WindowProcessController wpc = mProcessMap.getProcess(mPid); + if (wpc == null) { + Slog.w(TAG, "Override application configuration: cannot find pid " + mPid); + return; + } + if (wpc.getNightMode() == mNightMode) { + return; + } + if (!wpc.setOverrideNightMode(mNightMode)) { + return; + } + wpc.updateNightModeForAllActivities(mNightMode); + mPackageConfigPersister.updateFromImpl(wpc.mName, wpc.mUserId, this); + } finally { + Binder.restoreCallingIdentity(ident); } - wpc.updateNightModeForAllActivities(mNightMode); - mPackageConfigPersister.updateFromImpl(wpc.mName, wpc.mUserId, this); } } diff --git a/services/core/java/com/android/server/wm/RecentsAnimationController.java b/services/core/java/com/android/server/wm/RecentsAnimationController.java index 737e7d10c3b4..2feb8a743930 100644 --- a/services/core/java/com/android/server/wm/RecentsAnimationController.java +++ b/services/core/java/com/android/server/wm/RecentsAnimationController.java @@ -1163,9 +1163,6 @@ public class RecentsAnimationController implements DeathRecipient { // Apply the task's pending transaction in case it is detached and its transaction // is not reachable. mTask.getPendingTransaction().apply(); - - // Reset whether this task can affect the sysui flags - mTask.setCanAffectSystemUiFlags(true); } } diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 93fc4f2a3149..039422d2c6a4 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -5407,17 +5407,17 @@ class Task extends WindowContainer<WindowContainer> { : WINDOWING_MODE_FULLSCREEN; } if (currentMode == WINDOWING_MODE_PINNED) { + mRootWindowContainer.notifyActivityPipModeChanged(null); + } + if (likelyResolvedMode == WINDOWING_MODE_PINNED) { // In the case that we've disabled affecting the SysUI flags as a part of seamlessly // transferring the transform on the leash to the task, reset this state once we've // actually entered pip setCanAffectSystemUiFlags(true); - mRootWindowContainer.notifyActivityPipModeChanged(null); - } - if (likelyResolvedMode == WINDOWING_MODE_PINNED - && taskDisplayArea.getRootPinnedTask() != null) { - - // Can only have 1 pip at a time, so replace an existing pip - taskDisplayArea.getRootPinnedTask().dismissPip(); + if (taskDisplayArea.getRootPinnedTask() != null) { + // Can only have 1 pip at a time, so replace an existing pip + taskDisplayArea.getRootPinnedTask().dismissPip(); + } } if (likelyResolvedMode != WINDOWING_MODE_FULLSCREEN && topActivity != null && !topActivity.noDisplay diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java index aec06431c5fb..0bb09a9de07f 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/HotwordDetectionConnection.java @@ -287,6 +287,8 @@ final class HotwordDetectionConnection { Slog.d(TAG, "stopListening"); } + mRemoteHotwordDetectionService.run(service -> service.stopDetection()); + synchronized (mLock) { if (mCurrentAudioSink != null) { Slog.i(TAG, "Closing audio stream to hotword detector: stopping requested"); diff --git a/telephony/java/android/telephony/ims/SipDelegateConnection.java b/telephony/java/android/telephony/ims/SipDelegateConnection.java index 4dbb08d14ccd..498b408fe139 100644 --- a/telephony/java/android/telephony/ims/SipDelegateConnection.java +++ b/telephony/java/android/telephony/ims/SipDelegateConnection.java @@ -62,26 +62,6 @@ public interface SipDelegateConnection { void notifyMessageReceived(@NonNull String viaTransactionId); /** - * The SIP Dialog associated with the provided Call-ID is being closed and routing resources - * associated with the SIP dialog are free to be released. - * <p> - * Calling this method is also mandatory for situations where the framework IMS stack is waiting - * for pending SIP dialogs to be closed before it can perform a handover or apply a provisioning - * change. See {@link DelegateRegistrationState} for more information about - * the scenarios where this can occur. - * <p> - * This method will need to be called for each SIP dialog managed by this application when it is - * closed. - * @param callId The call-ID header value associated with the ongoing SIP Dialog that is - * closing. - * @deprecated closeDialog does not capture INVITE forking. Use {@link #cleanupSession} instead. - */ - @Deprecated - default void closeDialog(@NonNull String callId) { - cleanupSession(callId); - } - - /** * The SIP session associated with the provided Call-ID is being closed and routing resources * associated with the session are free to be released. Each SIP session may contain multiple * dialogs due to SIP INVITE forking, so this method must be called after all SIP dialogs @@ -97,7 +77,7 @@ public interface SipDelegateConnection { * @param callId The call-ID header value associated with the ongoing SIP Dialog that is * closing. */ - default void cleanupSession(@NonNull String callId) { } + void cleanupSession(@NonNull String callId); /** * Notify the SIP delegate that the SIP message has been received from diff --git a/telephony/java/android/telephony/ims/stub/SipDelegate.java b/telephony/java/android/telephony/ims/stub/SipDelegate.java index 997d00bc91c7..7dbefb4474a6 100644 --- a/telephony/java/android/telephony/ims/stub/SipDelegate.java +++ b/telephony/java/android/telephony/ims/stub/SipDelegate.java @@ -64,25 +64,6 @@ public interface SipDelegate { void sendMessage(@NonNull SipMessage message, long configVersion); /** - * The framework is requesting that routing resources associated with the SIP dialog using the - * provided Call-ID to be cleaned up. - * <p> - * Typically, a SIP Dialog close event will be signalled by that dialog receiving a BYE or - * 200 OK message, however, the IMS application will still call - * {@link SipDelegateConnection#closeDialog(String)} to signal to the framework that resources - * can be released. In some cases, the framework will request that the ImsService close the - * dialog due to the open dialog holding up an event such as applying a provisioning change or - * handing over to another transport type. See {@link DelegateRegistrationState}. - * - * @param callId The call-ID header value associated with the ongoing SIP Dialog that the - * framework is requesting be closed. - * @deprecated This method does not take into account INVITE forking. Use - * {@link #cleanupSession(String)} instead. - */ - @Deprecated - default void closeDialog(@NonNull String callId) { } - - /** * The remote IMS application has closed a SIP session and the routing resources associated * with the SIP session using the provided Call-ID may now be cleaned up. * <p> @@ -97,9 +78,7 @@ public interface SipDelegate { * @param callId The call-ID header value associated with the ongoing SIP Session that the * framework is requesting be cleaned up. */ - default void cleanupSession(@NonNull String callId) { - closeDialog(callId); - } + void cleanupSession(@NonNull String callId); /** * The remote application has received the SIP message and is processing it. |