Ensure paused ops are finished correctly
Fixes: 187976515 Test: atest SensorPrivacyCameraTest,SensorPrivacyMicrophoneTest Change-Id: I0f9a752d30a3330e58ff85396130d07297350533
This commit is contained in:
@@ -1085,7 +1085,7 @@ public class AppOpsService extends IAppOpsService.Stub {
|
||||
}
|
||||
|
||||
// no need to record a paused event finishing.
|
||||
InProgressStartOpEvent event = mInProgressEvents.valueAt(indexOfToken);
|
||||
InProgressStartOpEvent event = mPausedInProgressEvents.valueAt(indexOfToken);
|
||||
event.numUnfinishedStarts--;
|
||||
if (event.numUnfinishedStarts == 0) {
|
||||
mPausedInProgressEvents.removeAt(indexOfToken);
|
||||
@@ -1282,6 +1282,10 @@ public class AppOpsService extends IAppOpsService.Stub {
|
||||
return mInProgressEvents != null;
|
||||
}
|
||||
|
||||
public boolean isPaused() {
|
||||
return mPausedInProgressEvents != null;
|
||||
}
|
||||
|
||||
boolean hasAnyTime() {
|
||||
return (mAccessEvents != null && mAccessEvents.size() > 0)
|
||||
|| (mRejectEvents != null && mRejectEvents.size() > 0);
|
||||
@@ -3953,7 +3957,7 @@ public class AppOpsService extends IAppOpsService.Stub {
|
||||
return;
|
||||
}
|
||||
|
||||
if (attributedOp.isRunning()) {
|
||||
if (attributedOp.isRunning() || attributedOp.isPaused()) {
|
||||
attributedOp.finished(clientId);
|
||||
} else {
|
||||
Slog.e(TAG, "Operation not started: uid=" + uid + " pkg=" + packageName + "("
|
||||
|
||||
Reference in New Issue
Block a user