diff options
author | Selim Cinek <cinek@google.com> | 2015-06-17 18:23:06 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-17 18:23:08 +0000 |
commit | 6857ffc940bc204269de4ae2a1937794f254286a (patch) | |
tree | 0047da84f398f8b27760de1b2a01ec3ed536b566 | |
parent | f5820276635a2d3d2e3c694eddba7e6a02093a20 (diff) | |
parent | 3d395c69fa67732ceb2c045d03ea81efa3710afa (diff) | |
download | frameworks_base-6857ffc940bc204269de4ae2a1937794f254286a.zip frameworks_base-6857ffc940bc204269de4ae2a1937794f254286a.tar.gz frameworks_base-6857ffc940bc204269de4ae2a1937794f254286a.tar.bz2 |
Merge "Fixed a jump with the panel scrim" into mnc-dev
4 files changed, 28 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java index f57575d..10c35af 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java @@ -110,6 +110,8 @@ public class HeadsUpTouchHelper implements Gefingerpoken { mInitialTouchX = x; mInitialTouchY = y; int expandedHeight = mPickedChild.getActualHeight(); + mPanel.setPanelScrimMinFraction((float) expandedHeight + / mPanel.getMaxPanelHeight()); mPanel.startExpandMotion(x, y, true /* startTracking */, expandedHeight + mNotificationsTopPadding); mHeadsUpManager.unpinAll(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 5ac436a..495f0fd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -1767,6 +1767,7 @@ public class NotificationPanelView extends PanelView implements mIsExpansionFromHeadsUp = false; mNotificationStackScroller.setTrackingHeadsUp(false); mExpandingFromHeadsUp = false; + setPanelScrimMinFraction(0.0f); } private void setListening(boolean listening) { @@ -2317,7 +2318,7 @@ public class NotificationPanelView extends PanelView implements } x = Math.min(rightMost, Math.max(leftMost, x)); setVerticalPanelTranslation(x - - (mNotificationStackScroller.getLeft() + mNotificationStackScroller.getWidth()/2)); + (mNotificationStackScroller.getLeft() + mNotificationStackScroller.getWidth() / 2)); } private void resetVerticalPanelPosition() { @@ -2334,4 +2335,8 @@ public class NotificationPanelView extends PanelView implements mNotificationStackScroller.setStackHeight(stackHeight); updateKeyguardBottomAreaAlpha(); } + + public void setPanelScrimMinFraction(float minFraction) { + mBar.panelScrimMinFractionChanged(minFraction); + } } 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 552a0b2..cf553ec 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java @@ -25,7 +25,7 @@ import android.widget.FrameLayout; import java.util.ArrayList; -public class PanelBar extends FrameLayout { +public abstract class PanelBar extends FrameLayout { public static final boolean DEBUG = false; public static final String TAG = PanelBar.class.getSimpleName(); public static final void LOG(String fmt, Object... args) { @@ -156,6 +156,8 @@ public class PanelBar extends FrameLayout { } } + public abstract void panelScrimMinFractionChanged(float minFraction); + /** * @param panel the panel which changed its expansion state * @param frac the fraction from the expansion in [0, 1] 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 b7e675d..dfd280a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java @@ -40,6 +40,8 @@ public class PhoneStatusBarView extends PanelBar { PanelView mNotificationPanel; private final PhoneStatusBarTransitions mBarTransitions; private ScrimController mScrimController; + private float mMinFraction; + private float mPanelFraction; public PhoneStatusBarView(Context context, AttributeSet attrs) { super(context, attrs); @@ -180,8 +182,22 @@ public class PhoneStatusBarView extends PanelBar { } @Override + public void panelScrimMinFractionChanged(float minFraction) { + if (mMinFraction != minFraction) { + mMinFraction = minFraction; + updateScrimFraction(); + } + } + + @Override public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) { super.panelExpansionChanged(panel, frac, expanded); - mScrimController.setPanelExpansion(frac); + mPanelFraction = frac; + updateScrimFraction(); + } + + private void updateScrimFraction() { + float scrimFraction = Math.max(mPanelFraction - mMinFraction / (1.0f - mMinFraction), 0); + mScrimController.setPanelExpansion(scrimFraction); } } |