Loading core/api/current.txt +5 −0 Original line number Original line Diff line number Diff line Loading @@ -18087,6 +18087,11 @@ package android.graphics.text { public class LineBreaker { public class LineBreaker { method @NonNull public android.graphics.text.LineBreaker.Result computeLineBreaks(@NonNull android.graphics.text.MeasuredText, @NonNull android.graphics.text.LineBreaker.ParagraphConstraints, @IntRange(from=0) int); method @NonNull public android.graphics.text.LineBreaker.Result computeLineBreaks(@NonNull android.graphics.text.MeasuredText, @NonNull android.graphics.text.LineBreaker.ParagraphConstraints, @IntRange(from=0) int); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public int getBreakStrategy(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public int getHyphenationFrequency(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") @Nullable public int[] getIndents(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public int getJustificationMode(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public boolean getUseBoundsForWidth(); field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2 field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2 field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1 field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1 field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0 field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0 core/java/android/app/AutomaticZenRule.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -843,6 +843,15 @@ public final class AutomaticZenRule implements Parcelable { return this; return this; } } /** * Sets the package that owns this rule * @hide */ public @NonNull Builder setPackage(@NonNull String pkg) { mPkg = pkg; return this; } public @NonNull AutomaticZenRule build() { public @NonNull AutomaticZenRule build() { AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, mConditionId, mPolicy, mInterruptionFilter, mEnabled); mConditionId, mPolicy, mInterruptionFilter, mEnabled); Loading core/java/android/app/ContextImpl.java +20 −3 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.app; import static android.content.pm.PackageManager.PERMISSION_DENIED; import static android.content.pm.PackageManager.PERMISSION_DENIED; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.StrictMode.vmIncorrectContextUseEnabled; import static android.os.StrictMode.vmIncorrectContextUseEnabled; import static android.permission.flags.Flags.shouldRegisterAttributionSource; import static android.view.WindowManager.LayoutParams.WindowType; import static android.view.WindowManager.LayoutParams.WindowType; import android.Manifest; import android.Manifest; Loading Loading @@ -3157,7 +3158,8 @@ class ContextImpl extends Context { int deviceId = vdm.getDeviceIdForDisplayId(displayId); int deviceId = vdm.getDeviceIdForDisplayId(displayId); if (deviceId != mDeviceId) { if (deviceId != mDeviceId) { mDeviceId = deviceId; mDeviceId = deviceId; mAttributionSource = mAttributionSource.withDeviceId(mDeviceId); mAttributionSource = createAttributionSourceWithDeviceId(mAttributionSource, mDeviceId); notifyOnDeviceChangedListeners(mDeviceId); notifyOnDeviceChangedListeners(mDeviceId); } } } } Loading @@ -3180,6 +3182,7 @@ class ContextImpl extends Context { if (mDeviceId != updatedDeviceId) { if (mDeviceId != updatedDeviceId) { mDeviceId = updatedDeviceId; mDeviceId = updatedDeviceId; mAttributionSource = createAttributionSourceWithDeviceId(mAttributionSource, mDeviceId); notifyOnDeviceChangedListeners(updatedDeviceId); notifyOnDeviceChangedListeners(updatedDeviceId); } } } } Loading Loading @@ -3548,8 +3551,22 @@ class ContextImpl extends Context { deviceId, nextAttributionSource); deviceId, nextAttributionSource); // If we want to access protected data on behalf of another app we need to // If we want to access protected data on behalf of another app we need to // tell the OS that we opt in to participate in the attribution chain. // tell the OS that we opt in to participate in the attribution chain. if (nextAttributionSource != null || shouldRegister) { return registerAttributionSourceIfNeeded(attributionSource, shouldRegister); attributionSource = getSystemService(PermissionManager.class) } private @NonNull AttributionSource createAttributionSourceWithDeviceId( @NonNull AttributionSource oldSource, int deviceId) { boolean shouldRegister = false; if (shouldRegisterAttributionSource()) { shouldRegister = mParams.shouldRegisterAttributionSource(); } return registerAttributionSourceIfNeeded(oldSource.withDeviceId(deviceId), shouldRegister); } private @NonNull AttributionSource registerAttributionSourceIfNeeded( @NonNull AttributionSource attributionSource, boolean shouldRegister) { if (shouldRegister || attributionSource.getNext() != null) { return getSystemService(PermissionManager.class) .registerAttributionSource(attributionSource); .registerAttributionSource(attributionSource); } } return attributionSource; return attributionSource; Loading core/java/android/app/Notification.java +18 −2 Original line number Original line Diff line number Diff line Loading @@ -8725,6 +8725,12 @@ public class Notification implements Parcelable * <p>The messages should be added in chronologic order, i.e. the oldest first, * <p>The messages should be added in chronologic order, i.e. the oldest first, * the newest last. * the newest last. * * * <p>Multiple Messages in a row with the same timestamp and sender may be grouped as a * single message. This means an app should represent a message that has both an image and * text as two Message objects, one with the image (and fallback text), and the other with * the message text. For consistency, a text message (if any) should be provided after Uri * content. * * @param message The {@link Message} to be displayed * @param message The {@link Message} to be displayed * @return this object for method chaining * @return this object for method chaining */ */ Loading Loading @@ -9359,6 +9365,15 @@ public class Notification implements Parcelable } } } } /* * An object representing a simple message or piece of media within a mixed-media message. * * This object can only represent text or a single binary piece of media. For apps which * support mixed-media messages (e.g. text + image), multiple Messages should be used, one * to represent each piece of the message, and they should all be given the same timestamp. * For consistency, a text message should be added last of all Messages with the same * timestamp. */ public static final class Message { public static final class Message { /** @hide */ /** @hide */ public static final String KEY_TEXT = "text"; public static final String KEY_TEXT = "text"; Loading Loading @@ -9447,8 +9462,9 @@ public class Notification implements Parcelable /** /** * Sets a binary blob of data and an associated MIME type for a message. In the case * Sets a binary blob of data and an associated MIME type for a message. In the case * where the platform doesn't support the MIME type, the original text provided in the * where the platform or the UI state doesn't support the MIME type, the original text * constructor will be used. * provided in the constructor will be used. When this data can be presented to the * user, the original text will only be used as accessibility text. * @param dataMimeType The MIME type of the content. See * @param dataMimeType The MIME type of the content. See * {@link android.graphics.ImageDecoder#isMimeTypeSupported(String)} for a list of * {@link android.graphics.ImageDecoder#isMimeTypeSupported(String)} for a list of * supported image MIME types. * supported image MIME types. Loading core/java/android/app/admin/flags/flags.aconfig +10 −0 Original line number Original line Diff line number Diff line Loading @@ -317,6 +317,16 @@ flag { } } } } flag { name: "delete_private_space_under_restriction" namespace: "enterprise" description: "Delete private space if user restriction is set" bug: "328758346" metadata { purpose: PURPOSE_BUGFIX } } flag { flag { name: "headless_single_user_fixes" name: "headless_single_user_fixes" namespace: "enterprise" namespace: "enterprise" Loading Loading
core/api/current.txt +5 −0 Original line number Original line Diff line number Diff line Loading @@ -18087,6 +18087,11 @@ package android.graphics.text { public class LineBreaker { public class LineBreaker { method @NonNull public android.graphics.text.LineBreaker.Result computeLineBreaks(@NonNull android.graphics.text.MeasuredText, @NonNull android.graphics.text.LineBreaker.ParagraphConstraints, @IntRange(from=0) int); method @NonNull public android.graphics.text.LineBreaker.Result computeLineBreaks(@NonNull android.graphics.text.MeasuredText, @NonNull android.graphics.text.LineBreaker.ParagraphConstraints, @IntRange(from=0) int); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public int getBreakStrategy(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public int getHyphenationFrequency(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") @Nullable public int[] getIndents(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public int getJustificationMode(); method @FlaggedApi("com.android.text.flags.missing_getter_apis") public boolean getUseBoundsForWidth(); field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2 field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2 field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1 field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1 field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0 field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
core/java/android/app/AutomaticZenRule.java +9 −0 Original line number Original line Diff line number Diff line Loading @@ -843,6 +843,15 @@ public final class AutomaticZenRule implements Parcelable { return this; return this; } } /** * Sets the package that owns this rule * @hide */ public @NonNull Builder setPackage(@NonNull String pkg) { mPkg = pkg; return this; } public @NonNull AutomaticZenRule build() { public @NonNull AutomaticZenRule build() { AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, mConditionId, mPolicy, mInterruptionFilter, mEnabled); mConditionId, mPolicy, mInterruptionFilter, mEnabled); Loading
core/java/android/app/ContextImpl.java +20 −3 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.app; import static android.content.pm.PackageManager.PERMISSION_DENIED; import static android.content.pm.PackageManager.PERMISSION_DENIED; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.StrictMode.vmIncorrectContextUseEnabled; import static android.os.StrictMode.vmIncorrectContextUseEnabled; import static android.permission.flags.Flags.shouldRegisterAttributionSource; import static android.view.WindowManager.LayoutParams.WindowType; import static android.view.WindowManager.LayoutParams.WindowType; import android.Manifest; import android.Manifest; Loading Loading @@ -3157,7 +3158,8 @@ class ContextImpl extends Context { int deviceId = vdm.getDeviceIdForDisplayId(displayId); int deviceId = vdm.getDeviceIdForDisplayId(displayId); if (deviceId != mDeviceId) { if (deviceId != mDeviceId) { mDeviceId = deviceId; mDeviceId = deviceId; mAttributionSource = mAttributionSource.withDeviceId(mDeviceId); mAttributionSource = createAttributionSourceWithDeviceId(mAttributionSource, mDeviceId); notifyOnDeviceChangedListeners(mDeviceId); notifyOnDeviceChangedListeners(mDeviceId); } } } } Loading @@ -3180,6 +3182,7 @@ class ContextImpl extends Context { if (mDeviceId != updatedDeviceId) { if (mDeviceId != updatedDeviceId) { mDeviceId = updatedDeviceId; mDeviceId = updatedDeviceId; mAttributionSource = createAttributionSourceWithDeviceId(mAttributionSource, mDeviceId); notifyOnDeviceChangedListeners(updatedDeviceId); notifyOnDeviceChangedListeners(updatedDeviceId); } } } } Loading Loading @@ -3548,8 +3551,22 @@ class ContextImpl extends Context { deviceId, nextAttributionSource); deviceId, nextAttributionSource); // If we want to access protected data on behalf of another app we need to // If we want to access protected data on behalf of another app we need to // tell the OS that we opt in to participate in the attribution chain. // tell the OS that we opt in to participate in the attribution chain. if (nextAttributionSource != null || shouldRegister) { return registerAttributionSourceIfNeeded(attributionSource, shouldRegister); attributionSource = getSystemService(PermissionManager.class) } private @NonNull AttributionSource createAttributionSourceWithDeviceId( @NonNull AttributionSource oldSource, int deviceId) { boolean shouldRegister = false; if (shouldRegisterAttributionSource()) { shouldRegister = mParams.shouldRegisterAttributionSource(); } return registerAttributionSourceIfNeeded(oldSource.withDeviceId(deviceId), shouldRegister); } private @NonNull AttributionSource registerAttributionSourceIfNeeded( @NonNull AttributionSource attributionSource, boolean shouldRegister) { if (shouldRegister || attributionSource.getNext() != null) { return getSystemService(PermissionManager.class) .registerAttributionSource(attributionSource); .registerAttributionSource(attributionSource); } } return attributionSource; return attributionSource; Loading
core/java/android/app/Notification.java +18 −2 Original line number Original line Diff line number Diff line Loading @@ -8725,6 +8725,12 @@ public class Notification implements Parcelable * <p>The messages should be added in chronologic order, i.e. the oldest first, * <p>The messages should be added in chronologic order, i.e. the oldest first, * the newest last. * the newest last. * * * <p>Multiple Messages in a row with the same timestamp and sender may be grouped as a * single message. This means an app should represent a message that has both an image and * text as two Message objects, one with the image (and fallback text), and the other with * the message text. For consistency, a text message (if any) should be provided after Uri * content. * * @param message The {@link Message} to be displayed * @param message The {@link Message} to be displayed * @return this object for method chaining * @return this object for method chaining */ */ Loading Loading @@ -9359,6 +9365,15 @@ public class Notification implements Parcelable } } } } /* * An object representing a simple message or piece of media within a mixed-media message. * * This object can only represent text or a single binary piece of media. For apps which * support mixed-media messages (e.g. text + image), multiple Messages should be used, one * to represent each piece of the message, and they should all be given the same timestamp. * For consistency, a text message should be added last of all Messages with the same * timestamp. */ public static final class Message { public static final class Message { /** @hide */ /** @hide */ public static final String KEY_TEXT = "text"; public static final String KEY_TEXT = "text"; Loading Loading @@ -9447,8 +9462,9 @@ public class Notification implements Parcelable /** /** * Sets a binary blob of data and an associated MIME type for a message. In the case * Sets a binary blob of data and an associated MIME type for a message. In the case * where the platform doesn't support the MIME type, the original text provided in the * where the platform or the UI state doesn't support the MIME type, the original text * constructor will be used. * provided in the constructor will be used. When this data can be presented to the * user, the original text will only be used as accessibility text. * @param dataMimeType The MIME type of the content. See * @param dataMimeType The MIME type of the content. See * {@link android.graphics.ImageDecoder#isMimeTypeSupported(String)} for a list of * {@link android.graphics.ImageDecoder#isMimeTypeSupported(String)} for a list of * supported image MIME types. * supported image MIME types. Loading
core/java/android/app/admin/flags/flags.aconfig +10 −0 Original line number Original line Diff line number Diff line Loading @@ -317,6 +317,16 @@ flag { } } } } flag { name: "delete_private_space_under_restriction" namespace: "enterprise" description: "Delete private space if user restriction is set" bug: "328758346" metadata { purpose: PURPOSE_BUGFIX } } flag { flag { name: "headless_single_user_fixes" name: "headless_single_user_fixes" namespace: "enterprise" namespace: "enterprise" Loading