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

Commit d3b98329 authored by Jeff Brown's avatar Jeff Brown Committed by Android Git Automerger
Browse files

am d5713179: Merge "Override app requested orientation when docked." into ics-mr1

* commit 'd5713179':
  Override app requested orientation when docked.
parents d9070a08 d5713179
Loading
Loading
Loading
Loading
+21 −10
Original line number Diff line number Diff line
@@ -3097,7 +3097,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                sensorRotation = lastRotation;
            }

            int preferredRotation = -1;
            final int preferredRotation;
            if (mHdmiPlugged) {
                // Ignore sensor when plugged into HDMI.
                preferredRotation = mHdmiRotation;
@@ -3146,28 +3146,39 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            } else if (mUserRotationMode == WindowManagerPolicy.USER_ROTATION_LOCKED) {
                // Apply rotation lock.
                preferredRotation = mUserRotation;
            } else {
                // No overriding preference.
                // We will do exactly what the application asked us to do.
                preferredRotation = -1;
            }

            // TODO: Sometimes, we might want to override the application-requested
            //       orientation, such as when HDMI is plugged in or when docked.
            //       We can do that by modifying the appropriate cases above to return
            //       the preferred orientation directly instead of continuing on down here.

            switch (orientation) {
                case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
                    // Always return portrait if orientation set to portrait.
                    // Return portrait unless overridden.
                    if (isAnyPortrait(preferredRotation)) {
                        return preferredRotation;
                    }
                    return mPortraitRotation;

                case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:
                    // Always return landscape if orientation set to landscape.
                    // Return landscape unless overridden.
                    if (isLandscapeOrSeascape(preferredRotation)) {
                        return preferredRotation;
                    }
                    return mLandscapeRotation;

                case ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT:
                    // Always return portrait if orientation set to portrait.
                    // Return reverse portrait unless overridden.
                    if (isAnyPortrait(preferredRotation)) {
                        return preferredRotation;
                    }
                    return mUpsideDownRotation;

                case ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE:
                    // Always return seascape if orientation set to reverse landscape.
                    // Return seascape unless overridden.
                    if (isLandscapeOrSeascape(preferredRotation)) {
                        return preferredRotation;
                    }
                    return mSeascapeRotation;

                case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE: