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

Commit c08a4026 authored by Selim Cinek's avatar Selim Cinek Committed by android-build-merger
Browse files

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

am: a7a39ea1

Change-Id: I05694e3dc92769270c1a286a69777a1519ba51da
parents 4ae07442 a7a39ea1
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