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

Change-Id: I4b25c315fc7989981246c360e70b3775edde1524
This commit is contained in:
Stanislav Zholnin
2020-04-20 15:28:12 +00:00
committed by Automerger Merge Worker

View File

@@ -233,12 +233,9 @@ public class AppOpsManager {
} }
private void reportStackTraceIfNeeded(@NonNull SyncNotedAppOp op) { private void reportStackTraceIfNeeded(@NonNull SyncNotedAppOp op) {
if (sConfig.getSampledOpCode() == OP_NONE if (!isCollectingStackTraces()) {
&& sConfig.getExpirationTimeSinceBootMillis()
>= SystemClock.elapsedRealtime()) {
return; return;
} }
MessageSamplingConfig config = sConfig; MessageSamplingConfig config = sConfig;
if (leftCircularDistance(strOpToOp(op.getOp()), config.getSampledOpCode(), if (leftCircularDistance(strOpToOp(op.getOp()), config.getSampledOpCode(),
_NUM_OP) <= config.getAcceptableLeftDistance() _NUM_OP) <= config.getAcceptableLeftDistance()
@@ -8181,7 +8178,22 @@ public class AppOpsManager {
* @hide * @hide
*/ */
public static boolean isListeningForOpNoted() { 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;
} }
/** /**