Merge "Fixed CTS failure due to selecting wrong transition." into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7b7e7e1603
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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="
|
||||||
|
|||||||
Reference in New Issue
Block a user