Merge "Fix StageCoordinator unexpected onDisplayAreaVanished"
This commit is contained in:
commit
7258ba537d
@ -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();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user