diff --git a/services/java/com/android/server/status/StatusBarService.java b/services/java/com/android/server/status/StatusBarService.java index 8dded1a8a6e84..bd7b471c9fe29 100644 --- a/services/java/com/android/server/status/StatusBarService.java +++ b/services/java/com/android/server/status/StatusBarService.java @@ -692,6 +692,7 @@ public class StatusBarService extends IStatusBar.Stub mTicker.addEntry(n, StatusBarIcon.getIcon(mContext, data), n.tickerText); } } + updateExpandedViewPos(EXPANDED_LEAVE_ALONE); } // icon @@ -1562,15 +1563,24 @@ public class StatusBarService extends IStatusBar.Stub + " mTrackingPosition=" + mTrackingPosition); } - // If the expanded view is not visible, there is no reason to do - // any work. - if (!mExpandedVisible) { - return; - } - - // tracking view... int h = mStatusBarView.getHeight(); int disph = mDisplay.getHeight(); + + // If the expanded view is not visible, make sure they're still off screen. + // Maybe the view was resized. + if (!mExpandedVisible) { + if (mTrackingView != null) { + mTrackingPosition = mTrackingParams.y = -disph; + WindowManagerImpl.getDefault().updateViewLayout(mTrackingView, mTrackingParams); + } + if (mExpandedParams != null) { + mExpandedParams.y = -disph; + mExpandedDialog.getWindow().setAttributes(mExpandedParams); + } + return; + } + + // tracking view... int pos; if (expandedPosition == EXPANDED_FULL_OPEN) { pos = h; @@ -1681,7 +1691,7 @@ public class StatusBarService extends IStatusBar.Stub private View.OnClickListener mClearButtonListener = new View.OnClickListener() { public void onClick(View v) { mNotificationCallbacks.onClearAll(); - performCollapse(); + addPendingOp(OP_EXPAND, null, false); } };