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

Commit 46f8c13e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix ConcurrentModification in onUidStateChanged" into rvc-qpr-dev

parents acccd057 1ebf7dca
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -1011,10 +1011,11 @@ public class AppOpsService extends IAppOpsService.Stub {
            }

            int numInProgressEvents = mInProgressEvents.size();
            List<IBinder> binders = new ArrayList<>(mInProgressEvents.keySet());
            for (int i = 0; i < numInProgressEvents; i++) {
                InProgressStartOpEvent event = mInProgressEvents.valueAt(i);
                InProgressStartOpEvent event = mInProgressEvents.get(binders.get(i));

                if (event.getUidState() != newState) {
                if (event != null && event.getUidState() != newState) {
                    try {
                        // Remove all but one unfinished start count and then call finished() to
                        // remove start event object
@@ -1025,7 +1026,10 @@ public class AppOpsService extends IAppOpsService.Stub {
                        // Call started() to add a new start event object and then add the
                        // previously removed unfinished start counts back
                        started(event.getClientId(), newState, false);
                        event.numUnfinishedStarts += numPreviousUnfinishedStarts - 1;
                        InProgressStartOpEvent newEvent = mInProgressEvents.get(binders.get(i));
                        if (newEvent != null) {
                            newEvent.numUnfinishedStarts += numPreviousUnfinishedStarts - 1;
                        }
                    } catch (RemoteException e) {
                        if (DEBUG) Slog.e(TAG, "Cannot switch to new uidState " + newState);
                    }