Loading media/java/android/media/FadeManagerConfiguration.java +15 −1 Original line number Diff line number Diff line Loading @@ -836,7 +836,7 @@ public final class FadeManagerConfiguration implements Parcelable { */ public Builder(@NonNull FadeManagerConfiguration fmc) { mFadeState = fmc.mFadeState; mUsageToFadeWrapperMap = fmc.mUsageToFadeWrapperMap.clone(); copyUsageToFadeWrapperMapInternal(fmc.mUsageToFadeWrapperMap); mAttrToFadeWrapperMap = new ArrayMap<AudioAttributes, FadeVolumeShaperConfigsWrapper>( fmc.mAttrToFadeWrapperMap); mFadeableUsages = fmc.mFadeableUsages.clone(); Loading Loading @@ -1459,6 +1459,14 @@ public final class FadeManagerConfiguration implements Parcelable { } } private void copyUsageToFadeWrapperMapInternal( SparseArray<FadeVolumeShaperConfigsWrapper> usageToFadeWrapperMap) { for (int index = 0; index < usageToFadeWrapperMap.size(); index++) { mUsageToFadeWrapperMap.put(usageToFadeWrapperMap.keyAt(index), new FadeVolumeShaperConfigsWrapper(usageToFadeWrapperMap.valueAt(index))); } } private void validateFadeState(int state) { switch(state) { case FADE_STATE_DISABLED: Loading Loading @@ -1551,6 +1559,12 @@ public final class FadeManagerConfiguration implements Parcelable { FadeVolumeShaperConfigsWrapper() {} FadeVolumeShaperConfigsWrapper(@NonNull FadeVolumeShaperConfigsWrapper wrapper) { Objects.requireNonNull(wrapper, "Fade volume shaper configs wrapper cannot be null"); this.mFadeOutVolShaperConfig = wrapper.mFadeOutVolShaperConfig; this.mFadeInVolShaperConfig = wrapper.mFadeInVolShaperConfig; } public void setFadeOutVolShaperConfig(@Nullable VolumeShaper.Configuration fadeOutConfig) { mFadeOutVolShaperConfig = fadeOutConfig; } Loading media/tests/AudioPolicyTest/src/com/android/audiopolicytest/FadeManagerConfigurationUnitTest.java +40 −2 Original line number Diff line number Diff line Loading @@ -196,8 +196,7 @@ public final class FadeManagerConfigurationUnitTest { FadeManagerConfiguration fmcObj = new FadeManagerConfiguration .Builder(TEST_FADE_OUT_DURATION_MS, TEST_FADE_IN_DURATION_MS).build(); FadeManagerConfiguration fmc = new FadeManagerConfiguration .Builder(fmcObj).build(); FadeManagerConfiguration fmc = new FadeManagerConfiguration.Builder(fmcObj).build(); expect.withMessage("Fade state for copy builder").that(fmc.getFadeState()) .isEqualTo(fmcObj.getFadeState()); Loading Loading @@ -248,6 +247,45 @@ public final class FadeManagerConfigurationUnitTest { .isEqualTo(fmcObj.getFadeInDurationForAudioAttributes(TEST_GAME_AUDIO_ATTRIBUTE)); } @Test public void build_withCopyConstructor_doesnotChangeOriginal() { FadeManagerConfiguration copyConstructedFmc = new FadeManagerConfiguration.Builder(mFmc) .setFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_OUT_DURATION_MS) .setFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_IN_DURATION_MS) .build(); expect.withMessage("Fade out duration for media usage of default constructor") .that(mFmc.getFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(DEFAULT_FADE_OUT_DURATION_MS); expect.withMessage("Fade out duration for media usage of default constructor") .that(mFmc.getFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(DEFAULT_FADE_IN_DURATION_MS); expect.withMessage("Fade out duration for media usage of copy constructor") .that(copyConstructedFmc.getFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(TEST_FADE_OUT_DURATION_MS); expect.withMessage("Fade out duration for media usage of copy constructor") .that(copyConstructedFmc.getFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(TEST_FADE_IN_DURATION_MS); } @Test public void build_withCopyConstructor_equals() { FadeManagerConfiguration fmc = new FadeManagerConfiguration.Builder() .setFadeableUsages(List.of(AudioAttributes.USAGE_MEDIA, AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, AudioAttributes.USAGE_ASSISTANT, AudioAttributes.USAGE_EMERGENCY)) .setFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_OUT_DURATION_MS) .setFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_IN_DURATION_MS) .build(); FadeManagerConfiguration copyConstructedFmc = new FadeManagerConfiguration.Builder(fmc).build(); expect.withMessage("Fade manager config constructed using copy constructor").that(fmc) .isEqualTo(copyConstructedFmc); } @Test public void testGetDefaultFadeOutDuration() { expect.withMessage("Default fade out duration") Loading Loading
media/java/android/media/FadeManagerConfiguration.java +15 −1 Original line number Diff line number Diff line Loading @@ -836,7 +836,7 @@ public final class FadeManagerConfiguration implements Parcelable { */ public Builder(@NonNull FadeManagerConfiguration fmc) { mFadeState = fmc.mFadeState; mUsageToFadeWrapperMap = fmc.mUsageToFadeWrapperMap.clone(); copyUsageToFadeWrapperMapInternal(fmc.mUsageToFadeWrapperMap); mAttrToFadeWrapperMap = new ArrayMap<AudioAttributes, FadeVolumeShaperConfigsWrapper>( fmc.mAttrToFadeWrapperMap); mFadeableUsages = fmc.mFadeableUsages.clone(); Loading Loading @@ -1459,6 +1459,14 @@ public final class FadeManagerConfiguration implements Parcelable { } } private void copyUsageToFadeWrapperMapInternal( SparseArray<FadeVolumeShaperConfigsWrapper> usageToFadeWrapperMap) { for (int index = 0; index < usageToFadeWrapperMap.size(); index++) { mUsageToFadeWrapperMap.put(usageToFadeWrapperMap.keyAt(index), new FadeVolumeShaperConfigsWrapper(usageToFadeWrapperMap.valueAt(index))); } } private void validateFadeState(int state) { switch(state) { case FADE_STATE_DISABLED: Loading Loading @@ -1551,6 +1559,12 @@ public final class FadeManagerConfiguration implements Parcelable { FadeVolumeShaperConfigsWrapper() {} FadeVolumeShaperConfigsWrapper(@NonNull FadeVolumeShaperConfigsWrapper wrapper) { Objects.requireNonNull(wrapper, "Fade volume shaper configs wrapper cannot be null"); this.mFadeOutVolShaperConfig = wrapper.mFadeOutVolShaperConfig; this.mFadeInVolShaperConfig = wrapper.mFadeInVolShaperConfig; } public void setFadeOutVolShaperConfig(@Nullable VolumeShaper.Configuration fadeOutConfig) { mFadeOutVolShaperConfig = fadeOutConfig; } Loading
media/tests/AudioPolicyTest/src/com/android/audiopolicytest/FadeManagerConfigurationUnitTest.java +40 −2 Original line number Diff line number Diff line Loading @@ -196,8 +196,7 @@ public final class FadeManagerConfigurationUnitTest { FadeManagerConfiguration fmcObj = new FadeManagerConfiguration .Builder(TEST_FADE_OUT_DURATION_MS, TEST_FADE_IN_DURATION_MS).build(); FadeManagerConfiguration fmc = new FadeManagerConfiguration .Builder(fmcObj).build(); FadeManagerConfiguration fmc = new FadeManagerConfiguration.Builder(fmcObj).build(); expect.withMessage("Fade state for copy builder").that(fmc.getFadeState()) .isEqualTo(fmcObj.getFadeState()); Loading Loading @@ -248,6 +247,45 @@ public final class FadeManagerConfigurationUnitTest { .isEqualTo(fmcObj.getFadeInDurationForAudioAttributes(TEST_GAME_AUDIO_ATTRIBUTE)); } @Test public void build_withCopyConstructor_doesnotChangeOriginal() { FadeManagerConfiguration copyConstructedFmc = new FadeManagerConfiguration.Builder(mFmc) .setFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_OUT_DURATION_MS) .setFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_IN_DURATION_MS) .build(); expect.withMessage("Fade out duration for media usage of default constructor") .that(mFmc.getFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(DEFAULT_FADE_OUT_DURATION_MS); expect.withMessage("Fade out duration for media usage of default constructor") .that(mFmc.getFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(DEFAULT_FADE_IN_DURATION_MS); expect.withMessage("Fade out duration for media usage of copy constructor") .that(copyConstructedFmc.getFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(TEST_FADE_OUT_DURATION_MS); expect.withMessage("Fade out duration for media usage of copy constructor") .that(copyConstructedFmc.getFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA)) .isEqualTo(TEST_FADE_IN_DURATION_MS); } @Test public void build_withCopyConstructor_equals() { FadeManagerConfiguration fmc = new FadeManagerConfiguration.Builder() .setFadeableUsages(List.of(AudioAttributes.USAGE_MEDIA, AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, AudioAttributes.USAGE_ASSISTANT, AudioAttributes.USAGE_EMERGENCY)) .setFadeOutDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_OUT_DURATION_MS) .setFadeInDurationForUsage(AudioAttributes.USAGE_MEDIA, TEST_FADE_IN_DURATION_MS) .build(); FadeManagerConfiguration copyConstructedFmc = new FadeManagerConfiguration.Builder(fmc).build(); expect.withMessage("Fade manager config constructed using copy constructor").that(fmc) .isEqualTo(copyConstructedFmc); } @Test public void testGetDefaultFadeOutDuration() { expect.withMessage("Default fade out duration") Loading