Merge "Allow listening for noted Ops if app is sampled for Stack trace collection." into rvc-dev

This commit is contained in:
Stanislav Zholnin
2020-04-20 15:21:10 +00:00
committed by Android (Google) Code Review

View File

@@ -233,12 +233,9 @@ public class AppOpsManager {
}
private void reportStackTraceIfNeeded(@NonNull SyncNotedAppOp op) {
if (sConfig.getSampledOpCode() == OP_NONE
&& sConfig.getExpirationTimeSinceBootMillis()
>= SystemClock.elapsedRealtime()) {
if (!isCollectingStackTraces()) {
return;
}
MessageSamplingConfig config = sConfig;
if (leftCircularDistance(strOpToOp(op.getOp()), config.getSampledOpCode(),
_NUM_OP) <= config.getAcceptableLeftDistance()
@@ -8181,7 +8178,22 @@ public class AppOpsManager {
* @hide
*/
public static boolean isListeningForOpNoted() {
return sOnOpNotedCallback != null;
return sOnOpNotedCallback != null || isCollectingStackTraces();
}
/**
* @return {@code true} iff the process is currently sampled for stacktrace collection.
*
* @see #setOnOpNotedCallback
*
* @hide
*/
private static boolean isCollectingStackTraces() {
if (sConfig.getSampledOpCode() == OP_NONE &&
sConfig.getExpirationTimeSinceBootMillis() >= SystemClock.elapsedRealtime()) {
return false;
}
return true;
}
/**