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

Commit 681e5dda authored by Karthik Ravi Shankar's avatar Karthik Ravi Shankar Committed by android-build-merger
Browse files

Merge "Handle volume keys to apps in Vr mode" into oc-dev am: a58589bd

am: a2e18bb8

Change-Id: I4104c75c910a32904e7f4d1f2c990661e852f910
parents d96995e5 a2e18bb8
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2886,4 +2886,8 @@

    <!-- Additional non-platform defined secure settings exposed to Instant Apps -->
    <string-array name="config_allowedSecureInstantAppSettings"></string-array>

    <!-- Handle volume keys directly in Window Manager without passing them to the foreground app -->
    <bool name="config_handleVolumeKeysInWindowManager">false</bool>

</resources>
+1 −0
Original line number Diff line number Diff line
@@ -3022,4 +3022,5 @@
  <java-symbol type="array" name="config_allowedSystemInstantAppSettings" />
  <java-symbol type="array" name="config_allowedSecureInstantAppSettings" />

  <java-symbol type="bool" name="config_handleVolumeKeysInWindowManager" />
</resources>
+16 −4
Original line number Diff line number Diff line
@@ -584,6 +584,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    boolean mTranslucentDecorEnabled = true;
    boolean mUseTvRouting;

    private boolean mHandleVolumeKeysInWM;

    int mPointerLocationMode = 0; // guarded by mLock

    // The last window we were told about in focusChanged.
@@ -1938,6 +1940,9 @@ public class PhoneWindowManager implements WindowManagerPolicy {

        mUseTvRouting = AudioSystem.getPlatformType(mContext) == AudioSystem.PLATFORM_TELEVISION;

        mHandleVolumeKeysInWM = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_handleVolumeKeysInWindowManager);

        readConfigurationDependentBehaviors();

        mAccessibilityManager = (AccessibilityManager) context.getSystemService(
@@ -3544,11 +3549,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP
                || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN
                || keyCode == KeyEvent.KEYCODE_VOLUME_MUTE) {
            if (mUseTvRouting) {
                // On TVs volume keys never go to the foreground app.
            if (mUseTvRouting || mHandleVolumeKeysInWM) {
                // On TVs or when the configuration is enabled, volume keys never
                // go to the foreground app.
                dispatchDirectAudioEvent(event);
                return -1;
            }

            // If the device is in Vr mode, drop the volume keys and don't
            // forward it to the application/dispatch the audio event.
            if (mPersistentVrModeEnabled) {
                return -1;
            }
        } else if (keyCode == KeyEvent.KEYCODE_TAB && event.isMetaPressed()) {
            // Pass through keyboard navigation keys.
            return 0;
@@ -5957,8 +5969,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                        }
                    }
                }
                if (mUseTvRouting) {
                    // On TVs, defer special key handlings to
                if (mUseTvRouting || mHandleVolumeKeysInWM) {
                    // Defer special key handlings to
                    // {@link interceptKeyBeforeDispatching()}.
                    result |= ACTION_PASS_TO_USER;
                } else if ((result & ACTION_PASS_TO_USER) == 0) {