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

Commit 366cad1a authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Prevent NPE in PulseExpansionHandler

This prevents an NPE in PulseExpansionHandler when the onTouchEvent
method is called at unexpected times. Prior to this change, the
velocityTracker could be left in an uninitialized state

Fixes: 153823196
Test: atest SystemUITests
Change-Id: Iecff489c351a77d2a8a9821d331c48b52d842af3
parent 175d91f6
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -121,14 +121,14 @@ constructor(
    }

    override fun onInterceptTouchEvent(event: MotionEvent): Boolean {
        return maybeStartExpansion(event)
        return canHandleMotionEvent() && startExpansion(event)
    }

    private fun maybeStartExpansion(event: MotionEvent): Boolean {
        if (!wakeUpCoordinator.canShowPulsingHuns || qsExpanded ||
                bouncerShowing) {
            return false
    private fun canHandleMotionEvent(): Boolean {
        return wakeUpCoordinator.canShowPulsingHuns && !qsExpanded && !bouncerShowing
    }

    private fun startExpansion(event: MotionEvent): Boolean {
        if (velocityTracker == null) {
            velocityTracker = VelocityTracker.obtain()
        }
@@ -177,8 +177,12 @@ constructor(
    }

    override fun onTouchEvent(event: MotionEvent): Boolean {
        if (!isExpanding) {
            return maybeStartExpansion(event)
        if (!canHandleMotionEvent()) {
            return false
        }

        if (!isExpanding || event.actionMasked == MotionEvent.ACTION_DOWN) {
            return startExpansion(event)
        }
        velocityTracker!!.addMovement(event)
        val y = event.y