Loading packages/SystemUI/src/com/android/systemui/ExpandHelper.java +27 −12 Original line number Diff line number Diff line Loading @@ -326,7 +326,8 @@ public class ExpandHelper implements Gefingerpoken { case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: if (DEBUG) Log.d(TAG, "up/cancel"); finishExpanding(false, getCurrentVelocity()); finishExpanding(ev.getActionMasked() == MotionEvent.ACTION_CANCEL /* forceAbort */, getCurrentVelocity()); clearView(); break; } Loading Loading @@ -390,7 +391,8 @@ public class ExpandHelper implements Gefingerpoken { @Override public boolean onTouchEvent(MotionEvent ev) { if (!isEnabled()) { if (!isEnabled() && !mExpanding) { // In case we're expanding we still want to finish the current motion. return false; } trackVelocity(ev); Loading Loading @@ -485,7 +487,8 @@ public class ExpandHelper implements Gefingerpoken { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: if (DEBUG) Log.d(TAG, "up/cancel"); finishExpanding(false, getCurrentVelocity()); finishExpanding(!isEnabled() || ev.getActionMasked() == MotionEvent.ACTION_CANCEL, getCurrentVelocity()); clearView(); break; } Loading Loading @@ -526,28 +529,37 @@ public class ExpandHelper implements Gefingerpoken { return true; } private void finishExpanding(boolean force, float velocity) { /** * Finish the current expand motion * @param forceAbort whether the expansion should be forcefully aborted and returned to the old * state * @param velocity the velocity this was expanded/ collapsed with */ private void finishExpanding(boolean forceAbort, float velocity) { if (!mExpanding) return; if (DEBUG) Log.d(TAG, "scale in finishing on view: " + mResizedView); float currentHeight = mScaler.getHeight(); float h = mScaler.getHeight(); final boolean wasClosed = (mOldHeight == mSmallSize); boolean nowExpanded; int naturalHeight = mScaler.getNaturalHeight(); if (!forceAbort) { if (wasClosed) { nowExpanded = (force || currentHeight > mOldHeight && velocity >= 0); nowExpanded = currentHeight > mOldHeight && velocity >= 0; } else { nowExpanded = !force && (currentHeight >= mOldHeight || velocity > 0); nowExpanded = currentHeight >= mOldHeight || velocity > 0; } nowExpanded |= mNaturalHeight == mSmallSize; } else { nowExpanded = !wasClosed; } if (mScaleAnimation.isRunning()) { mScaleAnimation.cancel(); } mCallback.expansionStateChanged(false); int naturalHeight = mScaler.getNaturalHeight(); float targetHeight = nowExpanded ? naturalHeight : mSmallSize; if (targetHeight != currentHeight) { if (targetHeight != currentHeight && mEnabled) { mScaleAnimation.setFloatValues(targetHeight); mScaleAnimation.setupStartValues(); final View scaledView = mResizedView; Loading Loading @@ -575,6 +587,9 @@ public class ExpandHelper implements Gefingerpoken { mFlingAnimationUtils.apply(mScaleAnimation, currentHeight, targetHeight, velocity); mScaleAnimation.start(); } else { if (targetHeight != currentHeight) { mScaler.setHeight(targetHeight); } mCallback.setUserExpandedChild(mResizedView, nowExpanded); mCallback.setUserLockedChild(mResizedView, false); } Loading @@ -597,7 +612,7 @@ public class ExpandHelper implements Gefingerpoken { * Use this to abort any pending expansions in progress. */ public void cancel() { finishExpanding(true, 0f /* velocity */); finishExpanding(true /* forceAbort */, 0f /* velocity */); clearView(); // reset the gesture detector Loading packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +13 −0 Original line number Diff line number Diff line Loading @@ -1022,6 +1022,19 @@ public class NotificationStackScrollLayout extends ViewGroup public void setUserExpandedChild(View v, boolean userExpanded) { if (v instanceof ExpandableNotificationRow) { ExpandableNotificationRow row = (ExpandableNotificationRow) v; if (userExpanded && onKeyguard()) { // Due to a race when locking the screen while touching, a notification may be // expanded even after we went back to keyguard. An example of this happens if // you click in the empty space while expanding a group. // We also need to un-user lock it here, since otherwise the content height // calculated might be wrong. We also can't invert the two calls since // un-userlocking it will trigger a layout switch in the content view. row.setUserLocked(false); updateContentHeight(); notifyHeightChangeListener(row); return; } row.setUserExpanded(userExpanded, true /* allowChildrenExpansion */); row.onExpandedByGesture(userExpanded); } Loading Loading
packages/SystemUI/src/com/android/systemui/ExpandHelper.java +27 −12 Original line number Diff line number Diff line Loading @@ -326,7 +326,8 @@ public class ExpandHelper implements Gefingerpoken { case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: if (DEBUG) Log.d(TAG, "up/cancel"); finishExpanding(false, getCurrentVelocity()); finishExpanding(ev.getActionMasked() == MotionEvent.ACTION_CANCEL /* forceAbort */, getCurrentVelocity()); clearView(); break; } Loading Loading @@ -390,7 +391,8 @@ public class ExpandHelper implements Gefingerpoken { @Override public boolean onTouchEvent(MotionEvent ev) { if (!isEnabled()) { if (!isEnabled() && !mExpanding) { // In case we're expanding we still want to finish the current motion. return false; } trackVelocity(ev); Loading Loading @@ -485,7 +487,8 @@ public class ExpandHelper implements Gefingerpoken { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: if (DEBUG) Log.d(TAG, "up/cancel"); finishExpanding(false, getCurrentVelocity()); finishExpanding(!isEnabled() || ev.getActionMasked() == MotionEvent.ACTION_CANCEL, getCurrentVelocity()); clearView(); break; } Loading Loading @@ -526,28 +529,37 @@ public class ExpandHelper implements Gefingerpoken { return true; } private void finishExpanding(boolean force, float velocity) { /** * Finish the current expand motion * @param forceAbort whether the expansion should be forcefully aborted and returned to the old * state * @param velocity the velocity this was expanded/ collapsed with */ private void finishExpanding(boolean forceAbort, float velocity) { if (!mExpanding) return; if (DEBUG) Log.d(TAG, "scale in finishing on view: " + mResizedView); float currentHeight = mScaler.getHeight(); float h = mScaler.getHeight(); final boolean wasClosed = (mOldHeight == mSmallSize); boolean nowExpanded; int naturalHeight = mScaler.getNaturalHeight(); if (!forceAbort) { if (wasClosed) { nowExpanded = (force || currentHeight > mOldHeight && velocity >= 0); nowExpanded = currentHeight > mOldHeight && velocity >= 0; } else { nowExpanded = !force && (currentHeight >= mOldHeight || velocity > 0); nowExpanded = currentHeight >= mOldHeight || velocity > 0; } nowExpanded |= mNaturalHeight == mSmallSize; } else { nowExpanded = !wasClosed; } if (mScaleAnimation.isRunning()) { mScaleAnimation.cancel(); } mCallback.expansionStateChanged(false); int naturalHeight = mScaler.getNaturalHeight(); float targetHeight = nowExpanded ? naturalHeight : mSmallSize; if (targetHeight != currentHeight) { if (targetHeight != currentHeight && mEnabled) { mScaleAnimation.setFloatValues(targetHeight); mScaleAnimation.setupStartValues(); final View scaledView = mResizedView; Loading Loading @@ -575,6 +587,9 @@ public class ExpandHelper implements Gefingerpoken { mFlingAnimationUtils.apply(mScaleAnimation, currentHeight, targetHeight, velocity); mScaleAnimation.start(); } else { if (targetHeight != currentHeight) { mScaler.setHeight(targetHeight); } mCallback.setUserExpandedChild(mResizedView, nowExpanded); mCallback.setUserLockedChild(mResizedView, false); } Loading @@ -597,7 +612,7 @@ public class ExpandHelper implements Gefingerpoken { * Use this to abort any pending expansions in progress. */ public void cancel() { finishExpanding(true, 0f /* velocity */); finishExpanding(true /* forceAbort */, 0f /* velocity */); clearView(); // reset the gesture detector Loading
packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +13 −0 Original line number Diff line number Diff line Loading @@ -1022,6 +1022,19 @@ public class NotificationStackScrollLayout extends ViewGroup public void setUserExpandedChild(View v, boolean userExpanded) { if (v instanceof ExpandableNotificationRow) { ExpandableNotificationRow row = (ExpandableNotificationRow) v; if (userExpanded && onKeyguard()) { // Due to a race when locking the screen while touching, a notification may be // expanded even after we went back to keyguard. An example of this happens if // you click in the empty space while expanding a group. // We also need to un-user lock it here, since otherwise the content height // calculated might be wrong. We also can't invert the two calls since // un-userlocking it will trigger a layout switch in the content view. row.setUserLocked(false); updateContentHeight(); notifyHeightChangeListener(row); return; } row.setUserExpanded(userExpanded, true /* allowChildrenExpansion */); row.onExpandedByGesture(userExpanded); } Loading