[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:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user