diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 173a651ecb4e7..a0e4f4f285685 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -724,6 +724,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { // Behavior of rotation suggestions. (See Settings.Secure.SHOW_ROTATION_SUGGESTION) int mShowRotationSuggestions; + // Whether system navigation keys are enabled + boolean mSystemNavigationKeysEnabled; + Display mDisplay; int mLandscapeRotation = 0; // default landscape rotation @@ -995,6 +998,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { resolver.registerContentObserver(Settings.Global.getUriFor( Settings.Global.POLICY_CONTROL), false, this, UserHandle.USER_ALL); + resolver.registerContentObserver(Settings.Global.getUriFor( + Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED), false, this, + UserHandle.USER_ALL); updateSettings(); } @@ -2370,6 +2376,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { Settings.Secure.INCALL_BACK_BUTTON_BEHAVIOR, Settings.Secure.INCALL_BACK_BUTTON_BEHAVIOR_DEFAULT, UserHandle.USER_CURRENT); + mSystemNavigationKeysEnabled = Settings.Secure.getIntForUser(resolver, + Settings.Secure.SYSTEM_NAVIGATION_KEYS_ENABLED, + 0, UserHandle.USER_CURRENT) == 1; // Configure rotation suggestions. int showRotationSuggestions = Settings.Secure.getIntForUser(resolver, @@ -6235,7 +6244,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (event.getAction() == KeyEvent.ACTION_UP) { if (!mAccessibilityManager.isEnabled() || !mAccessibilityManager.sendFingerprintGesture(event.getKeyCode())) { - if (areSystemNavigationKeysEnabled()) { + if (mSystemNavigationKeysEnabled) { sendSystemKeyToStatusBarAsync(event.getKeyCode()); } } @@ -7827,11 +7836,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { 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 public boolean performHapticFeedbackLw(WindowState win, int effectId, boolean always) { if (!mVibrator.hasVibrator()) {