From 4e6b2d3e7d2c78c0575c14045469c36ab09a6a4e Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Thu, 25 Jun 2015 20:15:33 -0400 Subject: [PATCH] Fixed a crash where onTouch might have been called too early Bug: 21906153 Change-Id: I1fbc8b29f9cb0d7d71d6cb81e95a35da2fe9959e --- .../statusbar/phone/PhoneStatusBar.java | 2 +- .../statusbar/phone/StatusBarWindowView.java | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index cde743a98aba8..1ff93ed24ae5e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -614,7 +614,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mStatusBarWindow = (StatusBarWindowView) View.inflate(context, R.layout.super_status_bar, null); - mStatusBarWindow.mService = this; + mStatusBarWindow.setService(this); mStatusBarWindow.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java index 634270c126513..0e22aa825b35a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java @@ -53,7 +53,7 @@ public class StatusBarWindowView extends FrameLayout { private int mRightInset = 0; - PhoneStatusBar mService; + private PhoneStatusBar mService; private final Paint mTransparentSrcPaint = new Paint(); public StatusBarWindowView(Context context, AttributeSet attrs) { @@ -124,14 +124,22 @@ public class StatusBarWindowView extends FrameLayout { } @Override - protected void onAttachedToWindow () { - super.onAttachedToWindow(); - + protected void onFinishInflate() { + super.onFinishInflate(); mStackScrollLayout = (NotificationStackScrollLayout) findViewById( R.id.notification_stack_scroller); mNotificationPanel = (NotificationPanelView) findViewById(R.id.notification_panel); - mDragDownHelper = new DragDownHelper(getContext(), this, mStackScrollLayout, mService); mBrightnessMirror = findViewById(R.id.brightness_mirror); + } + + public void setService(PhoneStatusBar service) { + mService = service; + mDragDownHelper = new DragDownHelper(getContext(), this, mStackScrollLayout, mService); + } + + @Override + protected void onAttachedToWindow () { + super.onAttachedToWindow(); // We really need to be able to animate while window animations are going on // so that activities may be started asynchronously from panel animations