Camera: Move app ops to start/stop of streaming
A camera can be open but not streaming data. While most applications
immediately start streaming data, it can be useful to simply open the
camera early to hide some of the startup latency.
Historically, the camera service has reported camera app ops as
starting when the device is open, and stopping when the device closes.
With camera app op state becoming more directly visible to end users
via camera muting and camera usage notifications, it's useful to
narrow the scope of appops reporting to when the camera is actually
streaming frames, which is the time that's privacy-sensitive.
Here, the device-level status tracker is used to report idle and
active state to the client class, which then reports to appops
accordingly. The same source is used for both idle and active to
ensure that there's no race condition possible that might cause
desynchronization of client state.
Bug: 185798362
Test: Manual testing with TestingCamera1 and 2, Camera CTS continues to pass
Change-Id: Ie2537e66603acfead20d69cf0fc5299462c0e9e4
8 files changed