Move surface effects package to AnimationLib.

in order to share surface effects between launcher and sysui, the
package has been moved to the AnimationLib, which is visible to launcher
as well.

fyi the corresponding tests remain in the SystemUiLib module.
technically they should be moved to AnimationLib together, but those
tests are dependant on SystemUI testing frameworks (e.g. SysuiTestCase,
FakeExecutor, etc.). because of this, some of the variables are marked
as VisibleForTesting.

Bug: 249536060
Test: MultiRippleControllerTest MultiRippleViewTest RippleAnimationTest RippleViewTest TurbulenceNoiseControllerTest TurbulenceNoiseViewTest
Change-Id: I37cdc7cf9064d4d8f02afe72ad16b1cc3df95b6c
This commit is contained in:
Yein Jo
2022-11-29 06:53:36 +00:00
parent 5932f31d58
commit 7b8e527134
13 changed files with 14 additions and 5 deletions

View File

@@ -34,7 +34,12 @@ android_library {
"res",
],
static_libs: ["androidx.core_core-animation-nodeps"],
static_libs: [
"PluginCoreLib",
"androidx.core_core-animation-nodeps",
"androidx.core_core-ktx",
"androidx.annotation_annotation",
],
manifest: "AndroidManifest.xml",
kotlincflags: ["-Xjvm-default=all"],

View File

@@ -22,6 +22,7 @@ import android.graphics.Paint
import android.util.AttributeSet
import android.util.Log
import android.view.View
import androidx.annotation.VisibleForTesting
/**
* A view that allows multiple ripples to play.
@@ -30,7 +31,8 @@ import android.view.View
*/
class MultiRippleView(context: Context?, attrs: AttributeSet?) : View(context, attrs) {
internal val ripples = ArrayList<RippleAnimation>()
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
val ripples = ArrayList<RippleAnimation>()
private val listeners = ArrayList<RipplesFinishedListener>()
private val ripplePaint = Paint()
private var isWarningLogged = false

View File

@@ -19,11 +19,13 @@ package com.android.systemui.surfaceeffects.ripple
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.animation.ValueAnimator
import androidx.annotation.VisibleForTesting
import androidx.core.graphics.ColorUtils
/** A single ripple animation. */
class RippleAnimation(private val config: RippleAnimationConfig) {
internal val rippleShader: RippleShader = RippleShader(config.rippleShape)
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
val rippleShader: RippleShader = RippleShader(config.rippleShape)
private val animator: ValueAnimator = ValueAnimator.ofFloat(0f, 1f)
init {

View File

@@ -32,7 +32,7 @@ import com.android.systemui.surfaceeffects.shaderutil.ShaderUtilLibrary
*
* Modeled after frameworks/base/graphics/java/android/graphics/drawable/RippleShader.java.
*/
class RippleShader internal constructor(rippleShape: RippleShape = RippleShape.CIRCLE) :
class RippleShader(rippleShape: RippleShape = RippleShape.CIRCLE) :
RuntimeShader(buildShader(rippleShape)) {
/** Shapes that the [RippleShader] supports. */

View File

@@ -68,7 +68,7 @@ class TurbulenceNoiseView(context: Context?, attrs: AttributeSet?) : View(contex
canvas.drawPaint(paint)
}
internal fun play(config: TurbulenceNoiseAnimationConfig) {
fun play(config: TurbulenceNoiseAnimationConfig) {
if (isPlaying) {
return // Ignore if the animation is playing.
}