summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dave Mankoff <mankoff@google.com> 2020-05-20 15:55:48 -0400
committer Dave Mankoff <mankoff@google.com> 2020-05-20 15:55:48 -0400
commit366cad1a3b4382c03134fa52b82c98311f088891 (patch)
tree58aec75690ceca1a686ab0ae042cfb085fad3090
parent175d91f6eedb15103a1a7976c8ba5e49175cfb3f (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.kt20
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