Merge changes Idcdd2978,Ied564b31,I6179126d into eclair

* changes:
  Fix 2233444 (No IME).
  Revert "Revert "Fix notification bar performance.""
  Revert "Revert "fix 2233092 - Notification shade gets stuck half-open""
This commit is contained in:
Android (Google) Code Review
2009-11-03 18:20:25 -05:00
2 changed files with 29 additions and 16 deletions

View File

@@ -692,6 +692,7 @@ public class StatusBarService extends IStatusBar.Stub
mTicker.addEntry(n, StatusBarIcon.getIcon(mContext, data), n.tickerText); mTicker.addEntry(n, StatusBarIcon.getIcon(mContext, data), n.tickerText);
} }
} }
updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
} }
// icon // icon
@@ -950,7 +951,9 @@ public class StatusBarService extends IStatusBar.Stub
panelSlightlyVisible(true); panelSlightlyVisible(true);
updateExpandedViewPos(EXPANDED_LEAVE_ALONE); updateExpandedViewPos(EXPANDED_LEAVE_ALONE);
mExpandedDialog.show(); mExpandedParams.flags &= ~WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
mExpandedParams.flags |= WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
mExpandedView.requestFocus(View.FOCUS_FORWARD); mExpandedView.requestFocus(View.FOCUS_FORWARD);
mTrackingView.setVisibility(View.VISIBLE); mTrackingView.setVisibility(View.VISIBLE);
@@ -1027,7 +1030,9 @@ public class StatusBarService extends IStatusBar.Stub
} }
mExpandedVisible = false; mExpandedVisible = false;
panelSlightlyVisible(false); panelSlightlyVisible(false);
mExpandedDialog.hide(); mExpandedParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
mExpandedParams.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
mTrackingView.setVisibility(View.GONE); mTrackingView.setVisibility(View.GONE);
if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) { if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) {
@@ -1056,6 +1061,7 @@ public class StatusBarService extends IStatusBar.Stub
else if (mAnimY < mStatusBarView.getHeight()) { else if (mAnimY < mStatusBarView.getHeight()) {
if (SPEW) Log.d(TAG, "Animation completed to collapsed state."); if (SPEW) Log.d(TAG, "Animation completed to collapsed state.");
mAnimating = false; mAnimating = false;
updateExpandedViewPos(0);
performCollapse(); performCollapse();
} }
else { else {
@@ -1508,17 +1514,18 @@ public class StatusBarService extends IStatusBar.Stub
} }
} }
final int disph = mDisplay.getHeight();
lp = mExpandedDialog.getWindow().getAttributes(); lp = mExpandedDialog.getWindow().getAttributes();
lp.width = ViewGroup.LayoutParams.FILL_PARENT; lp.width = ViewGroup.LayoutParams.FILL_PARENT;
lp.height = ViewGroup.LayoutParams.WRAP_CONTENT; lp.height = ViewGroup.LayoutParams.WRAP_CONTENT;
lp.x = 0; lp.x = 0;
lp.y = 0; mTrackingPosition = lp.y = -disph; // sufficiently large negative
lp.type = WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL; lp.type = WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL;
lp.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN lp.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
| WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM | WindowManager.LayoutParams.FLAG_DITHER
| WindowManager.LayoutParams.FLAG_DITHER; | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
lp.format = pixelFormat; lp.format = pixelFormat;
lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL; lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
lp.setTitle("StatusBarExpanded"); lp.setTitle("StatusBarExpanded");
@@ -1531,7 +1538,6 @@ public class StatusBarService extends IStatusBar.Stub
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT)); ViewGroup.LayoutParams.WRAP_CONTENT));
mExpandedDialog.show(); mExpandedDialog.show();
mExpandedDialog.hide();
FrameLayout hack = (FrameLayout)mExpandedView.getParent(); FrameLayout hack = (FrameLayout)mExpandedView.getParent();
hack.setForeground(null); hack.setForeground(null);
} }
@@ -1558,15 +1564,24 @@ public class StatusBarService extends IStatusBar.Stub
+ " mTrackingPosition=" + mTrackingPosition); + " 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 h = mStatusBarView.getHeight();
int disph = mDisplay.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; int pos;
if (expandedPosition == EXPANDED_FULL_OPEN) { if (expandedPosition == EXPANDED_FULL_OPEN) {
pos = h; pos = h;
@@ -1677,7 +1692,7 @@ public class StatusBarService extends IStatusBar.Stub
private View.OnClickListener mClearButtonListener = new View.OnClickListener() { private View.OnClickListener mClearButtonListener = new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
mNotificationCallbacks.onClearAll(); mNotificationCallbacks.onClearAll();
performCollapse(); addPendingOp(OP_EXPAND, null, false);
} }
}; };

View File

@@ -55,8 +55,6 @@ public class TrackingPatternView extends View {
final int textureWidth = mTextureWidth; final int textureWidth = mTextureWidth;
final int textureHeight = mTextureHeight; final int textureHeight = mTextureHeight;
Log.d("TrackingPatternView", "width=" + width + " textureWidth=" + textureWidth);
int x = 0; int x = 0;
int y; int y;