Merge "Fix issue #129936402: Runtime restart occurs when suspending an app..."

This commit is contained in:
TreeHugger Robot
2019-04-04 21:43:35 +00:00
committed by Android (Google) Code Review

View File

@@ -782,13 +782,20 @@ public class AppOpsService extends IAppOpsService.Stub {
final int[] changedUids = intent.getIntArrayExtra(Intent.EXTRA_CHANGED_UID_LIST);
final String[] changedPkgs = intent.getStringArrayExtra(
Intent.EXTRA_CHANGED_PACKAGE_LIST);
final ArraySet<ModeCallback> callbacks = mOpModeWatchers.get(OP_PLAY_AUDIO);
ArraySet<ModeCallback> callbacks;
synchronized (AppOpsService.this) {
callbacks = mOpModeWatchers.get(OP_PLAY_AUDIO);
if (callbacks == null) {
return;
}
callbacks = new ArraySet<>(callbacks);
}
for (int i = 0; i < changedUids.length; i++) {
final int changedUid = changedUids[i];
final String changedPkg = changedPkgs[i];
// We trust packagemanager to insert matching uid and packageNames in the extras
mHandler.sendMessage(PooledLambda.obtainMessage(AppOpsService::notifyOpChanged,
AppOpsService.this, callbacks, OP_PLAY_AUDIO, changedUid, changedPkg));
// We trust packagemanager to insert matching uid and packageNames in the
// extras
notifyOpChanged(callbacks, OP_PLAY_AUDIO, changedUid, changedPkg);
}
}
}, packageSuspendFilter);