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

Commit 1c3cf178 authored by Yein Jo's avatar Yein Jo Committed by Android (Google) Code Review
Browse files

Merge "Add another flag to control turbulence noise in UMO." into tm-qpr-dev

parents 715ec8b3 eace956e
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -291,6 +291,9 @@ object Flags {

    @JvmField val MEDIA_FALSING_PENALTY = unreleasedFlag(908, "media_falsing_media")

    // TODO(b/261734857): Tracking Bug
    @JvmField val UMO_TURBULENCE_NOISE = unreleasedFlag(909, "umo_turbulence_noise")

    // 1000 - dock
    val SIMULATE_DOCK_THROUGH_CHARGING = releasedFlag(1000, "simulate_dock_through_charging")

+12 −8
Original line number Diff line number Diff line
@@ -224,6 +224,8 @@ public class MediaControlPanel {
    private TurbulenceNoiseController mTurbulenceNoiseController;
    private FeatureFlags mFeatureFlags;
    private TurbulenceNoiseAnimationConfig mTurbulenceNoiseAnimationConfig = null;
    @VisibleForTesting
    MultiRippleController.Companion.RipplesFinishedListener mRipplesFinishedListener = null;

    /**
     * Initialize a new control panel
@@ -404,15 +406,17 @@ public class MediaControlPanel {
        MultiRippleView multiRippleView = vh.getMultiRippleView();
        mMultiRippleController = new MultiRippleController(multiRippleView);
        mTurbulenceNoiseController = new TurbulenceNoiseController(vh.getTurbulenceNoiseView());
        mMultiRippleController.addRipplesFinishedListener(
                () -> {
        if (mFeatureFlags.isEnabled(Flags.UMO_TURBULENCE_NOISE)) {
            mRipplesFinishedListener = () -> {
                if (mTurbulenceNoiseAnimationConfig == null) {
                    mTurbulenceNoiseAnimationConfig = createLingeringNoiseAnimation();
                }
                // Color will be correctly updated in ColorSchemeTransition.
                mTurbulenceNoiseController.play(mTurbulenceNoiseAnimationConfig);
            };
            mMultiRippleController.addRipplesFinishedListener(mRipplesFinishedListener);
        }
        );

        mColorSchemeTransition = new ColorSchemeTransition(
                mContext, mMediaViewHolder, mMultiRippleController, mTurbulenceNoiseController);
        mMetadataAnimationHandler = new MetadataAnimationHandler(exit, enter);
+21 −0
Original line number Diff line number Diff line
@@ -214,6 +214,7 @@ public class MediaControlPanelTest : SysuiTestCase() {
    private val fakeFeatureFlag =
        FakeFeatureFlags().apply {
            this.set(Flags.UMO_SURFACE_RIPPLE, false)
            this.set(Flags.UMO_TURBULENCE_NOISE, false)
            this.set(Flags.MEDIA_FALSING_PENALTY, true)
        }

@@ -2062,6 +2063,26 @@ public class MediaControlPanelTest : SysuiTestCase() {
        assertThat(viewHolder.multiRippleView.ripples.size).isEqualTo(0)
    }

    @Test
    fun onButtonClick_turbulenceNoiseFlagEnabled_createsRipplesFinishedListener() {
        fakeFeatureFlag.set(Flags.UMO_SURFACE_RIPPLE, true)
        fakeFeatureFlag.set(Flags.UMO_TURBULENCE_NOISE, true)

        player.attachPlayer(viewHolder)

        assertThat(player.mRipplesFinishedListener).isNotNull()
    }

    @Test
    fun onButtonClick_turbulenceNoiseFlagDisabled_doesNotCreateRipplesFinishedListener() {
        fakeFeatureFlag.set(Flags.UMO_SURFACE_RIPPLE, true)
        fakeFeatureFlag.set(Flags.UMO_TURBULENCE_NOISE, false)

        player.attachPlayer(viewHolder)

        assertThat(player.mRipplesFinishedListener).isNull()
    }

    private fun getScrubbingChangeListener(): SeekBarViewModel.ScrubbingChangeListener =
        withArgCaptor {
            verify(seekBarViewModel).setScrubbingChangeListener(capture())