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

Commit e1020152 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix StageCoordinator unexpected onDisplayAreaVanished" am: 7258ba53

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

Change-Id: I06310275cae07918c046407f4b92a06023201c60
parents 8aa558e2 7258ba53
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -65,10 +65,19 @@ public class DisplayAreaOrganizerController extends IDisplayAreaOrganizerControl
        @Override
        public void binderDied() {
            synchronized (mGlobalLock) {
                IDisplayAreaOrganizer featureOrganizer = getOrganizerByFeature(mFeature);
                if (featureOrganizer != null) {
                    IBinder organizerBinder = featureOrganizer.asBinder();
                    if (!organizerBinder.equals(mOrganizer.asBinder()) &&
                               organizerBinder.isBinderAlive()) {
                        Slog.d(TAG, "Dead organizer replaced for feature=" + mFeature);
                        return;
                    }
                    mOrganizersByFeatureIds.remove(mFeature).destroy();
                }
            }
        }
    }

    private class DisplayAreaOrganizerState {
        private final IDisplayAreaOrganizer mOrganizer;
@@ -172,7 +181,7 @@ public class DisplayAreaOrganizerController extends IDisplayAreaOrganizerControl
                        organizer.asBinder(), uid);
                mOrganizersByFeatureIds.entrySet().removeIf((entry) -> {
                    final boolean matches = entry.getValue().mOrganizer.asBinder()
                            == organizer.asBinder();
                            .equals(organizer.asBinder());
                    if (matches) {
                        entry.getValue().destroy();
                    }