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

Commit f38fba3e authored by Caitlin Cassidy's avatar Caitlin Cassidy Committed by Android (Google) Code Review
Browse files

Merge "[Media TTT] Update timeout to take accessibility settings into account....

Merge "[Media TTT] Update timeout to take accessibility settings into account. This will extend the timeout for the chip to at least 10s if a11y is on, or longer if the user has it set to longer." into tm-qpr-dev
parents ea89edc0 9e134019
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -27,4 +27,4 @@ interface ChipInfoCommon {
    fun getTimeoutMs(): Long
}

const val DEFAULT_TIMEOUT_MILLIS = 3000L
const val DEFAULT_TIMEOUT_MILLIS = 4000L
+12 −1
Original line number Diff line number Diff line
@@ -31,6 +31,10 @@ import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS
import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_TEXT
import android.widget.LinearLayout
import com.android.internal.widget.CachingIconView
import com.android.settingslib.Utils
@@ -56,6 +60,7 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
    private val windowManager: WindowManager,
    private val viewUtil: ViewUtil,
    @Main private val mainExecutor: DelayableExecutor,
    private val accessibilityManager: AccessibilityManager,
    private val tapGestureDetector: TapGestureDetector,
    private val powerManager: PowerManager,
    @LayoutRes private val chipLayoutRes: Int
@@ -110,10 +115,16 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>(
        }

        // Cancel and re-set the chip timeout each time we get a new state.
        val timeout = accessibilityManager.getRecommendedTimeoutMillis(
            chipInfo.getTimeoutMs().toInt(),
            // Not all chips have controls so FLAG_CONTENT_CONTROLS might be superfluous, but
            // include it just to be safe.
            FLAG_CONTENT_ICONS or FLAG_CONTENT_TEXT or FLAG_CONTENT_CONTROLS
       )
        cancelChipViewTimeout?.run()
        cancelChipViewTimeout = mainExecutor.executeDelayed(
            { removeChip(MediaTttRemovalReason.REASON_TIMEOUT) },
            chipInfo.getTimeoutMs()
            timeout.toLong()
        )
    }

+3 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.os.PowerManager
import android.util.Log
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import com.android.systemui.R
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Main
@@ -52,6 +53,7 @@ class MediaTttChipControllerReceiver @Inject constructor(
    windowManager: WindowManager,
    viewUtil: ViewUtil,
    mainExecutor: DelayableExecutor,
    accessibilityManager: AccessibilityManager,
    tapGestureDetector: TapGestureDetector,
    powerManager: PowerManager,
    @Main private val mainHandler: Handler,
@@ -62,6 +64,7 @@ class MediaTttChipControllerReceiver @Inject constructor(
    windowManager,
    viewUtil,
    mainExecutor,
    accessibilityManager,
    tapGestureDetector,
    powerManager,
    R.layout.media_ttt_chip_receiver
+3 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.util.Log
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import android.widget.TextView
import com.android.internal.statusbar.IUndoMediaTransferCallback
import com.android.systemui.R
@@ -53,6 +54,7 @@ class MediaTttChipControllerSender @Inject constructor(
    windowManager: WindowManager,
    viewUtil: ViewUtil,
    @Main mainExecutor: DelayableExecutor,
    accessibilityManager: AccessibilityManager,
    tapGestureDetector: TapGestureDetector,
    powerManager: PowerManager,
    private val uiEventLogger: MediaTttSenderUiEventLogger
@@ -62,6 +64,7 @@ class MediaTttChipControllerSender @Inject constructor(
    windowManager,
    viewUtil,
    mainExecutor,
    accessibilityManager,
    tapGestureDetector,
    powerManager,
    R.layout.media_ttt_chip
+17 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.view.WindowManager
import android.view.accessibility.AccessibilityManager
import android.widget.ImageView
import androidx.test.filters.SmallTest
import com.android.systemui.R
@@ -65,6 +66,8 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
    @Mock
    private lateinit var logger: MediaTttLogger
    @Mock
    private lateinit var accessibilityManager: AccessibilityManager
    @Mock
    private lateinit var windowManager: WindowManager
    @Mock
    private lateinit var viewUtil: ViewUtil
@@ -88,11 +91,21 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        )).thenReturn(applicationInfo)
        context.setMockPackageManager(packageManager)

        whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any()))
            .thenReturn(TIMEOUT_MS.toInt())

        fakeClock = FakeSystemClock()
        fakeExecutor = FakeExecutor(fakeClock)

        controllerCommon = TestControllerCommon(
            context, logger, windowManager, viewUtil, fakeExecutor, tapGestureDetector, powerManager
            context,
            logger,
            windowManager,
            viewUtil,
            fakeExecutor,
            accessibilityManager,
            tapGestureDetector,
            powerManager
        )
    }

@@ -344,6 +357,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        windowManager: WindowManager,
        viewUtil: ViewUtil,
        @Main mainExecutor: DelayableExecutor,
        accessibilityManager: AccessibilityManager,
        tapGestureDetector: TapGestureDetector,
        powerManager: PowerManager
    ) : MediaTttChipControllerCommon<ChipInfo>(
@@ -352,6 +366,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
        windowManager,
        viewUtil,
        mainExecutor,
        accessibilityManager,
        tapGestureDetector,
        powerManager,
        R.layout.media_ttt_chip
@@ -364,7 +379,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() {
    }

    inner class ChipInfo : ChipInfoCommon {
        override fun getTimeoutMs() = TIMEOUT_MS
        override fun getTimeoutMs() = 1L
    }
}

Loading