diff options
| author | 2020-05-20 15:55:48 -0400 | |
|---|---|---|
| committer | 2020-05-20 15:55:48 -0400 | |
| commit | 366cad1a3b4382c03134fa52b82c98311f088891 (patch) | |
| tree | 58aec75690ceca1a686ab0ae042cfb085fad3090 | |
| parent | 175d91f6eedb15103a1a7976c8ba5e49175cfb3f (diff) | |
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
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt b/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt index 88f148b00cdc..6d2cc6b08bc4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt @@ -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 |