Implement CarEvsService state machine

This change updates CarEvsService implementation as designed at
go/aaos-car-evs-service that defines CarEvsService as the state machine
with below 4 states.
- UNAVAILABLE: CarEvsService is not connected to the native EVS service.
    Any service requests will be declined.
- INACTIVE: CarEvsService has a valid, live connection to the native EVS
    service and ready for service requests.
- REQUESTED: CarEvsService has received a request to start one of
    available camera services from the System UI.
- ACTIVE: CarEvsService is actively streaming a video from an active
    camera service and forwarding frames and events to a service
    requestor.

Bug: 162894134
Fix: 179498566
Test: atest CarServiceTest:CarEvsManagerTest -c
Change-Id: I315f87dc9f5d24b7fdc6891835f1d499cfdff851
Merged-In: I315f87dc9f5d24b7fdc6891835f1d499cfdff851
(cherry picked from commit 953c0fc975a4a4e50f6f81821c6d700cabf1fe18)
2 files changed
tree: 05bb3e16b3a2f4e5dd504d3952c1d9ede5837361
  1. car-admin-ui-lib/
  2. car-internal-lib/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. cpp/
  10. data/
  11. experimental/
  12. FrameworkPackageStubs/
  13. obd2-lib/
  14. packages/
  15. procfs-inspector/
  16. service/
  17. tests/
  18. tools/
  19. user/
  20. vehicle-hal-support-lib/
  21. .clang-format
  22. .gitignore
  23. Android.mk
  24. CleanSpec.mk
  25. CPPLINT.cfg
  26. OWNERS
  27. PREUPLOAD.cfg
  28. README.md
  29. TEST_MAPPING
README.md

Native (C++) code format is required to be compatible with .clang-format file. Run

git clang-format --style=file --extension='h,cpp,cc' HEAD~

Note that clang-format is not desirable for Android java files. Therefore the command line above is limited to specific extensions.