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

Commit eebb40b0 authored by Ricardo Cerqueira's avatar Ricardo Cerqueira Committed by Gerrit Code Review
Browse files

Merge "Status bar brightness control improvements" into cm-10.2

parents e601d3d5 71c97740
Loading
Loading
Loading
Loading
+23 −22
Original line number Diff line number Diff line
@@ -301,6 +301,8 @@ public class PhoneStatusBar extends BaseStatusBar {
    private boolean mBrightnessControl;
    private float mScreenWidth;
    private int mMinBrightness;
    private int mPeekHeight;
    private boolean mJustPeeked;
    int mLinger;
    int mInitialTouchX;
    int mInitialTouchY;
@@ -2200,41 +2202,39 @@ public class PhoneStatusBar extends BaseStatusBar {
        final int x = (int) event.getRawX();
        final int y = (int) event.getRawY();
        if (action == MotionEvent.ACTION_DOWN) {
            if (y < mNotificationHeaderHeight) {
                mLinger = 0;
                mInitialTouchX = x;
                mInitialTouchY = y;
            mVelocityTracker = VelocityTracker.obtain();
                mJustPeeked = true;
                mHandler.removeCallbacks(mLongPressBrightnessChange);
            if ((y) < mNotificationHeaderHeight) {
                mHandler.postDelayed(mLongPressBrightnessChange,
                        BRIGHTNESS_CONTROL_LONG_PRESS_TIMEOUT);
            }
        } else if (action == MotionEvent.ACTION_MOVE) {
            if ((y) < mNotificationHeaderHeight) {
                mVelocityTracker.computeCurrentVelocity(1000);
                float yVel = mVelocityTracker.getYVelocity();
                yVel = Math.abs(yVel);
                if (yVel < 50.0f) {
            if (y < mNotificationHeaderHeight && mJustPeeked) {
                if (mLinger > BRIGHTNESS_CONTROL_LINGER_THRESHOLD) {
                    adjustBrightness(x);
                } else {
                    final int xDiff = Math.abs(x - mInitialTouchX);
                    final int yDiff = Math.abs(y - mInitialTouchY);
                    final int touchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
                    if (xDiff > yDiff) {
                        mLinger++;
                    }
                }
                int touchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop();
                if (Math.abs(x - mInitialTouchX) > touchSlop ||
                        Math.abs(y - mInitialTouchY) > touchSlop) {
                    if (xDiff > touchSlop || yDiff > touchSlop) {
                        mHandler.removeCallbacks(mLongPressBrightnessChange);
                    }
                }
            } else {
                if (y > mPeekHeight) {
                    mJustPeeked = false;
                }
                mHandler.removeCallbacks(mLongPressBrightnessChange);
            }
        } else if (action == MotionEvent.ACTION_UP
                || action == MotionEvent.ACTION_CANCEL) {
            mVelocityTracker.recycle();
            mVelocityTracker = null;
            mHandler.removeCallbacks(mLongPressBrightnessChange);
            mLinger = 0;
        }
    }

@@ -3053,6 +3053,7 @@ public class PhoneStatusBar extends BaseStatusBar {

        mCarrierLabelHeight = res.getDimensionPixelSize(R.dimen.carrier_label_height);
        mNotificationHeaderHeight = res.getDimensionPixelSize(R.dimen.notification_panel_header_height);
        mPeekHeight = res.getDimensionPixelSize(R.dimen.peek_height);

        mNotificationPanelMinHeightFrac = res.getFraction(R.dimen.notification_panel_min_height_frac, 1, 1);
        if (mNotificationPanelMinHeightFrac < 0f || mNotificationPanelMinHeightFrac > 1f) {