Don't ensure config for activity that is about to be invisible

We were relaunching an activity in the docked stack that is been
dismissed because we call ensure configuration on it due to the
resize of it been moved to the fullscreen stack. This isn't needed
as the activity is about to become invisible since it is been moved
to a stack that isn't visible.
We now ensuring the configuration if:
- The stack the activity is in shouldn't be visible.
- The activity is currently stopped or stopping.

Change-Id: I6adac6b11a0db4b100e623e4074e169660206567
Fixes: 37118176
Test: Activity in docked stack isn't relaunched when dismissed.
This commit is contained in:
Wale Ogunwale
2017-04-10 08:05:41 -07:00
parent e812e7dc2e
commit 9b7a8272d8

View File

@@ -97,6 +97,7 @@ import static com.android.server.am.ActivityStack.ActivityState.STOPPING;
import static com.android.server.am.ActivityStack.LAUNCH_TICK;
import static com.android.server.am.ActivityStack.LAUNCH_TICK_MSG;
import static com.android.server.am.ActivityStack.PAUSE_TIMEOUT_MSG;
import static com.android.server.am.ActivityStack.STACK_INVISIBLE;
import static com.android.server.am.ActivityStack.STOP_TIMEOUT_MSG;
import static com.android.server.am.EventLogTags.AM_ACTIVITY_FULLY_DRAWN_TIME;
import static com.android.server.am.EventLogTags.AM_ACTIVITY_LAUNCH_TIME;
@@ -2269,6 +2270,20 @@ final class ActivityRecord extends ConfigurationContainer implements AppWindowCo
return true;
}
// Skip updating configuration for activity that are stopping or stopped.
if (state == STOPPING || state == STOPPED) {
if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
"Skipping config check stopped or stopping: " + this);
return true;
}
// Skip updating configuration for activity is a stack that shouldn't be visible.
if (stack.shouldBeVisible(null /* starting */) == STACK_INVISIBLE) {
if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
"Skipping config check invisible stack: " + this);
return true;
}
if (DEBUG_SWITCH || DEBUG_CONFIGURATION) Slog.v(TAG_CONFIGURATION,
"Ensuring correct configuration: " + this);