Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7a39ea1 authored by Selim Cinek's avatar Selim Cinek Committed by Android (Google) Code Review
Browse files

Merge "Fixed an issue where the panel could be stuck tracking" into oc-dev

parents bfa8b3d5 be2c443e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -165,7 +165,7 @@ public class NotificationShelf extends ActivatableNotificationView implements
            openedAmount = Math.min(1.0f, openedAmount);
            mShelfState.openedAmount = openedAmount;
            mShelfState.clipTopAmount = 0;
            mShelfState.alpha = mAmbientState.isPulsing() ? 0 : 1;
            mShelfState.alpha = mAmbientState.hasPulsingNotifications() ? 0 : 1;
            mShelfState.belowSpeedBump = mAmbientState.getSpeedBumpIndex() == 0;
            mShelfState.shadowAlpha = 1.0f;
            mShelfState.hideSensitive = false;
+37 −15
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ public abstract class PanelView extends FrameLayout {
    private long mDownTime;
    private float mMinExpandHeight;
    private LockscreenGestureLogger mLockscreenGestureLogger = new LockscreenGestureLogger();
    private boolean mPanelUpdateWhenAnimatorEnds;

    private final void logf(String fmt, Object... args) {
        Log.v(TAG, (mViewName != null ? (mViewName + ": ") : "") + String.format(fmt, args));
@@ -507,7 +508,7 @@ public abstract class PanelView extends FrameLayout {

    @Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if (mInstantExpanding || !mNotificationsDragEnabled
        if (mInstantExpanding || !mNotificationsDragEnabled || mTouchDisabled
                || (mMotionAborted && event.getActionMasked() != MotionEvent.ACTION_DOWN)) {
            return false;
        }
@@ -758,14 +759,14 @@ public abstract class PanelView extends FrameLayout {
                if (clearAllExpandHack && !mCancelled) {
                    setExpandedHeightInternal(getMaxPanelHeight());
                }
                mHeightAnimator = null;
                setAnimator(null);
                if (!mCancelled) {
                    notifyExpandingFinished();
                }
                notifyBarPanelExpansionChanged();
            }
        });
        mHeightAnimator = animator;
        setAnimator(animator);
        animator.start();
    }

@@ -802,15 +803,28 @@ public abstract class PanelView extends FrameLayout {
    protected void requestPanelHeightUpdate() {
        float currentMaxPanelHeight = getMaxPanelHeight();

        // If the user isn't actively poking us, let's update the height
        if ((!mTracking || isTrackingBlocked())
                && mHeightAnimator == null
                && !isFullyCollapsed()
                && currentMaxPanelHeight != mExpandedHeight
                && mPeekAnimator == null
                && !mPeekTouching) {
            setExpandedHeight(currentMaxPanelHeight);
        if (isFullyCollapsed()) {
            return;
        }

        if (currentMaxPanelHeight == mExpandedHeight) {
            return;
        }

        if (mPeekAnimator != null || mPeekTouching) {
            return;
        }

        if (mTracking && !isTrackingBlocked()) {
            return;
        }

        if (mHeightAnimator != null) {
            mPanelUpdateWhenAnimatorEnds = true;
            return;
        }

        setExpandedHeight(currentMaxPanelHeight);
    }

    public void setExpandedHeightInternal(float h) {
@@ -1062,7 +1076,7 @@ public abstract class PanelView extends FrameLayout {
            @Override
            public void onAnimationEnd(Animator animation) {
                if (mCancelled) {
                    mHeightAnimator = null;
                    setAnimator(null);
                    onAnimationFinished.run();
                } else {
                    startUnlockHintAnimationPhase2(onAnimationFinished);
@@ -1070,7 +1084,7 @@ public abstract class PanelView extends FrameLayout {
            }
        });
        animator.start();
        mHeightAnimator = animator;
        setAnimator(animator);
        mKeyguardBottomArea.getIndicationArea().animate()
                .translationY(-mHintDistance)
                .setDuration(250)
@@ -1088,6 +1102,14 @@ public abstract class PanelView extends FrameLayout {
                .start();
    }

    private void setAnimator(ValueAnimator animator) {
        mHeightAnimator = animator;
        if (animator == null && mPanelUpdateWhenAnimatorEnds) {
            mPanelUpdateWhenAnimatorEnds = false;
            requestPanelHeightUpdate();
        }
    }

    /**
     * Phase 2: Bounce down.
     */
@@ -1098,13 +1120,13 @@ public abstract class PanelView extends FrameLayout {
        animator.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                mHeightAnimator = null;
                setAnimator(null);
                onAnimationFinished.run();
                notifyBarPanelExpansionChanged();
            }
        });
        animator.start();
        mHeightAnimator = animator;
        setAnimator(animator);
    }

    private ValueAnimator createHeightAnimator(float targetHeight) {
+0 −1
Original line number Diff line number Diff line
@@ -4940,7 +4940,6 @@ public class StatusBar extends SystemUI implements DemoMode,
            where.getLocationInWindow(mTmpInt2);
            mWakeUpTouchLocation = new PointF(mTmpInt2[0] + where.getWidth() / 2,
                    mTmpInt2[1] + where.getHeight() / 2);
            mNotificationPanel.setTouchDisabled(false);
            mStatusBarKeyguardViewManager.notifyDeviceWakeUpRequested();
            mFalsingManager.onScreenOnFromTouch();
        }
+1 −1
Original line number Diff line number Diff line
@@ -277,7 +277,7 @@ public class StatusBarWindowView extends FrameLayout {

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (mService.isDozing() && !mService.isPulsing()) {
        if (mService.isDozing() && !mStackScrollLayout.hasPulsingNotifications()) {
            // Capture all touch events in always-on.
            return true;
        }
+5 −5
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ public class AmbientState {
    private boolean mPanelTracking;
    private boolean mExpansionChanging;
    private boolean mPanelFullWidth;
    private boolean mPulsing;
    private boolean mHasPulsingNotifications;
    private boolean mUnlockHintRunning;

    public AmbientState(Context context) {
@@ -287,12 +287,12 @@ public class AmbientState {
        mPanelTracking = panelTracking;
    }

    public boolean isPulsing() {
        return mPulsing;
    public boolean hasPulsingNotifications() {
        return mHasPulsingNotifications;
    }

    public void setPulsing(boolean pulsing) {
        mPulsing = pulsing;
    public void setHasPulsingNotifications(boolean hasPulsing) {
        mHasPulsingNotifications = hasPulsing;
    }

    public boolean isPanelTracking() {
Loading