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

Commit 1394f476 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[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
parent 41125ee8
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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.
     *
+17 −0
Original line number Diff line number Diff line
@@ -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()