diff options
| -rw-r--r-- | services/core/java/com/android/server/appop/AppOpsService.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index a23b5eb50b15..13dc444dc44b 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -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 + "(" |