Loading core/api/current.txt +4 −3 Original line number Diff line number Diff line Loading @@ -6599,6 +6599,7 @@ package android.app { field public static final String EXTRA_PROGRESS_MAX = "android.progressMax"; field public static final String EXTRA_REMOTE_INPUT_DRAFT = "android.remoteInputDraft"; field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory"; field @FlaggedApi("android.app.opt_in_rich_ongoing") public static final String EXTRA_REQUEST_PROMOTED_ONGOING = "android.REQUEST_PROMOTED_ONGOING"; field @Deprecated public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName"; field public static final String EXTRA_SHOW_BIG_PICTURE_WHEN_COLLAPSED = "android.showBigPictureWhenCollapsed"; field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer"; Loading Loading @@ -25275,13 +25276,13 @@ package android.media { method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") @NonNull public java.util.Map<java.lang.String,java.util.List<android.media.SuggestedDeviceInfo>> getDeviceSuggestions(); method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context); method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull Runnable); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") @Nullable public android.media.RouteListingPreference getRouteListingPreference(); method @Nullable public android.media.RouteListingPreference getRouteListingPreference(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes(); method @NonNull public android.media.MediaRouter2.RoutingController getSystemController(); method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void registerDeviceSuggestionsCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void registerRouteListingPreferenceUpdatedCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void registerRouteListingPreferenceUpdatedCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void registerTransferCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.TransferCallback); method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") @NonNull public android.media.MediaRouter2.ScanToken requestScan(@NonNull android.media.MediaRouter2.ScanRequest); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void setDeviceSuggestions(@NonNull java.util.List<android.media.SuggestedDeviceInfo>); Loading @@ -25294,7 +25295,7 @@ package android.media { method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void unregisterDeviceSuggestionsCallback(@NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void unregisterRouteListingPreferenceUpdatedCallback(@NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void unregisterRouteListingPreferenceUpdatedCallback(@NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void unregisterTransferCallback(@NonNull android.media.MediaRouter2.TransferCallback); } core/api/test-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -1965,8 +1965,14 @@ package android.media { public final class AudioAttributes implements android.os.Parcelable { method public static int[] getSdkUsages(); method public long getTestId(); method @NonNull public static String usageToXsdString(int); method public static int xsdStringToUsage(@NonNull String); field public static final long VALUE_TEST_ID_NONE = -9223372036854775808L; // 0x8000000000000000L } public static class AudioAttributes.Builder { method @NonNull public android.media.AudioAttributes.Builder setTestId(long); } public final class AudioDeviceInfo { Loading core/java/android/app/AppCompatTaskInfo.java +15 −5 Original line number Diff line number Diff line Loading @@ -73,6 +73,12 @@ public class AppCompatTaskInfo implements Parcelable { @Nullable public Rect topActivityLetterboxBounds; /** * Contains the aspect ratio of the top non-resizable activity or * {@link TaskInfo#PROPERTY_VALUE_UNSET} otherwise. */ public float topNonResizableActivityAspectRatio = PROPERTY_VALUE_UNSET; /** * Stores camera-related app compat information about a particular Task. */ Loading Loading @@ -400,12 +406,13 @@ public class AppCompatTaskInfo implements Parcelable { return (mTopActivityFlags & FLAGS_ORGANIZER_INTERESTED) == (that.mTopActivityFlags & FLAGS_ORGANIZER_INTERESTED) && topActivityLetterboxVerticalPosition == that.topActivityLetterboxVerticalPosition && topActivityLetterboxWidth == that.topActivityLetterboxWidth && topActivityLetterboxHeight == that.topActivityLetterboxHeight && topActivityAppBounds.equals(that.topActivityAppBounds) && topActivityLetterboxHorizontalPosition == that.topActivityLetterboxHorizontalPosition && cameraCompatTaskInfo.equalsForTaskOrganizer(that.cameraCompatTaskInfo); && topActivityLetterboxWidth == that.topActivityLetterboxWidth && topActivityLetterboxHeight == that.topActivityLetterboxHeight && Objects.equals(topActivityAppBounds, that.topActivityAppBounds) && cameraCompatTaskInfo.equalsForTaskOrganizer(that.cameraCompatTaskInfo) && topNonResizableActivityAspectRatio == that.topNonResizableActivityAspectRatio; } /** Loading @@ -422,7 +429,7 @@ public class AppCompatTaskInfo implements Parcelable { == that.topActivityLetterboxHorizontalPosition && topActivityLetterboxWidth == that.topActivityLetterboxWidth && topActivityLetterboxHeight == that.topActivityLetterboxHeight && topActivityAppBounds.equals(that.topActivityAppBounds) && Objects.equals(topActivityAppBounds, that.topActivityAppBounds) && cameraCompatTaskInfo.equalsForCompatUi(that.cameraCompatTaskInfo); } Loading @@ -438,6 +445,7 @@ public class AppCompatTaskInfo implements Parcelable { topActivityAppBounds.set(Objects.requireNonNull(source.readTypedObject(Rect.CREATOR))); topActivityLetterboxBounds = source.readTypedObject(Rect.CREATOR); cameraCompatTaskInfo = source.readTypedObject(CameraCompatTaskInfo.CREATOR); topNonResizableActivityAspectRatio = source.readFloat(); } /** Loading @@ -453,6 +461,7 @@ public class AppCompatTaskInfo implements Parcelable { dest.writeTypedObject(topActivityAppBounds, flags); dest.writeTypedObject(topActivityLetterboxBounds, flags); dest.writeTypedObject(cameraCompatTaskInfo, flags); dest.writeFloat(topNonResizableActivityAspectRatio); } @Override Loading @@ -475,6 +484,7 @@ public class AppCompatTaskInfo implements Parcelable { + " hasMinAspectRatioOverride=" + hasMinAspectRatioOverride() + " topActivityLetterboxBounds=" + topActivityLetterboxBounds + " cameraCompatTaskInfo=" + cameraCompatTaskInfo.toString() + " topNonResizableActivityAspectRatio=" + topNonResizableActivityAspectRatio + "}"; } Loading core/java/android/app/Notification.java +34 −8 Original line number Diff line number Diff line Loading @@ -234,6 +234,13 @@ public class Notification implements Parcelable */ public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID"; /** * Optional extra for {@link Notification}. If provided, should contain a boolean indicating * whether the notification is requesting promoted treatment. */ @FlaggedApi(Flags.FLAG_OPT_IN_RICH_ONGOING) public static final String EXTRA_REQUEST_PROMOTED_ONGOING = "android.REQUEST_PROMOTED_ONGOING"; /** * Use all default values (where applicable). */ Loading Loading @@ -3302,6 +3309,24 @@ public class Notification implements Parcelable */ @FlaggedApi(Flags.FLAG_API_RICH_ONGOING) public boolean hasPromotableCharacteristics() { if (Flags.optInRichOngoing()) { // New promotable specs: // Must explicitly request promotion if (!extras.getBoolean(EXTRA_REQUEST_PROMOTED_ONGOING, false)) { return false; } // Must not have disqualifying characteristics if (!isOngoingEvent() || isGroupSummary() || containsCustomViews() || !hasTitle()) { return false; } // "Ongoing CallStyle" notifications may be promoted regardless of style if (isOngoingCallStyle()) { return true; } // Otherwise, promote if styled correctly and NOT colorized return hasPromotableStyle() && !isColorizedRequested(); } else { // Original promotable specs: if (!isOngoingEvent() || isGroupSummary() || containsCustomViews() || !hasTitle()) { return false; } Loading @@ -3311,6 +3336,7 @@ public class Notification implements Parcelable } return isColorizedRequested() && hasPromotableStyle(); } } /** Returns whether the notification is CallStyle.forOngoingCall(). */ private boolean isOngoingCallStyle() { Loading Loading @@ -7127,7 +7153,7 @@ public class Notification implements Parcelable savedBundle.getBoolean(EXTRA_SHOW_CHRONOMETER)); publicExtras.putBoolean(EXTRA_CHRONOMETER_COUNT_DOWN, savedBundle.getBoolean(EXTRA_CHRONOMETER_COUNT_DOWN)); if (mN.isPromotedOngoing()) { if (mN.isPromotedOngoing() && !Flags.optInRichOngoing()) { publicExtras.putBoolean(EXTRA_COLORIZED, savedBundle.getBoolean(EXTRA_COLORIZED)); } Loading core/java/android/app/notification.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,14 @@ flag { bug: "337261753" } flag { name: "opt_in_rich_ongoing" namespace: "systemui" is_exported: true description: "[RONs] v0.2 promotion logic: explicit opt-in and no colorization" bug: "410621769" } flag { name: "ui_rich_ongoing" is_exported: true Loading Loading
core/api/current.txt +4 −3 Original line number Diff line number Diff line Loading @@ -6599,6 +6599,7 @@ package android.app { field public static final String EXTRA_PROGRESS_MAX = "android.progressMax"; field public static final String EXTRA_REMOTE_INPUT_DRAFT = "android.remoteInputDraft"; field public static final String EXTRA_REMOTE_INPUT_HISTORY = "android.remoteInputHistory"; field @FlaggedApi("android.app.opt_in_rich_ongoing") public static final String EXTRA_REQUEST_PROMOTED_ONGOING = "android.REQUEST_PROMOTED_ONGOING"; field @Deprecated public static final String EXTRA_SELF_DISPLAY_NAME = "android.selfDisplayName"; field public static final String EXTRA_SHOW_BIG_PICTURE_WHEN_COLLAPSED = "android.showBigPictureWhenCollapsed"; field public static final String EXTRA_SHOW_CHRONOMETER = "android.showChronometer"; Loading Loading @@ -25275,13 +25276,13 @@ package android.media { method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") @NonNull public java.util.Map<java.lang.String,java.util.List<android.media.SuggestedDeviceInfo>> getDeviceSuggestions(); method @NonNull public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context); method @FlaggedApi("com.android.media.flags.enable_privileged_routing_for_media_routing_control") @NonNull @RequiresPermission(anyOf={android.Manifest.permission.MEDIA_CONTENT_CONTROL, android.Manifest.permission.MEDIA_ROUTING_CONTROL}) public static android.media.MediaRouter2 getInstance(@NonNull android.content.Context, @NonNull String, @NonNull java.util.concurrent.Executor, @NonNull Runnable); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") @Nullable public android.media.RouteListingPreference getRouteListingPreference(); method @Nullable public android.media.RouteListingPreference getRouteListingPreference(); method @NonNull public java.util.List<android.media.MediaRoute2Info> getRoutes(); method @NonNull public android.media.MediaRouter2.RoutingController getSystemController(); method public void registerControllerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void registerDeviceSuggestionsCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void registerRouteCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.RouteCallback, @NonNull android.media.RouteDiscoveryPreference); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void registerRouteListingPreferenceUpdatedCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void registerRouteListingPreferenceUpdatedCallback(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void registerTransferCallback(@NonNull java.util.concurrent.Executor, @NonNull android.media.MediaRouter2.TransferCallback); method @FlaggedApi("com.android.media.flags.enable_screen_off_scanning") @NonNull public android.media.MediaRouter2.ScanToken requestScan(@NonNull android.media.MediaRouter2.ScanRequest); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void setDeviceSuggestions(@NonNull java.util.List<android.media.SuggestedDeviceInfo>); Loading @@ -25294,7 +25295,7 @@ package android.media { method public void unregisterControllerCallback(@NonNull android.media.MediaRouter2.ControllerCallback); method @FlaggedApi("com.android.media.flags.enable_suggested_device_api") public void unregisterDeviceSuggestionsCallback(@NonNull android.media.MediaRouter2.DeviceSuggestionsCallback); method public void unregisterRouteCallback(@NonNull android.media.MediaRouter2.RouteCallback); method @FlaggedApi("com.android.media.flags.enable_rlp_callbacks_in_media_router2") public void unregisterRouteListingPreferenceUpdatedCallback(@NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void unregisterRouteListingPreferenceUpdatedCallback(@NonNull java.util.function.Consumer<android.media.RouteListingPreference>); method public void unregisterTransferCallback(@NonNull android.media.MediaRouter2.TransferCallback); }
core/api/test-current.txt +6 −0 Original line number Diff line number Diff line Loading @@ -1965,8 +1965,14 @@ package android.media { public final class AudioAttributes implements android.os.Parcelable { method public static int[] getSdkUsages(); method public long getTestId(); method @NonNull public static String usageToXsdString(int); method public static int xsdStringToUsage(@NonNull String); field public static final long VALUE_TEST_ID_NONE = -9223372036854775808L; // 0x8000000000000000L } public static class AudioAttributes.Builder { method @NonNull public android.media.AudioAttributes.Builder setTestId(long); } public final class AudioDeviceInfo { Loading
core/java/android/app/AppCompatTaskInfo.java +15 −5 Original line number Diff line number Diff line Loading @@ -73,6 +73,12 @@ public class AppCompatTaskInfo implements Parcelable { @Nullable public Rect topActivityLetterboxBounds; /** * Contains the aspect ratio of the top non-resizable activity or * {@link TaskInfo#PROPERTY_VALUE_UNSET} otherwise. */ public float topNonResizableActivityAspectRatio = PROPERTY_VALUE_UNSET; /** * Stores camera-related app compat information about a particular Task. */ Loading Loading @@ -400,12 +406,13 @@ public class AppCompatTaskInfo implements Parcelable { return (mTopActivityFlags & FLAGS_ORGANIZER_INTERESTED) == (that.mTopActivityFlags & FLAGS_ORGANIZER_INTERESTED) && topActivityLetterboxVerticalPosition == that.topActivityLetterboxVerticalPosition && topActivityLetterboxWidth == that.topActivityLetterboxWidth && topActivityLetterboxHeight == that.topActivityLetterboxHeight && topActivityAppBounds.equals(that.topActivityAppBounds) && topActivityLetterboxHorizontalPosition == that.topActivityLetterboxHorizontalPosition && cameraCompatTaskInfo.equalsForTaskOrganizer(that.cameraCompatTaskInfo); && topActivityLetterboxWidth == that.topActivityLetterboxWidth && topActivityLetterboxHeight == that.topActivityLetterboxHeight && Objects.equals(topActivityAppBounds, that.topActivityAppBounds) && cameraCompatTaskInfo.equalsForTaskOrganizer(that.cameraCompatTaskInfo) && topNonResizableActivityAspectRatio == that.topNonResizableActivityAspectRatio; } /** Loading @@ -422,7 +429,7 @@ public class AppCompatTaskInfo implements Parcelable { == that.topActivityLetterboxHorizontalPosition && topActivityLetterboxWidth == that.topActivityLetterboxWidth && topActivityLetterboxHeight == that.topActivityLetterboxHeight && topActivityAppBounds.equals(that.topActivityAppBounds) && Objects.equals(topActivityAppBounds, that.topActivityAppBounds) && cameraCompatTaskInfo.equalsForCompatUi(that.cameraCompatTaskInfo); } Loading @@ -438,6 +445,7 @@ public class AppCompatTaskInfo implements Parcelable { topActivityAppBounds.set(Objects.requireNonNull(source.readTypedObject(Rect.CREATOR))); topActivityLetterboxBounds = source.readTypedObject(Rect.CREATOR); cameraCompatTaskInfo = source.readTypedObject(CameraCompatTaskInfo.CREATOR); topNonResizableActivityAspectRatio = source.readFloat(); } /** Loading @@ -453,6 +461,7 @@ public class AppCompatTaskInfo implements Parcelable { dest.writeTypedObject(topActivityAppBounds, flags); dest.writeTypedObject(topActivityLetterboxBounds, flags); dest.writeTypedObject(cameraCompatTaskInfo, flags); dest.writeFloat(topNonResizableActivityAspectRatio); } @Override Loading @@ -475,6 +484,7 @@ public class AppCompatTaskInfo implements Parcelable { + " hasMinAspectRatioOverride=" + hasMinAspectRatioOverride() + " topActivityLetterboxBounds=" + topActivityLetterboxBounds + " cameraCompatTaskInfo=" + cameraCompatTaskInfo.toString() + " topNonResizableActivityAspectRatio=" + topNonResizableActivityAspectRatio + "}"; } Loading
core/java/android/app/Notification.java +34 −8 Original line number Diff line number Diff line Loading @@ -234,6 +234,13 @@ public class Notification implements Parcelable */ public static final String EXTRA_NOTIFICATION_ID = "android.intent.extra.NOTIFICATION_ID"; /** * Optional extra for {@link Notification}. If provided, should contain a boolean indicating * whether the notification is requesting promoted treatment. */ @FlaggedApi(Flags.FLAG_OPT_IN_RICH_ONGOING) public static final String EXTRA_REQUEST_PROMOTED_ONGOING = "android.REQUEST_PROMOTED_ONGOING"; /** * Use all default values (where applicable). */ Loading Loading @@ -3302,6 +3309,24 @@ public class Notification implements Parcelable */ @FlaggedApi(Flags.FLAG_API_RICH_ONGOING) public boolean hasPromotableCharacteristics() { if (Flags.optInRichOngoing()) { // New promotable specs: // Must explicitly request promotion if (!extras.getBoolean(EXTRA_REQUEST_PROMOTED_ONGOING, false)) { return false; } // Must not have disqualifying characteristics if (!isOngoingEvent() || isGroupSummary() || containsCustomViews() || !hasTitle()) { return false; } // "Ongoing CallStyle" notifications may be promoted regardless of style if (isOngoingCallStyle()) { return true; } // Otherwise, promote if styled correctly and NOT colorized return hasPromotableStyle() && !isColorizedRequested(); } else { // Original promotable specs: if (!isOngoingEvent() || isGroupSummary() || containsCustomViews() || !hasTitle()) { return false; } Loading @@ -3311,6 +3336,7 @@ public class Notification implements Parcelable } return isColorizedRequested() && hasPromotableStyle(); } } /** Returns whether the notification is CallStyle.forOngoingCall(). */ private boolean isOngoingCallStyle() { Loading Loading @@ -7127,7 +7153,7 @@ public class Notification implements Parcelable savedBundle.getBoolean(EXTRA_SHOW_CHRONOMETER)); publicExtras.putBoolean(EXTRA_CHRONOMETER_COUNT_DOWN, savedBundle.getBoolean(EXTRA_CHRONOMETER_COUNT_DOWN)); if (mN.isPromotedOngoing()) { if (mN.isPromotedOngoing() && !Flags.optInRichOngoing()) { publicExtras.putBoolean(EXTRA_COLORIZED, savedBundle.getBoolean(EXTRA_COLORIZED)); } Loading
core/java/android/app/notification.aconfig +8 −0 Original line number Diff line number Diff line Loading @@ -247,6 +247,14 @@ flag { bug: "337261753" } flag { name: "opt_in_rich_ongoing" namespace: "systemui" is_exported: true description: "[RONs] v0.2 promotion logic: explicit opt-in and no colorization" bug: "410621769" } flag { name: "ui_rich_ongoing" is_exported: true Loading