tree edb235f5ceade1f07be9760705f153a81fddcabd
parent 7c2e56db91667dbe9bb6d8152911e6a99f71168c
author Alexander Martinz <amartinz@shiftphones.com> 1583174819 +0100
committer Alexander Martinz <amartinz@shiftphones.com> 1583335313 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEioN3RtFSeUXyJOKbzxW92aMhqbIFAl5fx5EACgkQzxW92aMh
 qbIdMw/9EG/kdCpWRfp8wzyUxYp0AK7PqnXlA1h9E/qkbHI3raOkBs4TBzH2NNY/
 SUybeH+eXsqOMr8uQGYPyuFlbPYpQDY5x4UL1Dc6x8WUyW0QNjqQDHY0/qmN6Kt2
 4TVD2trXZE+UNFCJE99cZUeDNq+YXcyRFSia90VR6mvP5GCprPumyGx2jjcjkUey
 CHl8neH1C5R5U0d2c/JPZXSdmeFc7mB3V09iFDS/hnze8Wz6ZaPWGR7iTL1noBbh
 Kmt9ibAPv+niEb2sOquLC5jVy9SsWKfksMZf2amqNp3Y3rCv+cUa3VlWzpRj4qLW
 tAGp8/0zRoO0CuH4livBYcAmpZ9JtgBC3eXp8g4Dqc4m6CentDA0txyR70YF1Zjq
 m0QYABpVtrVCW4lp9HW+HJT4KRkuerU7fzrjvlV7UawL4XUWjOe9PRNXCE/Mprr0
 gTsdEVrq4hTndA83EhS3KAy2qSscVoG64PSVUq3YeGkk19IPfen37Mso0+61YLPI
 8dLWTxo+tlezdqcPOR//33sTrhrVIUadVpkkWYO9Df8+CAjH/x8TJwT7dfN2u4zV
 0jOffJ3rCM+Or9Vapv8wE6pOom181G+qVWoomcX8ZbP7nIBq7P/K8RhODi6DyGF/
 Bl0SbgtAYAtHVVhx6xxDLLQDHvguTT+4Qb0SYLGyul8ZFFe0wZI=
 =L5vW
 -----END PGP SIGNATURE-----

Implement enough of the stub to get it to work

Try to get apps using CameraX extensions running without crashing
so we can ship the library in the system image already to make future
development easier.

To achieve that:
 - Return false for all "isSupported(...)" calls until we have
   actually implemented them.
 - At ExtensionVersionImpl just forward the version passed in to
   mark it as supported.

Note: This is work in progress and CameraX still has not had a stable
      release yet. If you plan to base your work on this, do not ship
      it in production!

Test: ./build.sh androidx.camera.extensions.impl --qssi_only
Test: ./build.sh androidx.camera.extensions.impl.xml --qssi_only
Test: Enable overlayfs and push the generated xml, jar and dex files
Test: Open Shutter, ensure it does not crash and works
Change-Id: I9df65e0558a232a0ce8e8ee061f8726abc910c3f
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
