Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fdea46e authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Add a failsafe check to prevent display surfaces from remaining hidden"...

Merge "Add a failsafe check to prevent display surfaces from remaining hidden" into udc-qpr-dev am: 6128a3ab am: 67637749

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



Change-Id: Ib527552723f48d109a3114c914bc3b29d66ad9f6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 49926fbc 67637749
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -1545,6 +1545,17 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
            mTargetDisplays.add(dc);
        }

        for (int i = 0; i < mTargets.size(); ++i) {
            final DisplayArea da = mTargets.get(i).mContainer.asDisplayArea();
            if (da == null) continue;
            if (da.isVisibleRequested()) {
                mController.mValidateDisplayVis.remove(da);
            } else {
                // In case something accidentally hides a displayarea and nothing shows it again.
                mController.mValidateDisplayVis.add(da);
            }
        }

        if (mOverrideOptions != null) {
            info.setAnimationOptions(mOverrideOptions);
            if (mOverrideOptions.getType() == ANIM_OPEN_CROSS_PROFILE_APPS) {
+16 −0
Original line number Diff line number Diff line
@@ -149,6 +149,13 @@ class TransitionController {
     */
    final ArrayList<ActivityRecord> mValidateActivityCompat = new ArrayList<>();

    /**
     * List of display areas which were last sent as "closing"-type and haven't yet had a
     * corresponding "opening"-type transition. A mismatch here is usually related to issues in
     * keyguard unlock.
     */
    final ArrayList<DisplayArea> mValidateDisplayVis = new ArrayList<>();

    /**
     * Currently playing transitions (in the order they were started). When finished, records are
     * removed from this list.
@@ -941,6 +948,15 @@ class TransitionController {
            ar.getSyncTransaction().setPosition(ar.getSurfaceControl(), tmpPos.x, tmpPos.y);
        }
        mValidateActivityCompat.clear();
        for (int i = 0; i < mValidateDisplayVis.size(); ++i) {
            final DisplayArea da = mValidateDisplayVis.get(i);
            if (!da.isAttached() || da.getSurfaceControl() == null) continue;
            if (da.isVisibleRequested()) {
                Slog.e(TAG, "DisplayArea became visible outside of a transition: " + da);
                da.getSyncTransaction().show(da.getSurfaceControl());
            }
        }
        mValidateDisplayVis.clear();
    }

    /**