[SB Refactor] Override #getDrawingRect for the new views for a11y.

Fixes: 266738185
Bug: 238425913
Test: manual: Turn TalkBack on and swipe through status bar icons ->
verify they swipe in the natural left-to-right order
Test: atest ModernStatusBarViewTest

Change-Id: Ib09011f4ac766c244d86e311651bf73543665495
This commit is contained in:
Caitlin Shkuratov
2023-01-25 22:53:10 +00:00
parent 41125ee819
commit 1394f47641
2 changed files with 28 additions and 0 deletions

View File

@@ -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.
*

View File

@@ -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()