Merge "Correct visible status of an activity if no more transition will happen" into tm-qpr-dev am: dd2f290170

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19728398

Change-Id: I210bb509b82eb8fa4ab6d4d4fb64f9ab521e028f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Wei Sheng Shih
2022-09-07 02:02:36 +00:00
committed by Automerger Merge Worker

View File

@@ -80,6 +80,7 @@ import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Slog;
import android.util.SparseArray;
import android.view.Display;
import android.view.SurfaceControl;
import android.view.WindowManager;
import android.view.animation.Animation;
@@ -706,7 +707,11 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
// remove the surfaces yet. If it is currently visible, but not expected-visible,
// then doing commitVisibility here would actually be out-of-order and leave the
// activity in a bad state.
if (!visibleAtTransitionEnd && !ar.isVisibleRequested()) {
// TODO (b/243755838) Create a screen off transition to correct the visible status
// of activities.
final boolean isScreenOff = ar.mDisplayContent == null
|| ar.mDisplayContent.getDisplayInfo().state == Display.STATE_OFF;
if ((!visibleAtTransitionEnd || isScreenOff) && !ar.isVisibleRequested()) {
final boolean commitVisibility = !checkEnterPipOnFinish(ar);
// Avoid commit visibility if entering pip or else we will get a sudden
// "flash" / surface going invisible for a split second.