diff options
author | Garfield Tan <xutan@google.com> | 2019-01-28 10:26:23 -0800 |
---|---|---|
committer | Garfield Tan <xutan@google.com> | 2019-01-28 16:30:18 -0800 |
commit | 47e576c0654c64ff4eab70f9ecacd44109e149a8 (patch) | |
tree | 79d93d3380068ccba4653af8c9e59cd0f010b124 /tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp | |
parent | 87969723fc13cd69784fffb7ed3e8f8f6eed1a14 (diff) |
Bring more visibility logic from stack to activity.
There has been a discrepancy between the condition of pushing
configuration to apps in ActivityRecord#ensureActivityConfiguration()
and WindowManagerService#relayoutWindow(). This CL tries to remove the
discrepancy for most activities (with an exception on activity behind a
modal activity in the same stack), by changing relevant logic in
ActivityRecord.
This effectively fixes b/123127858 (Home page layout issue after
exiting a landscape app), but still leaves a question to answer. The
root cause of that issue is someone calls startRecentsActivity() to
launch Nexus launcher activity and uses mLaunchTaskBehind to promote
visibility. In WMS#relayoutWindow() it pushes configuration if
mLaunchTaskBehind is true (by setting visibility into AppWindowToken),
but ActivityRecord#ensureActivityConfiguration() doesn't consider it
visible before this CL. After startRecentActivity() Nexus launcher
activity schedules a relayout and receives a landscape configuration
because the game is still in the foreground in the relayout pass. Later
when it's really brought to foreground ActivityRecord won't push a new
configuration to it because ActivityRecord still thinks the last
reported configuration is the portrait one. Thus a wrong landscape
config stayed. This CL lets ActivityRecord#ensureActivityConfiguration()
consider mLaunchTaskBehind and pushes the landscape config, which gives
it a chance to fix it when really bringing home to front.
Bug: 123127858
Test: Manual test. go/wm-smoke.
Change-Id: Iff6ee724a98113921d843344bba322c8b2a55f54
Diffstat (limited to 'tests/DynamicCodeLoggerIntegrationTests/src/cpp/test_executable.cpp')
0 files changed, 0 insertions, 0 deletions