Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +1 −1 Original line number Diff line number Diff line Loading @@ -1043,7 +1043,7 @@ public class NotificationPanelView extends PanelView implements if (mNotificationStackScroller.getNotGoneChildCount() > 0) { return mNotificationStackScroller.getPeekHeight(); } else { return mQsMinExpansionHeight; return mQsMinExpansionHeight * HEADER_RUBBERBAND_FACTOR; } } } packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +8 −2 Original line number Diff line number Diff line Loading @@ -145,7 +145,13 @@ public class PanelBar extends FrameLayout { } } public void panelExpansionChanged(PanelView panel, float frac) { /** * @param panel the panel which changed its expansion state * @param frac the fraction from the expansion in [0, 1] * @param expanded whether the panel is currently expanded; this is independent from the * fraction as the panel also might be expanded if the fraction is 0 */ public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) { boolean fullyClosed = true; PanelView fullyOpenedPanel = null; if (DEBUG) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName()); Loading @@ -154,7 +160,7 @@ public class PanelBar extends FrameLayout { boolean visible = pv.getExpandedHeight() > 0; pv.setVisibility(visible ? View.VISIBLE : View.GONE); // adjust any other panels that may be partially visible if (pv.getExpandedHeight() > 0f) { if (expanded) { if (mState == STATE_CLOSED) { go(STATE_OPENING); onPanelPeeked(); Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +135 −34 Original line number Diff line number Diff line Loading @@ -82,9 +82,22 @@ public abstract class PanelView extends FrameLayout { private float mInitialTouchX; private Interpolator mLinearOutSlowInInterpolator; private Interpolator mFastOutSlowInInterpolator; private Interpolator mBounceInterpolator; protected KeyguardBottomAreaView mKeyguardBottomArea; private boolean mPeekPending; private boolean mCollapseAfterPeek; private boolean mExpanding; private boolean mGestureWaitForTouchSlop; private Runnable mPeekRunnable = new Runnable() { @Override public void run() { mPeekPending = false; runPeekAnimation(); } }; protected void onExpandingFinished() { mBar.onExpandingFinished(); } Loading @@ -92,23 +105,70 @@ public abstract class PanelView extends FrameLayout { protected void onExpandingStarted() { } private void notifyExpandingStarted() { if (!mExpanding) { mExpanding = true; onExpandingStarted(); } } private void notifyExpandingFinished() { if (mExpanding) { mExpanding = false; onExpandingFinished(); } } private void schedulePeek() { mPeekPending = true; long timeout = ViewConfiguration.getTapTimeout(); postOnAnimationDelayed(mPeekRunnable, timeout); notifyBarPanelExpansionChanged(); } private void runPeekAnimation() { mPeekHeight = getPeekHeight(); if (DEBUG) logf("peek to height=%.1f", mPeekHeight); if (mHeightAnimator != null) { return; } mPeekAnimator = ObjectAnimator.ofFloat(this, "expandedHeight", mPeekHeight) mPeekAnimator = ObjectAnimator.ofFloat(this, "expandedHeight", mPeekHeight) .setDuration(250); mPeekAnimator.setInterpolator(mLinearOutSlowInInterpolator); mPeekAnimator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; @Override public void onAnimationCancel(Animator animation) { mCancelled = true; } @Override public void onAnimationEnd(Animator animation) { mPeekAnimator = null; if (mCollapseAfterPeek && !mCancelled) { postOnAnimation(new Runnable() { @Override public void run() { collapse(); } }); } mCollapseAfterPeek = false; } }); notifyExpandingStarted(); mPeekAnimator.start(); mJustPeeked = true; } public PanelView(Context context, AttributeSet attrs) { super(context, attrs); mFlingAnimationUtils = new FlingAnimationUtils(context, 0.6f); mLinearOutSlowInInterpolator = mFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(context, android.R.interpolator.fast_out_slow_in); mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(context, android.R.interpolator.linear_out_slow_in); mBounceInterpolator = new BounceInterpolator(); } Loading Loading @@ -153,7 +213,10 @@ public abstract class PanelView extends FrameLayout { final float y = event.getY(pointerIndex); final float x = event.getX(pointerIndex); boolean waitForTouchSlop = hasConflictingGestures(); if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { mGestureWaitForTouchSlop = mExpandedHeight == 0f; } boolean waitForTouchSlop = hasConflictingGestures() || mGestureWaitForTouchSlop; switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: Loading @@ -166,16 +229,18 @@ public abstract class PanelView extends FrameLayout { initVelocityTracker(); } trackMovement(event); if (!waitForTouchSlop || (mHeightAnimator != null && !mHintAnimationRunning)) { if (!waitForTouchSlop || (mHeightAnimator != null && !mHintAnimationRunning) || mPeekPending || mPeekAnimator != null) { if (mHeightAnimator != null) { mHeightAnimator.cancel(); // end any outstanding animations } mTouchSlopExceeded = (mHeightAnimator != null && !mHintAnimationRunning); cancelPeek(); mTouchSlopExceeded = (mHeightAnimator != null && !mHintAnimationRunning) || mPeekPending || mPeekAnimator != null; onTrackingStarted(); } if (mExpandedHeight == 0) { mJustPeeked = true; runPeekAnimation(); schedulePeek(); } break; Loading Loading @@ -203,26 +268,29 @@ public abstract class PanelView extends FrameLayout { || mInitialOffsetOnTouch == 0f)) { mTouchSlopExceeded = true; if (waitForTouchSlop && !mTracking) { if (!mJustPeeked) { mInitialOffsetOnTouch = mExpandedHeight; mInitialTouchX = x; mInitialTouchY = y; h = 0; } if (mHeightAnimator != null) { mHeightAnimator.cancel(); // end any outstanding animations } removeCallbacks(mPeekRunnable); mPeekPending = false; onTrackingStarted(); h = 0; } } final float newHeight = h + mInitialOffsetOnTouch; if (newHeight > mPeekHeight) { if (mPeekAnimator != null && mPeekAnimator.isStarted()) { if (mPeekAnimator != null) { mPeekAnimator.cancel(); } mJustPeeked = false; } if (!mJustPeeked && (!waitForTouchSlop || mTracking)) { setExpandedHeightInternal(newHeight); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); } trackMovement(event); Loading Loading @@ -267,8 +335,9 @@ public abstract class PanelView extends FrameLayout { protected void onTrackingStarted() { mTracking = true; mCollapseAfterPeek = false; mBar.onTrackingStarted(PanelView.this); onExpandingStarted(); notifyExpandingStarted(); } @Override Loading Loading @@ -296,8 +365,12 @@ public abstract class PanelView extends FrameLayout { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: if (mHeightAnimator != null && !mHintAnimationRunning) { if (mHeightAnimator != null && !mHintAnimationRunning || mPeekPending || mPeekAnimator != null) { if (mHeightAnimator != null) { mHeightAnimator.cancel(); // end any outstanding animations } cancelPeek(); mTouchSlopExceeded = true; return true; } Loading Loading @@ -386,8 +459,7 @@ public abstract class PanelView extends FrameLayout { cancelPeek(); float target = expand ? getMaxPanelHeight() : 0.0f; if (target == mExpandedHeight || getOverExpansionAmount() > 0f && expand) { onExpandingFinished(); mBar.panelExpansionChanged(this, mExpandedFraction); notifyExpandingFinished(); return; } mOverExpandedBeforeFling = getOverExpansionAmount() > 0f; Loading @@ -404,10 +476,19 @@ public abstract class PanelView extends FrameLayout { } } animator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; @Override public void onAnimationCancel(Animator animation) { mCancelled = true; } @Override public void onAnimationEnd(Animator animation) { mHeightAnimator = null; onExpandingFinished(); if (!mCancelled) { notifyExpandingFinished(); } } }); mHeightAnimator = animator; Loading Loading @@ -439,7 +520,7 @@ public abstract class PanelView extends FrameLayout { // If the user isn't actively poking us, let's rubberband to the content if (!mTracking && mHeightAnimator == null && mExpandedHeight > 0 && mExpandedHeight != mMaxPanelHeight && mMaxPanelHeight > 0) { && mMaxPanelHeight > 0 && mPeekAnimator == null) { mExpandedHeight = mMaxPanelHeight; } } Loading @@ -448,7 +529,6 @@ public abstract class PanelView extends FrameLayout { public void setExpandedHeight(float height) { if (DEBUG) logf("setExpandedHeight(%.1f)", height); setExpandedHeightInternal(height + getOverExpansionPixels()); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); } @Override Loading @@ -464,7 +544,8 @@ public abstract class PanelView extends FrameLayout { // If the user isn't actively poking us, let's update the height if (!mTracking && mHeightAnimator == null && mExpandedHeight > 0 && currentMaxPanelHeight != mExpandedHeight) { && mExpandedHeight > 0 && currentMaxPanelHeight != mExpandedHeight && !mPeekPending && mPeekAnimator == null) { setExpandedHeight(currentMaxPanelHeight); } } Loading @@ -488,6 +569,7 @@ public abstract class PanelView extends FrameLayout { mExpandedFraction = Math.min(1f, fhWithoutOverExpansion == 0 ? 0 : mExpandedHeight / fhWithoutOverExpansion); notifyBarPanelExpansionChanged(); } protected abstract void setOverExpansion(float overExpansion, boolean isPixels); Loading Loading @@ -544,12 +626,21 @@ public abstract class PanelView extends FrameLayout { public void collapse() { // TODO: abort animation or ongoing touch if (DEBUG) logf("collapse: " + this); if (!isFullyCollapsed()) { if (mPeekPending || mPeekAnimator != null) { mCollapseAfterPeek = true; if (mPeekPending) { // We know that the whole gesture is just a peek triggered by a simple click, so // better start it now. removeCallbacks(mPeekRunnable); mPeekRunnable.run(); } } else if (!isFullyCollapsed()) { if (mHeightAnimator != null) { mHeightAnimator.cancel(); } mClosing = true; onExpandingStarted(); notifyExpandingStarted(); fling(0, false /* expand */); } } Loading @@ -558,7 +649,7 @@ public abstract class PanelView extends FrameLayout { if (DEBUG) logf("expand: " + this); if (isFullyCollapsed()) { mBar.startOpeningPanel(this); onExpandingStarted(); notifyExpandingStarted(); fling(0, true /* expand */); } else if (DEBUG) { if (DEBUG) logf("skipping expansion: is expanded"); Loading @@ -566,9 +657,15 @@ public abstract class PanelView extends FrameLayout { } public void cancelPeek() { if (mPeekAnimator != null && mPeekAnimator.isStarted()) { if (mPeekAnimator != null) { mPeekAnimator.cancel(); } removeCallbacks(mPeekRunnable); mPeekPending = false; // When peeking, we already tell mBar that we expanded ourselves. Make sure that we also // notify mBar that we might have closed ourselves. notifyBarPanelExpansionChanged(); } public void instantExpand() { Loading @@ -576,7 +673,7 @@ public abstract class PanelView extends FrameLayout { abortAnimations(); if (mTracking) { onTrackingStopped(true /* expands */); // The panel is expanded after this call. onExpandingFinished(); notifyExpandingFinished(); } setVisibility(VISIBLE); Loading Loading @@ -614,11 +711,11 @@ public abstract class PanelView extends FrameLayout { return; } cancelPeek(); onExpandingStarted(); notifyExpandingStarted(); startUnlockHintAnimationPhase1(new Runnable() { @Override public void run() { onExpandingFinished(); notifyExpandingFinished(); mStatusBar.onHintFinished(); mHintAnimationRunning = false; } Loading @@ -634,7 +731,7 @@ public abstract class PanelView extends FrameLayout { float target = Math.max(0, getMaxPanelHeight() - mHintDistance); ValueAnimator animator = createHeightAnimator(target); animator.setDuration(250); animator.setInterpolator(mLinearOutSlowInInterpolator); animator.setInterpolator(mFastOutSlowInInterpolator); animator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; Loading @@ -659,7 +756,7 @@ public abstract class PanelView extends FrameLayout { mKeyguardBottomArea.getIndicationView().animate() .y(mOriginalIndicationY - mHintDistance) .setDuration(250) .setInterpolator(mLinearOutSlowInInterpolator) .setInterpolator(mFastOutSlowInInterpolator) .withEndAction(new Runnable() { @Override public void run() { Loading Loading @@ -697,12 +794,16 @@ public abstract class PanelView extends FrameLayout { @Override public void onAnimationUpdate(ValueAnimator animation) { setExpandedHeightInternal((Float) animation.getAnimatedValue()); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); } }); return animator; } private void notifyBarPanelExpansionChanged() { mBar.panelExpansionChanged(this, mExpandedFraction, mExpandedFraction > 0f || mPeekPending || mPeekAnimator != null); } /** * Gets called when the user performs a click anywhere in the empty area of the panel. * Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +2 −4 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.statusbar.phone; import android.app.ActivityManager; import android.content.Context; import android.content.res.Resources; import android.util.AttributeSet; Loading @@ -28,7 +27,6 @@ import android.view.accessibility.AccessibilityEvent; import com.android.systemui.EventLogTags; import com.android.systemui.R; import com.android.systemui.statusbar.StatusBarState; public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; Loading Loading @@ -171,8 +169,8 @@ public class PhoneStatusBarView extends PanelBar { } @Override public void panelExpansionChanged(PanelView panel, float frac) { super.panelExpansionChanged(panel, frac); public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) { super.panelExpansionChanged(panel, frac, expanded); mScrimController.setPanelExpansion(frac); mBar.updateCarrierLabelVisibility(false); mBar.userActivity(); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +1 −1 Original line number Diff line number Diff line Loading @@ -1043,7 +1043,7 @@ public class NotificationPanelView extends PanelView implements if (mNotificationStackScroller.getNotGoneChildCount() > 0) { return mNotificationStackScroller.getPeekHeight(); } else { return mQsMinExpansionHeight; return mQsMinExpansionHeight * HEADER_RUBBERBAND_FACTOR; } } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java +8 −2 Original line number Diff line number Diff line Loading @@ -145,7 +145,13 @@ public class PanelBar extends FrameLayout { } } public void panelExpansionChanged(PanelView panel, float frac) { /** * @param panel the panel which changed its expansion state * @param frac the fraction from the expansion in [0, 1] * @param expanded whether the panel is currently expanded; this is independent from the * fraction as the panel also might be expanded if the fraction is 0 */ public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) { boolean fullyClosed = true; PanelView fullyOpenedPanel = null; if (DEBUG) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName()); Loading @@ -154,7 +160,7 @@ public class PanelBar extends FrameLayout { boolean visible = pv.getExpandedHeight() > 0; pv.setVisibility(visible ? View.VISIBLE : View.GONE); // adjust any other panels that may be partially visible if (pv.getExpandedHeight() > 0f) { if (expanded) { if (mState == STATE_CLOSED) { go(STATE_OPENING); onPanelPeeked(); Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java +135 −34 Original line number Diff line number Diff line Loading @@ -82,9 +82,22 @@ public abstract class PanelView extends FrameLayout { private float mInitialTouchX; private Interpolator mLinearOutSlowInInterpolator; private Interpolator mFastOutSlowInInterpolator; private Interpolator mBounceInterpolator; protected KeyguardBottomAreaView mKeyguardBottomArea; private boolean mPeekPending; private boolean mCollapseAfterPeek; private boolean mExpanding; private boolean mGestureWaitForTouchSlop; private Runnable mPeekRunnable = new Runnable() { @Override public void run() { mPeekPending = false; runPeekAnimation(); } }; protected void onExpandingFinished() { mBar.onExpandingFinished(); } Loading @@ -92,23 +105,70 @@ public abstract class PanelView extends FrameLayout { protected void onExpandingStarted() { } private void notifyExpandingStarted() { if (!mExpanding) { mExpanding = true; onExpandingStarted(); } } private void notifyExpandingFinished() { if (mExpanding) { mExpanding = false; onExpandingFinished(); } } private void schedulePeek() { mPeekPending = true; long timeout = ViewConfiguration.getTapTimeout(); postOnAnimationDelayed(mPeekRunnable, timeout); notifyBarPanelExpansionChanged(); } private void runPeekAnimation() { mPeekHeight = getPeekHeight(); if (DEBUG) logf("peek to height=%.1f", mPeekHeight); if (mHeightAnimator != null) { return; } mPeekAnimator = ObjectAnimator.ofFloat(this, "expandedHeight", mPeekHeight) mPeekAnimator = ObjectAnimator.ofFloat(this, "expandedHeight", mPeekHeight) .setDuration(250); mPeekAnimator.setInterpolator(mLinearOutSlowInInterpolator); mPeekAnimator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; @Override public void onAnimationCancel(Animator animation) { mCancelled = true; } @Override public void onAnimationEnd(Animator animation) { mPeekAnimator = null; if (mCollapseAfterPeek && !mCancelled) { postOnAnimation(new Runnable() { @Override public void run() { collapse(); } }); } mCollapseAfterPeek = false; } }); notifyExpandingStarted(); mPeekAnimator.start(); mJustPeeked = true; } public PanelView(Context context, AttributeSet attrs) { super(context, attrs); mFlingAnimationUtils = new FlingAnimationUtils(context, 0.6f); mLinearOutSlowInInterpolator = mFastOutSlowInInterpolator = AnimationUtils.loadInterpolator(context, android.R.interpolator.fast_out_slow_in); mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(context, android.R.interpolator.linear_out_slow_in); mBounceInterpolator = new BounceInterpolator(); } Loading Loading @@ -153,7 +213,10 @@ public abstract class PanelView extends FrameLayout { final float y = event.getY(pointerIndex); final float x = event.getX(pointerIndex); boolean waitForTouchSlop = hasConflictingGestures(); if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { mGestureWaitForTouchSlop = mExpandedHeight == 0f; } boolean waitForTouchSlop = hasConflictingGestures() || mGestureWaitForTouchSlop; switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: Loading @@ -166,16 +229,18 @@ public abstract class PanelView extends FrameLayout { initVelocityTracker(); } trackMovement(event); if (!waitForTouchSlop || (mHeightAnimator != null && !mHintAnimationRunning)) { if (!waitForTouchSlop || (mHeightAnimator != null && !mHintAnimationRunning) || mPeekPending || mPeekAnimator != null) { if (mHeightAnimator != null) { mHeightAnimator.cancel(); // end any outstanding animations } mTouchSlopExceeded = (mHeightAnimator != null && !mHintAnimationRunning); cancelPeek(); mTouchSlopExceeded = (mHeightAnimator != null && !mHintAnimationRunning) || mPeekPending || mPeekAnimator != null; onTrackingStarted(); } if (mExpandedHeight == 0) { mJustPeeked = true; runPeekAnimation(); schedulePeek(); } break; Loading Loading @@ -203,26 +268,29 @@ public abstract class PanelView extends FrameLayout { || mInitialOffsetOnTouch == 0f)) { mTouchSlopExceeded = true; if (waitForTouchSlop && !mTracking) { if (!mJustPeeked) { mInitialOffsetOnTouch = mExpandedHeight; mInitialTouchX = x; mInitialTouchY = y; h = 0; } if (mHeightAnimator != null) { mHeightAnimator.cancel(); // end any outstanding animations } removeCallbacks(mPeekRunnable); mPeekPending = false; onTrackingStarted(); h = 0; } } final float newHeight = h + mInitialOffsetOnTouch; if (newHeight > mPeekHeight) { if (mPeekAnimator != null && mPeekAnimator.isStarted()) { if (mPeekAnimator != null) { mPeekAnimator.cancel(); } mJustPeeked = false; } if (!mJustPeeked && (!waitForTouchSlop || mTracking)) { setExpandedHeightInternal(newHeight); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); } trackMovement(event); Loading Loading @@ -267,8 +335,9 @@ public abstract class PanelView extends FrameLayout { protected void onTrackingStarted() { mTracking = true; mCollapseAfterPeek = false; mBar.onTrackingStarted(PanelView.this); onExpandingStarted(); notifyExpandingStarted(); } @Override Loading Loading @@ -296,8 +365,12 @@ public abstract class PanelView extends FrameLayout { switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: if (mHeightAnimator != null && !mHintAnimationRunning) { if (mHeightAnimator != null && !mHintAnimationRunning || mPeekPending || mPeekAnimator != null) { if (mHeightAnimator != null) { mHeightAnimator.cancel(); // end any outstanding animations } cancelPeek(); mTouchSlopExceeded = true; return true; } Loading Loading @@ -386,8 +459,7 @@ public abstract class PanelView extends FrameLayout { cancelPeek(); float target = expand ? getMaxPanelHeight() : 0.0f; if (target == mExpandedHeight || getOverExpansionAmount() > 0f && expand) { onExpandingFinished(); mBar.panelExpansionChanged(this, mExpandedFraction); notifyExpandingFinished(); return; } mOverExpandedBeforeFling = getOverExpansionAmount() > 0f; Loading @@ -404,10 +476,19 @@ public abstract class PanelView extends FrameLayout { } } animator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; @Override public void onAnimationCancel(Animator animation) { mCancelled = true; } @Override public void onAnimationEnd(Animator animation) { mHeightAnimator = null; onExpandingFinished(); if (!mCancelled) { notifyExpandingFinished(); } } }); mHeightAnimator = animator; Loading Loading @@ -439,7 +520,7 @@ public abstract class PanelView extends FrameLayout { // If the user isn't actively poking us, let's rubberband to the content if (!mTracking && mHeightAnimator == null && mExpandedHeight > 0 && mExpandedHeight != mMaxPanelHeight && mMaxPanelHeight > 0) { && mMaxPanelHeight > 0 && mPeekAnimator == null) { mExpandedHeight = mMaxPanelHeight; } } Loading @@ -448,7 +529,6 @@ public abstract class PanelView extends FrameLayout { public void setExpandedHeight(float height) { if (DEBUG) logf("setExpandedHeight(%.1f)", height); setExpandedHeightInternal(height + getOverExpansionPixels()); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); } @Override Loading @@ -464,7 +544,8 @@ public abstract class PanelView extends FrameLayout { // If the user isn't actively poking us, let's update the height if (!mTracking && mHeightAnimator == null && mExpandedHeight > 0 && currentMaxPanelHeight != mExpandedHeight) { && mExpandedHeight > 0 && currentMaxPanelHeight != mExpandedHeight && !mPeekPending && mPeekAnimator == null) { setExpandedHeight(currentMaxPanelHeight); } } Loading @@ -488,6 +569,7 @@ public abstract class PanelView extends FrameLayout { mExpandedFraction = Math.min(1f, fhWithoutOverExpansion == 0 ? 0 : mExpandedHeight / fhWithoutOverExpansion); notifyBarPanelExpansionChanged(); } protected abstract void setOverExpansion(float overExpansion, boolean isPixels); Loading Loading @@ -544,12 +626,21 @@ public abstract class PanelView extends FrameLayout { public void collapse() { // TODO: abort animation or ongoing touch if (DEBUG) logf("collapse: " + this); if (!isFullyCollapsed()) { if (mPeekPending || mPeekAnimator != null) { mCollapseAfterPeek = true; if (mPeekPending) { // We know that the whole gesture is just a peek triggered by a simple click, so // better start it now. removeCallbacks(mPeekRunnable); mPeekRunnable.run(); } } else if (!isFullyCollapsed()) { if (mHeightAnimator != null) { mHeightAnimator.cancel(); } mClosing = true; onExpandingStarted(); notifyExpandingStarted(); fling(0, false /* expand */); } } Loading @@ -558,7 +649,7 @@ public abstract class PanelView extends FrameLayout { if (DEBUG) logf("expand: " + this); if (isFullyCollapsed()) { mBar.startOpeningPanel(this); onExpandingStarted(); notifyExpandingStarted(); fling(0, true /* expand */); } else if (DEBUG) { if (DEBUG) logf("skipping expansion: is expanded"); Loading @@ -566,9 +657,15 @@ public abstract class PanelView extends FrameLayout { } public void cancelPeek() { if (mPeekAnimator != null && mPeekAnimator.isStarted()) { if (mPeekAnimator != null) { mPeekAnimator.cancel(); } removeCallbacks(mPeekRunnable); mPeekPending = false; // When peeking, we already tell mBar that we expanded ourselves. Make sure that we also // notify mBar that we might have closed ourselves. notifyBarPanelExpansionChanged(); } public void instantExpand() { Loading @@ -576,7 +673,7 @@ public abstract class PanelView extends FrameLayout { abortAnimations(); if (mTracking) { onTrackingStopped(true /* expands */); // The panel is expanded after this call. onExpandingFinished(); notifyExpandingFinished(); } setVisibility(VISIBLE); Loading Loading @@ -614,11 +711,11 @@ public abstract class PanelView extends FrameLayout { return; } cancelPeek(); onExpandingStarted(); notifyExpandingStarted(); startUnlockHintAnimationPhase1(new Runnable() { @Override public void run() { onExpandingFinished(); notifyExpandingFinished(); mStatusBar.onHintFinished(); mHintAnimationRunning = false; } Loading @@ -634,7 +731,7 @@ public abstract class PanelView extends FrameLayout { float target = Math.max(0, getMaxPanelHeight() - mHintDistance); ValueAnimator animator = createHeightAnimator(target); animator.setDuration(250); animator.setInterpolator(mLinearOutSlowInInterpolator); animator.setInterpolator(mFastOutSlowInInterpolator); animator.addListener(new AnimatorListenerAdapter() { private boolean mCancelled; Loading @@ -659,7 +756,7 @@ public abstract class PanelView extends FrameLayout { mKeyguardBottomArea.getIndicationView().animate() .y(mOriginalIndicationY - mHintDistance) .setDuration(250) .setInterpolator(mLinearOutSlowInInterpolator) .setInterpolator(mFastOutSlowInInterpolator) .withEndAction(new Runnable() { @Override public void run() { Loading Loading @@ -697,12 +794,16 @@ public abstract class PanelView extends FrameLayout { @Override public void onAnimationUpdate(ValueAnimator animation) { setExpandedHeightInternal((Float) animation.getAnimatedValue()); mBar.panelExpansionChanged(PanelView.this, mExpandedFraction); } }); return animator; } private void notifyBarPanelExpansionChanged() { mBar.panelExpansionChanged(this, mExpandedFraction, mExpandedFraction > 0f || mPeekPending || mPeekAnimator != null); } /** * Gets called when the user performs a click anywhere in the empty area of the panel. * Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +2 −4 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package com.android.systemui.statusbar.phone; import android.app.ActivityManager; import android.content.Context; import android.content.res.Resources; import android.util.AttributeSet; Loading @@ -28,7 +27,6 @@ import android.view.accessibility.AccessibilityEvent; import com.android.systemui.EventLogTags; import com.android.systemui.R; import com.android.systemui.statusbar.StatusBarState; public class PhoneStatusBarView extends PanelBar { private static final String TAG = "PhoneStatusBarView"; Loading Loading @@ -171,8 +169,8 @@ public class PhoneStatusBarView extends PanelBar { } @Override public void panelExpansionChanged(PanelView panel, float frac) { super.panelExpansionChanged(panel, frac); public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) { super.panelExpansionChanged(panel, frac, expanded); mScrimController.setPanelExpansion(frac); mBar.updateCarrierLabelVisibility(false); mBar.userActivity(); Loading