Loading services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -929,9 +929,9 @@ class BroadcastQueueModernImpl extends BroadcastQueue { // For ordered broadcast, check if the receivers for the new broadcast is a superset // of those for the previous one as skipping and removing only one of them could result // in an inconsistent state. if (testRecord.ordered || testRecord.prioritized) { if (testRecord.ordered) { return containsAllReceivers(r, testRecord, recordsLookupCache); } else if (testRecord.resultTo != null) { } else if (testRecord.prioritized || testRecord.resultTo != null) { return testRecord.getDeliveryState(testIndex) == DELIVERY_DEFERRED ? r.containsReceiver(testRecord.receivers.get(testIndex)) : containsAllReceivers(r, testRecord, recordsLookupCache); Loading services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -1176,6 +1176,17 @@ public final class BroadcastQueueModernImplTest extends BaseBroadcastQueueTest { verifyPendingRecords(greenQueue, List.of(screenOff, screenOn)); verifyPendingRecords(redQueue, List.of(screenOff)); verifyPendingRecords(blueQueue, List.of(screenOff, screenOn)); final BroadcastRecord screenOffRecord = makeBroadcastRecord(screenOff, screenOnOffOptions, List.of(greenReceiver, redReceiver, blueReceiver), false); screenOffRecord.setDeliveryState(2, BroadcastRecord.DELIVERY_DEFERRED, "testDeliveryGroupPolicy_prioritized_diffReceivers"); mImpl.enqueueBroadcastLocked(screenOffRecord); mImpl.enqueueBroadcastLocked(makeBroadcastRecord(screenOn, screenOnOffOptions, List.of(greenReceiver, blueReceiver), false)); verifyPendingRecords(greenQueue, List.of(screenOff, screenOn)); verifyPendingRecords(redQueue, List.of(screenOff)); verifyPendingRecords(blueQueue, List.of(screenOn)); } /** Loading Loading
services/core/java/com/android/server/am/BroadcastQueueModernImpl.java +2 −2 Original line number Diff line number Diff line Loading @@ -929,9 +929,9 @@ class BroadcastQueueModernImpl extends BroadcastQueue { // For ordered broadcast, check if the receivers for the new broadcast is a superset // of those for the previous one as skipping and removing only one of them could result // in an inconsistent state. if (testRecord.ordered || testRecord.prioritized) { if (testRecord.ordered) { return containsAllReceivers(r, testRecord, recordsLookupCache); } else if (testRecord.resultTo != null) { } else if (testRecord.prioritized || testRecord.resultTo != null) { return testRecord.getDeliveryState(testIndex) == DELIVERY_DEFERRED ? r.containsReceiver(testRecord.receivers.get(testIndex)) : containsAllReceivers(r, testRecord, recordsLookupCache); Loading
services/tests/mockingservicestests/src/com/android/server/am/BroadcastQueueModernImplTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -1176,6 +1176,17 @@ public final class BroadcastQueueModernImplTest extends BaseBroadcastQueueTest { verifyPendingRecords(greenQueue, List.of(screenOff, screenOn)); verifyPendingRecords(redQueue, List.of(screenOff)); verifyPendingRecords(blueQueue, List.of(screenOff, screenOn)); final BroadcastRecord screenOffRecord = makeBroadcastRecord(screenOff, screenOnOffOptions, List.of(greenReceiver, redReceiver, blueReceiver), false); screenOffRecord.setDeliveryState(2, BroadcastRecord.DELIVERY_DEFERRED, "testDeliveryGroupPolicy_prioritized_diffReceivers"); mImpl.enqueueBroadcastLocked(screenOffRecord); mImpl.enqueueBroadcastLocked(makeBroadcastRecord(screenOn, screenOnOffOptions, List.of(greenReceiver, blueReceiver), false)); verifyPendingRecords(greenQueue, List.of(screenOff, screenOn)); verifyPendingRecords(redQueue, List.of(screenOff)); verifyPendingRecords(blueQueue, List.of(screenOn)); } /** Loading