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

Commit 50eab7e3 authored by Roman Birg's avatar Roman Birg
Browse files

SystemUI: add Settings.System toggle for quick-quick settings pulldown



Change-Id: I3c5dcfc23f39bf8be6c402e25f61e6f57a8add2c
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent df357366
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -2064,6 +2064,12 @@ public final class Settings {
         */
        public static final String BUTTON_BACKLIGHT_TIMEOUT = "button_backlight_timeout";

        /** Whether to allow one finger quick settings expansion on the right side of the statusbar.
         *
         * @hide
         */
        public static final String STATUS_BAR_QUICK_QS_PULLDOWN = "status_bar_quick_qs_pulldown";

        /**
         * Control whether the process CPU usage meter should be shown.
         *
+50 −2
Original line number Diff line number Diff line
@@ -21,10 +21,15 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.ValueAnimator;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Configuration;
import android.database.ContentObserver;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.net.Uri;
import android.os.Handler;
import android.provider.Settings;
import android.util.AttributeSet;
import android.util.MathUtils;
import android.view.MotionEvent;
@@ -169,6 +174,10 @@ public class NotificationPanelView extends PanelView implements
    private boolean mQsTouchAboveFalsingThreshold;
    private int mQsFalsingThreshold;

    private Handler mHandler = new Handler();
    private SettingsObserver mSettingsObserver;
    private boolean mOneFingerQuickSettingsIntercept;

    public NotificationPanelView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
@@ -221,6 +230,7 @@ public class NotificationPanelView extends PanelView implements
                }
            }
        });
        mSettingsObserver = new SettingsObserver(mHandler);
    }

    @Override
@@ -298,11 +308,14 @@ public class NotificationPanelView extends PanelView implements
    @Override
    public void onAttachedToWindow() {
        mSecureCameraLaunchManager.create();
        mSettingsObserver.observe();

    }

    @Override
    public void onDetachedFromWindow() {
        mSecureCameraLaunchManager.destroy();
        mSettingsObserver.unobserve();
    }

    /**
@@ -623,7 +636,8 @@ public class NotificationPanelView extends PanelView implements
        boolean twoFingerQsEvent = mTwoFingerQsExpandPossible
                && (event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN
                && event.getPointerCount() == 2);
        boolean oneFingerQsOverride = event.getActionMasked() == MotionEvent.ACTION_DOWN
        boolean oneFingerQsOverride = mOneFingerQuickSettingsIntercept
                && event.getActionMasked() == MotionEvent.ACTION_DOWN
                && shouldQuickSettingsIntercept(event.getX(), event.getY(), -1, false);
        if ((twoFingerQsEvent || oneFingerQsOverride)
                && event.getY(event.getActionIndex()) < mStatusBarMinHeight) {
@@ -1875,4 +1889,38 @@ public class NotificationPanelView extends PanelView implements
    public void onScreenTurnedOn() {
        mKeyguardStatusView.refreshTime();
    }

    class SettingsObserver extends ContentObserver {
        SettingsObserver(Handler handler) {
            super(handler);
        }

        void observe() {
            ContentResolver resolver = mContext.getContentResolver();
            resolver.registerContentObserver(Settings.System.getUriFor(
                    Settings.System.STATUS_BAR_QUICK_QS_PULLDOWN), false, this);
            update();
        }

        void unobserve() {
            ContentResolver resolver = mContext.getContentResolver();
            resolver.unregisterContentObserver(this);
        }

        @Override
        public void onChange(boolean selfChange) {
            update();
        }

        @Override
        public void onChange(boolean selfChange, Uri uri) {
            update();
        }

        public void update() {
            ContentResolver resolver = mContext.getContentResolver();
            mOneFingerQuickSettingsIntercept = Settings.System.getInt(
                    resolver, Settings.System.STATUS_BAR_QUICK_QS_PULLDOWN, 1) == 1;
        }
    }
}