Camera: Clarify doc for registerAvailabilityCallback

Camera availability callbacks's order matter. If the application runs
the callbacks on an executor, and the executor is implemented using
multiple threads, the order of the callbacks may change.

Test: Build and read docs
Bug: 263235259
Change-Id: I88913215e0545a096958aaba6b7b2b7d73a4f0a0
This commit is contained in:
Shuzhen Wang
2023-01-05 11:58:42 -08:00
parent 99d5281a38
commit ab02e0b1cb

View File

@@ -364,6 +364,23 @@ public final class CameraManager {
* except that it uses {@link java.util.concurrent.Executor} as an argument
* instead of {@link android.os.Handler}.</p>
*
* <p>Note: If the order between some availability callbacks matters, the implementation of the
* executor should handle those callbacks in the same thread to maintain the callbacks' order.
* Some examples are:</p>
*
* <ul>
*
* <li>{@link AvailabilityCallback#onCameraAvailable} and
* {@link AvailabilityCallback#onCameraUnavailable} of the same camera ID.</li>
*
* <li>{@link AvailabilityCallback#onCameraAvailable} or
* {@link AvailabilityCallback#onCameraUnavailable} of a logical multi-camera, and {@link
* AvailabilityCallback#onPhysicalCameraUnavailable} or
* {@link AvailabilityCallback#onPhysicalCameraAvailable} of its physical
* cameras.</li>
*
* </ul>
*
* @param executor The executor which will be used to invoke the callback.
* @param callback the new callback to send camera availability notices to
*