DO NOT MERGE Prevent isEnabled from mutating state

When isEnabled sees a user it has not encountered before it may send out
client updates, which can result in the client list and associated state
being mutated unexpectedly, causing ConcurrentModificationExceptions. In
order to prevent this, we now mutate the state asynchronously.

Bug: 171910679
Test: unable to verify this manually, as this is a near impossible bug
to reproduce intentionally

Change-Id: I64ccdcdd50294b875d4ed22de60bff0823812ad7
1 file changed