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

Commit 7258ba53 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix StageCoordinator unexpected onDisplayAreaVanished"

parents 17da00b9 011e10f2
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();
                    }