Merge "Fix status bar flashing after orientation change" into gingerbread
This commit is contained in:
@@ -294,6 +294,7 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks
|
|||||||
mScrollView = (ScrollView)expanded.findViewById(R.id.scroll);
|
mScrollView = (ScrollView)expanded.findViewById(R.id.scroll);
|
||||||
mNotificationLinearLayout = expanded.findViewById(R.id.notificationLinearLayout);
|
mNotificationLinearLayout = expanded.findViewById(R.id.notificationLinearLayout);
|
||||||
|
|
||||||
|
mExpandedView.setVisibility(View.GONE);
|
||||||
mOngoingTitle.setVisibility(View.GONE);
|
mOngoingTitle.setVisibility(View.GONE);
|
||||||
mLatestTitle.setVisibility(View.GONE);
|
mLatestTitle.setVisibility(View.GONE);
|
||||||
|
|
||||||
@@ -691,6 +692,7 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks
|
|||||||
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
|
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
|
||||||
mExpandedView.requestFocus(View.FOCUS_FORWARD);
|
mExpandedView.requestFocus(View.FOCUS_FORWARD);
|
||||||
mTrackingView.setVisibility(View.VISIBLE);
|
mTrackingView.setVisibility(View.VISIBLE);
|
||||||
|
mExpandedView.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
if (!mTicking) {
|
if (!mTicking) {
|
||||||
setDateViewVisibility(true, com.android.internal.R.anim.fade_in);
|
setDateViewVisibility(true, com.android.internal.R.anim.fade_in);
|
||||||
@@ -767,6 +769,7 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks
|
|||||||
mExpandedParams.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
|
mExpandedParams.flags &= ~WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM;
|
||||||
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
|
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
|
||||||
mTrackingView.setVisibility(View.GONE);
|
mTrackingView.setVisibility(View.GONE);
|
||||||
|
mExpandedView.setVisibility(View.GONE);
|
||||||
|
|
||||||
if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) {
|
if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) {
|
||||||
setNotificationIconVisibility(true, com.android.internal.R.anim.fade_in);
|
setNotificationIconVisibility(true, com.android.internal.R.anim.fade_in);
|
||||||
@@ -1323,29 +1326,26 @@ public class StatusBarService extends Service implements CommandQueue.Callbacks
|
|||||||
mExpandedContents.getLocationInWindow(mPositionTmp);
|
mExpandedContents.getLocationInWindow(mPositionTmp);
|
||||||
final int contentsBottom = mPositionTmp[1] + mExpandedContents.getHeight();
|
final int contentsBottom = mPositionTmp[1] + mExpandedContents.getHeight();
|
||||||
|
|
||||||
mExpandedParams.y = pos + mTrackingView.getHeight()
|
|
||||||
- (mTrackingParams.height-closePos) - contentsBottom;
|
|
||||||
int max = h;
|
|
||||||
if (mExpandedParams.y > max) {
|
|
||||||
mExpandedParams.y = max;
|
|
||||||
}
|
|
||||||
int min = mTrackingPosition;
|
|
||||||
if (mExpandedParams.y < min) {
|
|
||||||
mExpandedParams.y = min;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean visible = (mTrackingPosition + mTrackingView.getHeight()) > h;
|
|
||||||
if (!visible) {
|
|
||||||
// if the contents aren't visible, move the expanded view way off screen
|
|
||||||
// because the window itself extends below the content view.
|
|
||||||
mExpandedParams.y = -disph;
|
|
||||||
}
|
|
||||||
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
|
|
||||||
|
|
||||||
// As long as this isn't just a repositioning that's not supposed to affect
|
|
||||||
// the user's perception of what's showing, call to say that the visibility
|
|
||||||
// has changed. (Otherwise, someone else will call to do that).
|
|
||||||
if (expandedPosition != EXPANDED_LEAVE_ALONE) {
|
if (expandedPosition != EXPANDED_LEAVE_ALONE) {
|
||||||
|
mExpandedParams.y = pos + mTrackingView.getHeight()
|
||||||
|
- (mTrackingParams.height-closePos) - contentsBottom;
|
||||||
|
int max = h;
|
||||||
|
if (mExpandedParams.y > max) {
|
||||||
|
mExpandedParams.y = max;
|
||||||
|
}
|
||||||
|
int min = mTrackingPosition;
|
||||||
|
if (mExpandedParams.y < min) {
|
||||||
|
mExpandedParams.y = min;
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean visible = (mTrackingPosition + mTrackingView.getHeight()) > h;
|
||||||
|
if (!visible) {
|
||||||
|
// if the contents aren't visible, move the expanded view way off screen
|
||||||
|
// because the window itself extends below the content view.
|
||||||
|
mExpandedParams.y = -disph;
|
||||||
|
}
|
||||||
|
mExpandedDialog.getWindow().setAttributes(mExpandedParams);
|
||||||
|
|
||||||
if (SPEW) Slog.d(TAG, "updateExpandedViewPos visibilityChanged(" + visible + ")");
|
if (SPEW) Slog.d(TAG, "updateExpandedViewPos visibilityChanged(" + visible + ")");
|
||||||
visibilityChanged(visible);
|
visibilityChanged(visible);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user