Merge "Make Recents activity invisible when it is behind a translucent activity" into nyc-dev
am: cbc73decf1
* commit 'cbc73decf11344ebcf7a35c31585b66e021e38a1':
Make Recents activity invisible when it is behind a translucent activity
Change-Id: I345069ffbb0f9694b29e4077240d6527d2ec096c
This commit is contained in:
@@ -1725,13 +1725,9 @@ final class ActivityStack {
|
||||
continue;
|
||||
}
|
||||
aboveTop = false;
|
||||
// mLaunchingBehind: Activities launching behind are at the back of the task stack
|
||||
// but must be drawn initially for the animation as though they were visible.
|
||||
final boolean activityVisibleBehind =
|
||||
(behindTranslucentActivity || stackVisibleBehind) && visibleBehind == r;
|
||||
final boolean isVisible = (!behindFullscreenActivity || r.mLaunchTaskBehind
|
||||
|| activityVisibleBehind) && okToShowLocked(r);
|
||||
if (isVisible) {
|
||||
|
||||
if (shouldBeVisible(r, behindTranslucentActivity, stackVisibleBehind,
|
||||
visibleBehind, behindFullscreenActivity)) {
|
||||
if (DEBUG_VISIBILITY) Slog.v(TAG_VISIBILITY, "Make visible? " + r
|
||||
+ " finishing=" + r.finishing + " state=" + r.state);
|
||||
// First: if this is not the current activity being started, make
|
||||
@@ -1819,6 +1815,31 @@ final class ActivityStack {
|
||||
}
|
||||
}
|
||||
|
||||
/** Return true if the input activity should be made visible */
|
||||
private boolean shouldBeVisible(ActivityRecord r, boolean behindTranslucentActivity,
|
||||
boolean stackVisibleBehind, ActivityRecord visibleBehind,
|
||||
boolean behindFullscreenActivity) {
|
||||
// mLaunchingBehind: Activities launching behind are at the back of the task stack
|
||||
// but must be drawn initially for the animation as though they were visible.
|
||||
final boolean activityVisibleBehind =
|
||||
(behindTranslucentActivity || stackVisibleBehind) && visibleBehind == r;
|
||||
|
||||
if (!okToShowLocked(r)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean isVisible =
|
||||
!behindFullscreenActivity || r.mLaunchTaskBehind || activityVisibleBehind;
|
||||
|
||||
if (isVisible && r.isRecentsActivity()) {
|
||||
// Recents activity can only be visible if the home stack isn't fullscreen or is the
|
||||
// focused stack.
|
||||
isVisible = !mFullscreen || mStackSupervisor.isFocusedStack(this);
|
||||
}
|
||||
|
||||
return isVisible;
|
||||
}
|
||||
|
||||
private void checkTranslucentActivityWaiting(ActivityRecord top) {
|
||||
if (mTranslucentActivityWaiting != top) {
|
||||
mUndrawnActivitiesBelowTopTranslucent.clear();
|
||||
|
||||
Reference in New Issue
Block a user