Merge "StateTracker handles active state changes" into rvc-dev

This commit is contained in:
Christine Tsai
2020-05-29 13:57:20 +00:00
committed by Android (Google) Code Review
2 changed files with 7 additions and 3 deletions

View File

@@ -187,8 +187,9 @@ void ValueMetricProducer::onStateChanged(int64_t eventTimeNs, int32_t atomId,
VLOG("ValueMetric %lld onStateChanged time %lld, State %d, key %s, %d -> %d",
(long long)mMetricId, (long long)eventTimeNs, atomId, primaryKey.toString().c_str(),
oldState.mValue.int_value, newState.mValue.int_value);
// If condition is not true, we do not need to pull for this state change.
if (mCondition != ConditionState::kTrue) {
// If condition is not true or metric is not active, we do not need to pull
// for this state change.
if (mCondition != ConditionState::kTrue || !mIsActive) {
return;
}

View File

@@ -329,7 +329,10 @@ void OringDurationTracker::onConditionChanged(bool condition, const int64_t time
void OringDurationTracker::onStateChanged(const int64_t timestamp, const int32_t atomId,
const FieldValue& newState) {
// If no keys are being tracked, update the current state key and return.
// Nothing needs to be done on a state change if we have not seen a start
// event, the metric is currently not active, or condition is false.
// For these cases, no keys are being tracked in mStarted, so update
// the current state key and return.
if (mStarted.empty()) {
updateCurrentStateKey(atomId, newState);
return;