Don't send SCREEN_ORIENTATION_UNSET to apps.

SCREEN_ORIENTATION_UNSET is an internal implementation detail of how WM
now handles WindowContainer requesting a specific orientation. The
container will return SCREEN_ORIENTATION_UNSET for getOrientation method
if it should affect the device orientation under specific conditions like
when it isn't visible. However, we still want to return the requested
app orientation if someone from outside WM asked for it regardless of if
the app is visible or not.

Bug: 33067025
Test: Adding a new document in the Drive app with the scan option doesn't crash.
Change-Id: I53aee1afaa311994520f573139aea9a0d87bc8e6
This commit is contained in:
Wale Ogunwale
2016-12-01 08:44:09 -08:00
parent 595a29efb2
commit b198b74c14
2 changed files with 6 additions and 1 deletions

View File

@@ -1103,6 +1103,11 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
return mOrientation;
}
/** Returns the app's preferred orientation regardless of its currently visibility state. */
int getOrientationIgnoreVisibility() {
return mOrientation;
}
@Override
void checkAppWindowsReadyToShow() {
if (allDrawn == mAppAnimator.allDrawn) {

View File

@@ -2716,7 +2716,7 @@ public class WindowManagerService extends IWindowManager.Stub
return SCREEN_ORIENTATION_UNSPECIFIED;
}
return wtoken.getOrientation();
return wtoken.getOrientationIgnoreVisibility();
}
}