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

Commit eace956e authored by Yein Jo's avatar Yein Jo
Browse files

Add another flag to control turbulence noise in UMO.

To better control ripple and turbulence noise, a new flag is added.

Bug: 249536060
Test: MediaControlPanelTest
Change-Id: I95c3cc2121b1c7f4bd6ca106bd4f6304cbbb01e1
parent 801a4b98
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())