Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20142b16 authored by Raj Goparaju's avatar Raj Goparaju
Browse files

Add @IntRange annotation to clarify expected duration value

The setter and getter APIs for duration accept values
ranging from non-negative to positive-only. Add necessary
annotation to clarify the expected duration value.

Bug: 318430127
API-Coverage-Bug: 308666800
Test: atest FadeManagerConfigurationUnitTest
Change-Id: I201f96ac74169dc3f43d3a6c349bec99c9410d5f
parent 62e3715e
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -7065,15 +7065,15 @@ package android.media {
  @FlaggedApi("android.media.audiopolicy.enable_fade_manager_configuration") public final class FadeManagerConfiguration implements android.os.Parcelable {
    method public int describeContents();
    method @NonNull public java.util.List<android.media.AudioAttributes> getAudioAttributesWithVolumeShaperConfigs();
    method public static long getDefaultFadeInDurationMillis();
    method public static long getDefaultFadeOutDurationMillis();
    method public long getFadeInDelayForOffenders();
    method public long getFadeInDurationForAudioAttributes(@NonNull android.media.AudioAttributes);
    method public long getFadeInDurationForUsage(int);
    method @IntRange(from=1) public static long getDefaultFadeInDurationMillis();
    method @IntRange(from=1) public static long getDefaultFadeOutDurationMillis();
    method @IntRange(from=0) public long getFadeInDelayForOffenders();
    method @IntRange(from=0) public long getFadeInDurationForAudioAttributes(@NonNull android.media.AudioAttributes);
    method @IntRange(from=0) public long getFadeInDurationForUsage(int);
    method @Nullable public android.media.VolumeShaper.Configuration getFadeInVolumeShaperConfigForAudioAttributes(@NonNull android.media.AudioAttributes);
    method @Nullable public android.media.VolumeShaper.Configuration getFadeInVolumeShaperConfigForUsage(int);
    method public long getFadeOutDurationForAudioAttributes(@NonNull android.media.AudioAttributes);
    method public long getFadeOutDurationForUsage(int);
    method @IntRange(from=0) public long getFadeOutDurationForAudioAttributes(@NonNull android.media.AudioAttributes);
    method @IntRange(from=0) public long getFadeOutDurationForUsage(int);
    method @Nullable public android.media.VolumeShaper.Configuration getFadeOutVolumeShaperConfigForAudioAttributes(@NonNull android.media.AudioAttributes);
    method @Nullable public android.media.VolumeShaper.Configuration getFadeOutVolumeShaperConfigForUsage(int);
    method public int getFadeState();
@@ -7099,7 +7099,7 @@ package android.media {
  public static final class FadeManagerConfiguration.Builder {
    ctor public FadeManagerConfiguration.Builder();
    ctor public FadeManagerConfiguration.Builder(long, long);
    ctor public FadeManagerConfiguration.Builder(@IntRange(from=1) long, @IntRange(from=1) long);
    ctor public FadeManagerConfiguration.Builder(@NonNull android.media.FadeManagerConfiguration);
    method @NonNull public android.media.FadeManagerConfiguration.Builder addFadeableUsage(int);
    method @NonNull public android.media.FadeManagerConfiguration.Builder addUnfadeableAudioAttributes(@NonNull android.media.AudioAttributes);
@@ -7110,13 +7110,13 @@ package android.media {
    method @NonNull public android.media.FadeManagerConfiguration.Builder clearUnfadeableAudioAttributes();
    method @NonNull public android.media.FadeManagerConfiguration.Builder clearUnfadeableContentTypes();
    method @NonNull public android.media.FadeManagerConfiguration.Builder clearUnfadeableUids();
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInDelayForOffenders(long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInDurationForAudioAttributes(@NonNull android.media.AudioAttributes, long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInDurationForUsage(int, long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInDelayForOffenders(@IntRange(from=0) long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInDurationForAudioAttributes(@NonNull android.media.AudioAttributes, @IntRange(from=0) long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInDurationForUsage(int, @IntRange(from=0) long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInVolumeShaperConfigForAudioAttributes(@NonNull android.media.AudioAttributes, @Nullable android.media.VolumeShaper.Configuration);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeInVolumeShaperConfigForUsage(int, @Nullable android.media.VolumeShaper.Configuration);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeOutDurationForAudioAttributes(@NonNull android.media.AudioAttributes, long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeOutDurationForUsage(int, long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeOutDurationForAudioAttributes(@NonNull android.media.AudioAttributes, @IntRange(from=0) long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeOutDurationForUsage(int, @IntRange(from=0) long);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeOutVolumeShaperConfigForAudioAttributes(@NonNull android.media.AudioAttributes, @Nullable android.media.VolumeShaper.Configuration);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeOutVolumeShaperConfigForUsage(int, @Nullable android.media.VolumeShaper.Configuration);
    method @NonNull public android.media.FadeManagerConfiguration.Builder setFadeState(int);
+16 −14
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import static android.media.audiopolicy.Flags.FLAG_ENABLE_FADE_MANAGER_CONFIGURA
import android.annotation.DurationMillisLong;
import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
@@ -274,7 +275,7 @@ public final class FadeManagerConfiguration implements Parcelable {
     * @throws IllegalArgumentException if the usage is invalid
     * @throws IllegalStateException if the fade state is set to {@link #FADE_STATE_DISABLED}
     */
    @DurationMillisLong
    @IntRange(from = 0) @DurationMillisLong
    public long getFadeOutDurationForUsage(@AudioAttributes.AttributeUsage int usage) {
        ensureFadingIsEnabled();
        validateUsage(usage);
@@ -290,7 +291,7 @@ public final class FadeManagerConfiguration implements Parcelable {
     * @throws IllegalArgumentException if the usage is invalid
     * @throws IllegalStateException if the fade state is set to {@link #FADE_STATE_DISABLED}
     */
    @DurationMillisLong
    @IntRange(from = 0) @DurationMillisLong
    public long getFadeInDurationForUsage(@AudioAttributes.AttributeUsage int usage) {
        ensureFadingIsEnabled();
        validateUsage(usage);
@@ -345,7 +346,7 @@ public final class FadeManagerConfiguration implements Parcelable {
     * @throws NullPointerException if the audio attributes is {@code null}
     * @throws IllegalStateException if the fade state is set to {@link #FADE_STATE_DISABLED}
     */
    @DurationMillisLong
    @IntRange(from = 0) @DurationMillisLong
    public long getFadeOutDurationForAudioAttributes(@NonNull AudioAttributes audioAttributes) {
        ensureFadingIsEnabled();
        return getDurationForVolumeShaperConfig(getVolumeShaperConfigFromWrapper(
@@ -361,7 +362,7 @@ public final class FadeManagerConfiguration implements Parcelable {
     * @throws NullPointerException if the audio attributes is {@code null}
     * @throws IllegalStateException if the fade state is set to {@link #FADE_STATE_DISABLED}
     */
    @DurationMillisLong
    @IntRange(from = 0) @DurationMillisLong
    public long getFadeInDurationForAudioAttributes(@NonNull AudioAttributes audioAttributes) {
        ensureFadingIsEnabled();
        return getDurationForVolumeShaperConfig(getVolumeShaperConfigFromWrapper(
@@ -428,7 +429,7 @@ public final class FadeManagerConfiguration implements Parcelable {
     *
     * @return delay in milliseconds
     */
    @DurationMillisLong
    @IntRange(from = 0) @DurationMillisLong
    public long getFadeInDelayForOffenders() {
        return mFadeInDelayForOffendersMillis;
    }
@@ -517,14 +518,14 @@ public final class FadeManagerConfiguration implements Parcelable {
    /**
     * Returns the default fade out duration (in milliseconds)
     */
    public static @DurationMillisLong long getDefaultFadeOutDurationMillis() {
    public static @IntRange(from = 1) @DurationMillisLong long getDefaultFadeOutDurationMillis() {
        return DEFAULT_FADE_OUT_DURATION_MS;
    }

    /**
     * Returns the default fade in duration (in milliseconds)
     */
    public static @DurationMillisLong long getDefaultFadeInDurationMillis() {
    public static @IntRange(from = 1) @DurationMillisLong long getDefaultFadeInDurationMillis() {
        return DEFAULT_FADE_IN_DURATION_MS;
    }

@@ -820,8 +821,8 @@ public final class FadeManagerConfiguration implements Parcelable {
         * @param fadeOutDurationMillis duration in milliseconds used for fading out
         * @param fadeInDurationMills duration in milliseconds used for fading in
         */
        public Builder(@DurationMillisLong long fadeOutDurationMillis,
                @DurationMillisLong long fadeInDurationMills) {
        public Builder(@IntRange(from = 1) @DurationMillisLong long fadeOutDurationMillis,
                @IntRange(from = 1) @DurationMillisLong long fadeInDurationMills) {
            mFadeOutDurationMillis = fadeOutDurationMillis;
            mFadeInDurationMillis = fadeInDurationMills;
        }
@@ -939,7 +940,7 @@ public final class FadeManagerConfiguration implements Parcelable {
         */
        @NonNull
        public Builder setFadeOutDurationForUsage(@AudioAttributes.AttributeUsage int usage,
                @DurationMillisLong long fadeOutDurationMillis) {
                @IntRange(from = 0) @DurationMillisLong long fadeOutDurationMillis) {
            validateUsage(usage);
            VolumeShaper.Configuration fadeOutVShaperConfig =
                    createVolShaperConfigForDuration(fadeOutDurationMillis, /* isFadeIn= */ false);
@@ -970,7 +971,7 @@ public final class FadeManagerConfiguration implements Parcelable {
         */
        @NonNull
        public Builder setFadeInDurationForUsage(@AudioAttributes.AttributeUsage int usage,
                @DurationMillisLong long fadeInDurationMillis) {
                @IntRange(from = 0) @DurationMillisLong long fadeInDurationMillis) {
            validateUsage(usage);
            VolumeShaper.Configuration fadeInVShaperConfig =
                    createVolShaperConfigForDuration(fadeInDurationMillis, /* isFadeIn= */ true);
@@ -1055,7 +1056,7 @@ public final class FadeManagerConfiguration implements Parcelable {
        @NonNull
        public Builder setFadeOutDurationForAudioAttributes(
                @NonNull AudioAttributes audioAttributes,
                @DurationMillisLong long fadeOutDurationMillis) {
                @IntRange(from = 0) @DurationMillisLong long fadeOutDurationMillis) {
            Objects.requireNonNull(audioAttributes, "Audio attribute cannot be null");
            VolumeShaper.Configuration fadeOutVShaperConfig =
                    createVolShaperConfigForDuration(fadeOutDurationMillis, /* isFadeIn= */ false);
@@ -1087,7 +1088,7 @@ public final class FadeManagerConfiguration implements Parcelable {
         */
        @NonNull
        public Builder setFadeInDurationForAudioAttributes(@NonNull AudioAttributes audioAttributes,
                @DurationMillisLong long fadeInDurationMillis) {
                @IntRange(from = 0) @DurationMillisLong long fadeInDurationMillis) {
            Objects.requireNonNull(audioAttributes, "Audio attribute cannot be null");
            VolumeShaper.Configuration fadeInVShaperConfig =
                    createVolShaperConfigForDuration(fadeInDurationMillis, /* isFadeIn= */ true);
@@ -1336,7 +1337,8 @@ public final class FadeManagerConfiguration implements Parcelable {
         * @see #getFadeInDelayForOffenders()
         */
        @NonNull
        public Builder setFadeInDelayForOffenders(@DurationMillisLong long delayMillis) {
        public Builder setFadeInDelayForOffenders(
                @IntRange(from = 0) @DurationMillisLong long delayMillis) {
            Preconditions.checkArgument(delayMillis >= 0, "Delay cannot be negative");
            mFadeInDelayForOffendersMillis = delayMillis;
            return this;