diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java | 17 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java | 2 |
2 files changed, 18 insertions, 1 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 fc6e74e2dd01..87fcd795b438 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -165,6 +165,8 @@ public class PhoneStatusBar extends BaseStatusBar { int mIconHPadding = -1; Display mDisplay; Point mCurrentDisplaySize = new Point(); + private float mHeadsUpVerticalOffset; + private int[] mPilePosition = new int[2]; StatusBarWindowView mStatusBarWindow; PhoneStatusBarView mStatusBarView; @@ -839,7 +841,7 @@ public class PhoneStatusBar extends BaseStatusBar { private void addHeadsUpView() { WindowManager.LayoutParams lp = new WindowManager.LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, - WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL, // below the status bar! + WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL, // above the status bar! WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL @@ -2365,6 +2367,8 @@ public class PhoneStatusBar extends BaseStatusBar { if (ENABLE_HEADS_UP && mHeadsUpNotificationView != null) { mHeadsUpNotificationView.setMargin(mNotificationPanelMarginPx); + mPile.getLocationOnScreen(mPilePosition); + mHeadsUpVerticalOffset = mPilePosition[1] - mNaturalBarHeight; } updateCarrierLabelVisibility(false); @@ -2554,6 +2558,17 @@ public class PhoneStatusBar extends BaseStatusBar { mHeadsUpNotificationView.setVisibility(vis ? View.VISIBLE : View.GONE); } + public void animateHeadsUp(boolean animateInto, float frac) { + if (!ENABLE_HEADS_UP || mHeadsUpNotificationView == null) return; + frac = frac / 0.4f; + frac = frac < 1.0f ? frac : 1.0f; + float alpha = 1.0f - frac; + float offset = mHeadsUpVerticalOffset * frac; + offset = animateInto ? offset : 0f; + mHeadsUpNotificationView.setAlpha(alpha); + mHeadsUpNotificationView.setY(offset); + } + public void onHeadsUpDismissed() { if (mInterruptingNotificationEntry == null) return; 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 247d8aa183e8..1554e2cf0204 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -236,6 +236,8 @@ public class PhoneStatusBarView extends PanelBar { panel.setAlpha(alpha); } + mBar.animateHeadsUp(mNotificationPanel == panel, mPanelExpandedFractionSum); + mBar.updateCarrierLabelVisibility(false); } } |