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

Commit 06661993 authored by John Spurlock's avatar John Spurlock Committed by Android (Google) Code Review
Browse files

Merge "Quick settings bug fixes."

parents 50728832 f0b06c77
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ public class NotificationPanelView extends PanelView {
    private int[] mTempChildLocation = new int[2];
    private View mNotificationParent;
    private boolean mTrackingSettings;
    private float mExpandedHeight = -1;

    public NotificationPanelView(Context context, AttributeSet attrs) {
        super(context, attrs);
@@ -173,6 +174,8 @@ public class NotificationPanelView extends PanelView {
     * @param expandedHeight the new expanded height
     */
    private void updateNotificationStackHeight(float expandedHeight) {
        if (mExpandedHeight == expandedHeight) return;
        mExpandedHeight = expandedHeight;
        mNotificationStackScroller.setIsExpanded(expandedHeight > 0.0f);
        float childOffset = getRelativeTop(mNotificationStackScroller)
                - mNotificationParent.getTranslationY();
+18 −13
Original line number Diff line number Diff line
@@ -747,6 +747,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
    }

    public boolean onSettingsEvent(MotionEvent event) {
        userActivity();
        if (mSettingsClosing
                && mFlipSettingsViewAnim != null && mFlipSettingsViewAnim.isRunning()) {
            return true;
        }
        if (mSettingsTracker != null) {
            mSettingsTracker.addMovement(event);
        }
@@ -814,15 +819,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
    }

    private void positionSettings(float dy) {
        final int h = mFlipSettingsView.getMeasuredHeight();
        final int ph = mNotificationPanel.getMeasuredHeight();
        if (mSettingsClosing) {
            final int ph = mNotificationPanel.getMeasuredHeight();
            dy = Math.min(Math.max(-ph, dy), 0);
            mFlipSettingsView.setTranslationY(dy);
            mStackScroller.setTranslationY(ph + dy);
        } else {
            dy = Math.min(Math.max(0, dy), ph);
            mFlipSettingsView.setTranslationY(-h + dy - mNotificationPadding * 2);
            final int h = mFlipSettingsView.getBottom();
            dy = Math.min(Math.max(0, dy), h);
            mFlipSettingsView.setTranslationY(-h + dy);
            mStackScroller.setTranslationY(dy);
        }
    }
@@ -1733,17 +1738,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
        mHeaderFlipper.cancel();
        mKeyguardFlipper.cancel();
        if (mClearButtonAnim != null) mClearButtonAnim.cancel();

        mStackScroller.setVisibility(View.VISIBLE);
        final int h = mNotificationPanel.getMeasuredHeight();
        final float settingsY = mSettingsTracker != null ? mFlipSettingsView.getTranslationY() : 0;
        final float scrollerY = mSettingsTracker != null ? mStackScroller.getTranslationY() : h;
        mScrollViewAnim = start(
            startDelay(0,
                interpolator(mDecelerateInterpolator,
                    ObjectAnimator.ofFloat(mStackScroller, View.TRANSLATION_Y, scrollerY, 0)
                        .setDuration(FLIP_DURATION)
                    )));
                    ));
        mFlipSettingsViewAnim = start(
            setVisibilityWhenDone(
                interpolator(mDecelerateInterpolator,
@@ -3058,25 +3061,27 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
            mSettingsButtonAnim = start(
                setVisibilityWhenDone(
                    ObjectAnimator.ofFloat(mSettingsButton, View.ALPHA, 0f)
                        .setDuration(FLIP_DURATION),
                        .setDuration(FLIP_DURATION_OUT),
                    mStackScroller, View.INVISIBLE));
            mNotificationButton.setVisibility(View.VISIBLE);
            mNotificationButtonAnim = start(
                startDelay(FLIP_DURATION_OUT,
                    ObjectAnimator.ofFloat(mNotificationButton, View.ALPHA, 1f)
                    .setDuration(FLIP_DURATION));
                        .setDuration(FLIP_DURATION_IN)));
        }

        public void flipToNotifications() {
            mNotificationButtonAnim = start(
                setVisibilityWhenDone(
                    ObjectAnimator.ofFloat(mNotificationButton, View.ALPHA, 0f)
                        .setDuration(FLIP_DURATION),
                        .setDuration(FLIP_DURATION_OUT),
                    mNotificationButton, View.INVISIBLE));

            mSettingsButton.setVisibility(View.VISIBLE);
            mSettingsButtonAnim = start(
                startDelay(FLIP_DURATION_OUT,
                    ObjectAnimator.ofFloat(mSettingsButton, View.ALPHA, 1f)
                    .setDuration(FLIP_DURATION));
                        .setDuration(FLIP_DURATION_IN)));
        }

        public void cancel() {
+11 −6
Original line number Diff line number Diff line
@@ -62,18 +62,19 @@ class QuickSettingsContainerView extends FrameLayout {
    @Override
    protected void onFinishInflate() {
        super.onFinishInflate();
        if (sShowScrim) {
            mScrim = new ScrimView(mContext);
            addView(mScrim);
        mScrim.setAlpha(sShowScrim ? 1 : 0);
        }
        // TODO: Setup the layout transitions
        LayoutTransition transitions = getLayoutTransition();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (mScrim.getAlpha() == 1) {
            mScrim.animate().alpha(0).setDuration(1000).start();
        if (mScrim != null) {
            sShowScrim = false;
            removeView(mScrim);
        }
        return super.onTouchEvent(event);
    }
@@ -144,7 +145,9 @@ class QuickSettingsContainerView extends FrameLayout {

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        if (mScrim != null) {
            mScrim.bringToFront();
        }
        final int N = getChildCount();
        final boolean isLayoutRtl = isLayoutRtl();
        final int width = getWidth();
@@ -206,6 +209,7 @@ class QuickSettingsContainerView extends FrameLayout {
    }

    private static final class ScrimView extends View {
        private static final int SCRIM = 0x4f000000;
        private static final int COLOR = 0xaf4285f4;

        private final Paint mLinePaint;
@@ -240,6 +244,7 @@ class QuickSettingsContainerView extends FrameLayout {
            final int h = getMeasuredHeight();
            final int f = mStrokeWidth * 3 / 4;

            canvas.drawColor(SCRIM);
            canvas.drawPath(line(f, h / 2, w - f, h / 2), mLinePaint);
            canvas.drawPath(line(w / 2, f, w / 2, h - f), mLinePaint);