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

Commit d2ff869b authored by 周雷's avatar 周雷 Committed by Luca Stefani
Browse files

Use bool var judge whether the navi-keys enabled



if device enabled the system navigation keys,the system
will go to readthe Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED
provider while the driverreport KEYCODE_SYSTEM_NAVIGATION_RIGHT
every times,this operation has a serious impact on performance

Change-Id: Ia30d14c136b7798e2997d43bc601cb361c853e0d
Signed-off-by: default avatar周雷 <zhoulei5@xiaomi.com>
parent f94851a0
Loading
Loading
Loading
Loading
+10 −6
Original line number Original line Diff line number Diff line
@@ -802,6 +802,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    // (See LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR.)
    // (See LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR.)
    int mRingHomeBehavior;
    int mRingHomeBehavior;


    // whether System Navigation Keys are enabled
    boolean mSystemNavigationKeysEnabled;

    Display mDisplay;
    Display mDisplay;


    private int mDisplayRotation;
    private int mDisplayRotation;
@@ -1150,6 +1153,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            resolver.registerContentObserver(LineageSettings.Secure.getUriFor(
            resolver.registerContentObserver(LineageSettings.Secure.getUriFor(
                    LineageSettings.Secure.KILL_APP_LONGPRESS_BACK), false, this,
                    LineageSettings.Secure.KILL_APP_LONGPRESS_BACK), false, this,
                    UserHandle.USER_ALL);
                    UserHandle.USER_ALL);
            resolver.registerContentObserver(Settings.Global.getUriFor(
                    Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED), false, this,
                    UserHandle.USER_ALL);
            updateSettings();
            updateSettings();
        }
        }


@@ -2650,6 +2656,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR,
                    LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR,
                    LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT,
                    LineageSettings.Secure.RING_HOME_BUTTON_BEHAVIOR_DEFAULT,
                    UserHandle.USER_CURRENT);
                    UserHandle.USER_CURRENT);
           mSystemNavigationKeysEnabled = Settings.Secure.getIntForUser(resolver,
                    Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0,
                    UserHandle.USER_CURRENT) == 1;
            mTorchLongPressPowerEnabled = LineageSettings.System.getIntForUser(
            mTorchLongPressPowerEnabled = LineageSettings.System.getIntForUser(
                    resolver, LineageSettings.System.TORCH_LONG_PRESS_POWER_GESTURE, 0,
                    resolver, LineageSettings.System.TORCH_LONG_PRESS_POWER_GESTURE, 0,
                    UserHandle.USER_CURRENT) == 1;
                    UserHandle.USER_CURRENT) == 1;
@@ -6974,7 +6983,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        if (event.getAction() == KeyEvent.ACTION_UP) {
        if (event.getAction() == KeyEvent.ACTION_UP) {
            if (!mAccessibilityManager.isEnabled()
            if (!mAccessibilityManager.isEnabled()
                    || !mAccessibilityManager.sendFingerprintGesture(event.getKeyCode())) {
                    || !mAccessibilityManager.sendFingerprintGesture(event.getKeyCode())) {
                if (areSystemNavigationKeysEnabled()) {
                if (mSystemNavigationKeysEnabled) {
                    sendSystemKeyToStatusBarAsync(event.getKeyCode());
                    sendSystemKeyToStatusBarAsync(event.getKeyCode());
                }
                }
            }
            }
@@ -8540,11 +8549,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                Settings.Global.THEATER_MODE_ON, 0) == 1;
                Settings.Global.THEATER_MODE_ON, 0) == 1;
    }
    }


    private boolean areSystemNavigationKeysEnabled() {
        return Settings.Secure.getIntForUser(mContext.getContentResolver(),
                Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, 0, UserHandle.USER_CURRENT) == 1;
    }

    @Override
    @Override
    public boolean performHapticFeedbackLw(WindowState win, int effectId, boolean always) {
    public boolean performHapticFeedbackLw(WindowState win, int effectId, boolean always) {
        if (!mVibrator.hasVibrator()) {
        if (!mVibrator.hasVibrator()) {