Continue searching for device state after exception

Instead of returning if a sensor value hasn't returned
we continue to look for a state that satisfy's
the current device configuration.

This fixes scenarios where some sensors return values
much faster than others on startup, and certain
states may have their conditions met.

Bug: 257292818
Test: Manual
Change-Id: I1796a682f0fa82ab9cba39e496369f59fd9c5721
This commit is contained in:
Kenneth Ford
2022-12-05 19:47:51 +00:00
parent b28a5b9901
commit e742c1defa

View File

@@ -378,13 +378,14 @@ public final class DeviceStateProviderImpl implements DeviceStateProvider,
try {
conditionSatisfied = mStateConditions.get(state).getAsBoolean();
} catch (IllegalStateException e) {
// Failed to compute the current state based on current available data. Return
// Failed to compute the current state based on current available data. Continue
// with the expectation that notifyDeviceStateChangedIfNeeded() will be called
// when a callback with the missing data is triggered.
// when a callback with the missing data is triggered. May trigger another state
// change if another state is satisfied currently.
if (DEBUG) {
Slog.d(TAG, "Unable to check current state", e);
}
return;
continue;
}
if (conditionSatisfied) {