Fix gaze service creation through intent

The zero arg constructor is necessary to so that bindServiceAsUser
can properly start the service.

The GazeSupplier can't assume that it will get a Context from a
constructor, so I made some changes related to that.

The additional tests are related to this instantion:
- GazeDriverAwarenessSupplier test validates that the service can
be created from an intent, which requires a zero arg constructor.
- Driver Distraction Service test that validates that the strings
specified in the config are all services that can be bound to
with the proper binder type.
- Driver Distraction Service test that validates the init logic,
and tests that the service attempts to bind to the services
declared in the config.

There's no end-to-end test here. I'd like to have one, but that
may be better suited for a CTS test.

Bug: 150327895
Test: atest DriverDistractionExperimentalFeatureServiceTest
Change-Id: I5a81ee3e3f7659a042656575d31de3d9a299abb1
6 files changed
tree: f500a87934b8521af863df14b93af482d7a16c7c
  1. car-bugreportd/
  2. car-default-input-service/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. computepipe/
  10. EncryptionRunner/
  11. evs/
  12. experimental/
  13. FrameworkPackageStubs/
  14. obd2-lib/
  15. procfs-inspector/
  16. service/
  17. surround_view/
  18. tests/
  19. tools/
  20. user/
  21. vehicle-hal-support-lib/
  22. watchdog/
  23. .clang-format
  24. .gitignore
  25. Android.mk
  26. CleanSpec.mk
  27. CPPLINT.cfg
  28. OWNERS
  29. PREUPLOAD.cfg
  30. README.md
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.