diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarView.kt index cc0ec548716d5..b1e28129a6900 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarView.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarView.kt @@ -77,6 +77,17 @@ open class ModernStatusBarView(context: Context, attrs: AttributeSet?) : return binding.getShouldIconBeVisible() } + /** See [StatusBarIconView.getDrawingRect]. */ + override fun getDrawingRect(outRect: Rect) { + super.getDrawingRect(outRect) + val translationX = translationX.toInt() + val translationY = translationY.toInt() + outRect.left += translationX + outRect.right += translationX + outRect.top += translationY + outRect.bottom += translationY + } + /** * Initializes this view. * diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarViewTest.kt index 3fe69837a7616..e4c8fd0cd8a1e 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarViewTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/shared/ui/view/ModernStatusBarViewTest.kt @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.pipeline.shared.ui.view +import android.graphics.Rect import android.testing.AndroidTestingRunner import android.testing.TestableLooper.RunWithLooper import androidx.test.filters.SmallTest @@ -118,6 +119,22 @@ class ModernStatusBarViewTest : SysuiTestCase() { assertThat(view.isIconVisible).isEqualTo(false) } + @Test + fun getDrawingRect_takesTranslationIntoAccount() { + val view = createAndInitView() + + view.translationX = 50f + view.translationY = 60f + + val drawingRect = Rect() + view.getDrawingRect(drawingRect) + + assertThat(drawingRect.left).isEqualTo(view.left + 50) + assertThat(drawingRect.right).isEqualTo(view.right + 50) + assertThat(drawingRect.top).isEqualTo(view.top + 60) + assertThat(drawingRect.bottom).isEqualTo(view.bottom + 60) + } + private fun createAndInitView(): ModernStatusBarView { val view = ModernStatusBarView(context, null) binding = TestBinding()