Merge "Fix StageCoordinator unexpected onDisplayAreaVanished" am: 7258ba537d am: e102015259
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1906212 Change-Id: I3bb39073516dd8f1a0a6e382687487b3c9f80d7d
This commit is contained in:
@@ -65,7 +65,16 @@ public class DisplayAreaOrganizerController extends IDisplayAreaOrganizerControl
|
|||||||
@Override
|
@Override
|
||||||
public void binderDied() {
|
public void binderDied() {
|
||||||
synchronized (mGlobalLock) {
|
synchronized (mGlobalLock) {
|
||||||
mOrganizersByFeatureIds.remove(mFeature).destroy();
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -172,7 +181,7 @@ public class DisplayAreaOrganizerController extends IDisplayAreaOrganizerControl
|
|||||||
organizer.asBinder(), uid);
|
organizer.asBinder(), uid);
|
||||||
mOrganizersByFeatureIds.entrySet().removeIf((entry) -> {
|
mOrganizersByFeatureIds.entrySet().removeIf((entry) -> {
|
||||||
final boolean matches = entry.getValue().mOrganizer.asBinder()
|
final boolean matches = entry.getValue().mOrganizer.asBinder()
|
||||||
== organizer.asBinder();
|
.equals(organizer.asBinder());
|
||||||
if (matches) {
|
if (matches) {
|
||||||
entry.getValue().destroy();
|
entry.getValue().destroy();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user