diff options
| author | 2024-02-15 22:12:24 +0000 | |
|---|---|---|
| committer | 2024-02-21 20:24:56 +0000 | |
| commit | 878e9509837d6e8e2b3d99ee3bed38093d9799cb (patch) | |
| tree | ce4591cb253acbbc1819631d96bd525149d17dd4 | |
| parent | a38c05d6d22e9027eba41dc3c27cad02721be04c (diff) | |
Have TurbulenceNoiseController respect config noise moves.
TurbulenceNoiseController was assigning its own noise move values. With
the recent config updates, it now should respect the config values.
also the class variable random is now a local to the config creation
function in MediaControlPanel.
Bug: 325079325
Test: MediaControlPanelTest, TurbulenceNoiseControllerTest
Flag: NA
Change-Id: I2a3415bfa2913a78d4d96d33f21e063a60eb78b8
4 files changed, 32 insertions, 16 deletions
diff --git a/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseController.kt b/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseController.kt index 535c2d32ed09..e862f0c43a58 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseController.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseController.kt @@ -17,7 +17,6 @@ package com.android.systemui.surfaceeffects.turbulencenoise import android.view.View import androidx.annotation.VisibleForTesting -import java.util.Random /** Plays [TurbulenceNoiseView] in ease-in, main (no easing), and ease-out order. */ class TurbulenceNoiseController(private val turbulenceNoiseView: TurbulenceNoiseView) { @@ -37,8 +36,6 @@ class TurbulenceNoiseController(private val turbulenceNoiseView: TurbulenceNoise } } - private val random = Random() - /** Current state of the animation. */ @VisibleForTesting var state: AnimationState = AnimationState.NOT_PLAYING @@ -95,12 +92,7 @@ class TurbulenceNoiseController(private val turbulenceNoiseView: TurbulenceNoise } state = AnimationState.EASE_IN - // Add offset to avoid repetitive noise. - turbulenceNoiseView.playEaseIn( - offsetX = random.nextFloat(), - offsetY = random.nextFloat(), - this::playMainAnimation - ) + turbulenceNoiseView.playEaseIn(this::playMainAnimation) } private fun playMainAnimation() { diff --git a/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseView.kt b/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseView.kt index c59bc106ca91..5e72e3bd1e39 100644 --- a/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseView.kt +++ b/packages/SystemUI/animation/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseView.kt @@ -109,7 +109,7 @@ class TurbulenceNoiseView(context: Context?, attrs: AttributeSet?) : View(contex /** Plays the turbulence noise with linear ease-in. */ @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) - fun playEaseIn(offsetX: Float = 0f, offsetY: Float = 0f, onAnimationEnd: Runnable? = null) { + fun playEaseIn(onAnimationEnd: Runnable? = null) { if (noiseConfig == null) { return } @@ -129,8 +129,8 @@ class TurbulenceNoiseView(context: Context?, attrs: AttributeSet?) : View(contex val progress = updateListener.animatedValue as Float shader.setNoiseMove( - offsetX + initialX + timeInSec * config.noiseMoveSpeedX, - offsetY + initialY + timeInSec * config.noiseMoveSpeedY, + initialX + timeInSec * config.noiseMoveSpeedX, + initialY + timeInSec * config.noiseMoveSpeedY, initialZ + timeInSec * config.noiseMoveSpeedZ ) diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java index e8ad4d325591..4e940f1f84da 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java @@ -260,7 +260,6 @@ public class MediaControlPanel { private TurbulenceNoiseController mTurbulenceNoiseController; private LoadingEffect mLoadingEffect; private final GlobalSettings mGlobalSettings; - private final Random mRandom = new Random(); private TurbulenceNoiseAnimationConfig mTurbulenceNoiseAnimationConfig; private boolean mWasPlaying = false; private boolean mButtonClicked = false; @@ -1294,13 +1293,14 @@ public class MediaControlPanel { mMediaViewHolder.getTurbulenceNoiseView(); int width = targetView.getWidth(); int height = targetView.getHeight(); + Random random = new Random(); return new TurbulenceNoiseAnimationConfig( /* gridCount= */ 2.14f, TurbulenceNoiseAnimationConfig.DEFAULT_LUMINOSITY_MULTIPLIER, - /* noiseOffsetX= */ mRandom.nextFloat(), - /* noiseOffsetY= */ mRandom.nextFloat(), - /* noiseOffsetZ= */ mRandom.nextFloat(), + /* noiseOffsetX= */ random.nextFloat(), + /* noiseOffsetY= */ random.nextFloat(), + /* noiseOffsetZ= */ random.nextFloat(), /* noiseMoveSpeedX= */ 0.42f, /* noiseMoveSpeedY= */ 0f, TurbulenceNoiseAnimationConfig.DEFAULT_NOISE_SPEED_Z, diff --git a/packages/SystemUI/tests/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseControllerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseControllerTest.kt index 203096affd5c..08b49f026523 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseControllerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/surfaceeffects/turbulencenoise/TurbulenceNoiseControllerTest.kt @@ -166,4 +166,28 @@ class TurbulenceNoiseControllerTest : SysuiTestCase() { assertThat(config.color).isEqualTo(expectedColor) } } + + @Test + fun play_initializesShader() { + val expectedNoiseOffset = floatArrayOf(0.1f, 0.2f, 0.3f) + val config = + TurbulenceNoiseAnimationConfig( + noiseOffsetX = expectedNoiseOffset[0], + noiseOffsetY = expectedNoiseOffset[1], + noiseOffsetZ = expectedNoiseOffset[2] + ) + val turbulenceNoiseView = TurbulenceNoiseView(context, null) + val turbulenceNoiseController = TurbulenceNoiseController(turbulenceNoiseView) + + fakeExecutor.execute { + turbulenceNoiseController.play(SIMPLEX_NOISE, config) + + assertThat(turbulenceNoiseView.noiseConfig).isNotNull() + val shader = turbulenceNoiseView.turbulenceNoiseShader!! + assertThat(shader).isNotNull() + assertThat(shader.noiseOffsetX).isEqualTo(expectedNoiseOffset[0]) + assertThat(shader.noiseOffsetY).isEqualTo(expectedNoiseOffset[1]) + assertThat(shader.noiseOffsetZ).isEqualTo(expectedNoiseOffset[2]) + } + } } |