Merge "Fixed CTS failure due to selecting wrong transition." into oc-dev

This commit is contained in:
Wale Ogunwale
2017-05-24 12:28:41 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 5 deletions

View File

@@ -284,7 +284,6 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
boolean visible; // does this activity's window need to be shown? boolean visible; // does this activity's window need to be shown?
boolean visibleIgnoringKeyguard; // is this activity visible, ignoring the fact that Keyguard boolean visibleIgnoringKeyguard; // is this activity visible, ignoring the fact that Keyguard
// might hide this activity? // might hide this activity?
private boolean mLastSetWindowVisibility; // The last window visibility state that was set.
private boolean mDeferHidingClient; // If true we told WM to defer reporting to the client private boolean mDeferHidingClient; // If true we told WM to defer reporting to the client
// process that it is hidden. // process that it is hidden.
boolean sleeping; // have we told the activity to sleep? boolean sleeping; // have we told the activity to sleep?
@@ -1589,10 +1588,6 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
} }
void setVisibility(boolean visible) { void setVisibility(boolean visible) {
if (mLastSetWindowVisibility == visible) {
return;
}
mLastSetWindowVisibility = visible;
mWindowContainerController.setVisibility(visible, mDeferHidingClient); mWindowContainerController.setVisibility(visible, mDeferHidingClient);
mStackSupervisor.mActivityMetricsLogger.notifyVisibilityChanged(this, visible); mStackSupervisor.mActivityMetricsLogger.notifyVisibilityChanged(this, visible);
} }

View File

@@ -346,6 +346,24 @@ public class AppWindowContainerController
final AppWindowToken wtoken = mContainer; final AppWindowToken wtoken = mContainer;
// Don't set visibility to false if we were already not visible. This prevents WM from
// adding the app to the closing app list which doesn't make sense for something that is
// already not visible. However, set visibility to true even if we are already visible.
// This makes sure the app is added to the opening apps list so that the right
// transition can be selected.
// TODO: Probably a good idea to separate the concept of opening/closing apps from the
// concept of setting visibility...
if (!visible && wtoken.hiddenRequested) {
if (!deferHidingClient && wtoken.mDeferHidingClient) {
// We previously deferred telling the client to hide itself when visibility was
// initially set to false. Now we would like it to hide, so go ahead and set it.
wtoken.mDeferHidingClient = deferHidingClient;
wtoken.setClientHidden(true);
}
return;
}
if (DEBUG_APP_TRANSITIONS || DEBUG_ORIENTATION) Slog.v(TAG_WM, "setAppVisibility(" if (DEBUG_APP_TRANSITIONS || DEBUG_ORIENTATION) Slog.v(TAG_WM, "setAppVisibility("
+ mToken + ", visible=" + visible + "): " + mService.mAppTransition + mToken + ", visible=" + visible + "): " + mService.mAppTransition
+ " hidden=" + wtoken.hidden + " hiddenRequested=" + " hidden=" + wtoken.hidden + " hiddenRequested="