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

Commit f37fea93 authored by Omar Miatello's avatar Omar Miatello Committed by Android (Google) Code Review
Browse files

Merge "Do not reset roundness on ExpandableOutlineView.initDimens()" into tm-qpr-dev

parents c6bffbb3 805da853
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -306,9 +306,12 @@ interface Roundable {
 */
class RoundableState(
    internal val targetView: View,
    roundable: Roundable,
    internal val maxRadius: Float,
    private val roundable: Roundable,
    maxRadius: Float,
) {
    internal var maxRadius = maxRadius
        private set

    /** Animatable for top roundness */
    private val topAnimatable = topAnimatable(roundable)

@@ -356,6 +359,13 @@ class RoundableState(
        PropertyAnimator.setProperty(targetView, bottomAnimatable, value, DURATION, animated)
    }

    fun setMaxRadius(radius: Float) {
        if (maxRadius != radius) {
            maxRadius = radius
            roundable.applyRoundnessAndInvalidate()
        }
    }

    fun debugString() = buildString {
        append("TargetView: ${targetView.hashCode()} ")
        append("Top: $topRoundness ")
+5 −1
Original line number Diff line number Diff line
@@ -214,7 +214,11 @@ public abstract class ExpandableOutlineView extends ExpandableView {
        } else {
            maxRadius = res.getDimensionPixelSize(R.dimen.notification_corner_radius);
        }
        if (mRoundableState == null) {
            mRoundableState = new RoundableState(this, this, maxRadius);
        } else {
            mRoundableState.setMaxRadius(maxRadius);
        }
        setClipToOutline(mAlwaysRoundBothCorners);
    }

+14 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.notification.FakeShadowView
import com.android.systemui.statusbar.notification.NotificationUtils
import com.android.systemui.statusbar.notification.SourceType
import com.android.systemui.util.mockito.mock
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -83,4 +84,17 @@ class ActivatableNotificationViewTest : SysuiTestCase() {
        mView.updateBackgroundColors()
        assertThat(mView.currentBackgroundTint).isEqualTo(mNormalColor)
    }

    @Test
    fun roundnessShouldBeTheSame_after_onDensityOrFontScaleChanged() {
        val roundableState = mView.roundableState
        assertThat(mView.topRoundness).isEqualTo(0f)
        mView.requestTopRoundness(1f, SourceType.from(""))
        assertThat(mView.topRoundness).isEqualTo(1f)

        mView.onDensityOrFontScaleChanged()

        assertThat(mView.topRoundness).isEqualTo(1f)
        assertThat(mView.roundableState.hashCode()).isEqualTo(roundableState.hashCode())
    }
}
 No newline at end of file