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

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

Change-Id: I1099889cf50cf4403a4fd96af111241b768fa169
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:19:18 +00:00
committed by Automerger Merge Worker

View File

@@ -73,6 +73,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.window.RemoteTransition;
@@ -698,7 +699,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.