Force unsilence record clients on startInput

We call startRecording unconditionally in startInput, so we must
update the client state to be unsilenced (since we are treating as
such). We subsequently re-update the silence state (with the client
marked as active to dispatch ops) in updateUidStates_l.

This fixes an issue where we call startRecording for a silenced client,
then call it again when it moves to unsilenced when the client is active.
Since startRecording is ref-counted, this leaves the client in the
recording state leading to incorrect appop attributions.

Bug: 279905816
Bug: 281485019
Test: Manual verification of repro cases + verbose log analysis
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:e7720b379bfaba648ab6d85c4c2df6f03ec854d3)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:2951ad10a6641f9b3554d674877ad314e8cc011f)
Merged-In: I31d50457ca8adae577407a28d4d4c0e8582bac5d
Change-Id: I31d50457ca8adae577407a28d4d4c0e8582bac5d
1 file changed