diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index 138989c04f0ee..d36fae199072f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -34,6 +34,9 @@ import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; import static com.android.systemui.statusbar.StatusBarState.SHADE; import static com.android.systemui.statusbar.StatusBarState.SHADE_LOCKED; import static com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.ROWS_ALL; +import static com.android.systemui.statusbar.phone.PanelBar.STATE_CLOSED; +import static com.android.systemui.statusbar.phone.PanelBar.STATE_OPEN; +import static com.android.systemui.statusbar.phone.PanelBar.STATE_OPENING; import static java.lang.Float.isNaN; @@ -79,6 +82,7 @@ import android.view.ViewPropertyAnimator; import android.view.ViewStub; import android.view.ViewTreeObserver; import android.view.WindowInsets; +import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.FrameLayout; @@ -4624,9 +4628,21 @@ public class NotificationPanelViewController extends PanelViewController { } private final PanelBar.PanelStateChangeListener mPanelStateChangeListener = - state -> { - mAmbientState.setIsShadeOpening(state == PanelBar.STATE_OPENING); - updateQSExpansionEnabledAmbient(); + new PanelBar.PanelStateChangeListener() { + + @PanelBar.PanelState + private int mCurrentState = STATE_CLOSED; + + @Override + public void onStateChanged(@PanelBar.PanelState int state) { + mAmbientState.setIsShadeOpening(state == STATE_OPENING); + updateQSExpansionEnabledAmbient(); + + if (state == STATE_OPEN && mCurrentState != state) { + mView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); + } + mCurrentState = state; + } }; public PanelBar.PanelStateChangeListener getPanelStateChangeListener() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java index 4b9d5ec140561..430edfdd9d19d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -54,7 +54,7 @@ public abstract class PanelBar extends FrameLayout { public static final int STATE_OPENING = 1; public static final int STATE_OPEN = 2; - PanelViewController mPanel; + private PanelViewController mPanel; @Nullable private PanelStateChangeListener mPanelStateChangeListener; private int mState = STATE_CLOSED; private boolean mTracking; @@ -178,7 +178,6 @@ public abstract class PanelBar extends FrameLayout { } if (fullyOpened && !mTracking) { go(STATE_OPEN); - onPanelFullyOpened(); } else if (fullyClosed && !mTracking && mState != STATE_CLOSED) { go(STATE_CLOSED); onPanelCollapsed(); @@ -219,10 +218,6 @@ public abstract class PanelBar extends FrameLayout { if (DEBUG) LOG("onPanelCollapsed"); } - public void onPanelFullyOpened() { - if (DEBUG) LOG("onPanelFullyOpened"); - } - public void onTrackingStarted() { mTracking = true; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java index 9ab6cdd3053bc..815f6fe850225 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -56,7 +56,6 @@ public class PhoneStatusBarView extends PanelBar { StatusBar mBar; - boolean mIsFullyOpenedPanel = false; private ScrimController mScrimController; private float mMinFraction; private Runnable mHideExpandedRunnable = new Runnable() { @@ -216,22 +215,12 @@ public class PhoneStatusBarView extends PanelBar { super.onPanelCollapsed(); // Close the status bar in the next frame so we can show the end of the animation. post(mHideExpandedRunnable); - mIsFullyOpenedPanel = false; } public void removePendingHideExpandedRunnables() { removeCallbacks(mHideExpandedRunnable); } - @Override - public void onPanelFullyOpened() { - super.onPanelFullyOpened(); - if (!mIsFullyOpenedPanel) { - mPanel.getView().sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); - } - mIsFullyOpenedPanel = true; - } - @Override public boolean onTouchEvent(MotionEvent event) { boolean barConsumedEvent = mBar.interceptTouchEvent(event);