* <p>Switching between or enabling AF modes ({@link CaptureRequest#CONTROL_AF_MODE android.control.afMode}) always
* resets the AF state to INACTIVE. Similarly, switching between {@link CaptureRequest#CONTROL_MODE android.control.mode},
* or {@link CaptureRequest#CONTROL_SCENE_MODE android.control.sceneMode} if <code>{@link CaptureRequest#CONTROL_MODE android.control.mode} == USE_SCENE_MODE</code> resets all
@@ -529,6 +577,48 @@ public final class CaptureResult extends CameraMetadata {
* </tr>
* </tbody>
* </table>
* <p>For the above table, the camera device may skip reporting any state changes that happen
* without application intervention (i.e. mode switch, trigger, locking). Any state that
* can be skipped in that manner is called a transient state.</p>
* <p>For example, for these AF modes (AF_MODE_AUTO and AF_MODE_MACRO), in addition to the
* state transitions listed in above table, it is also legal for the camera device to skip
* one or more transient states between two results. See below table for examples:</p>
* <table>
* <thead>
* <tr>
* <th align="center">State</th>
* <th align="center">Transition Cause</th>
* <th align="center">New State</th>
* <th align="center">Notes</th>
* </tr>
* </thead>
* <tbody>
* <tr>
* <td align="center">INACTIVE</td>
* <td align="center">AF_TRIGGER</td>
* <td align="center">FOCUSED_LOCKED</td>
* <td align="center">Focus is already good or good after a scan, lens is now locked.</td>
* </tr>
* <tr>
* <td align="center">INACTIVE</td>
* <td align="center">AF_TRIGGER</td>
* <td align="center">NOT_FOCUSED_LOCKED</td>
* <td align="center">Focus failed after a scan, lens is now locked.</td>
* </tr>
* <tr>
* <td align="center">FOCUSED_LOCKED</td>
* <td align="center">AF_TRIGGER</td>
* <td align="center">FOCUSED_LOCKED</td>
* <td align="center">Focus is already good or good after a scan, lens is now locked.</td>
* </tr>
* <tr>
* <td align="center">NOT_FOCUSED_LOCKED</td>
* <td align="center">AF_TRIGGER</td>
* <td align="center">FOCUSED_LOCKED</td>
* <td align="center">Focus is good after a scan, lens is not locked.</td>
* </tr>
* </tbody>
* </table>
* <p>When {@link CaptureRequest#CONTROL_AF_MODE android.control.afMode} is AF_MODE_CONTINUOUS_VIDEO:</p>
* <table>
* <thead>
@@ -735,6 +825,41 @@ public final class CaptureResult extends CameraMetadata {
* </tr>
* </tbody>
* </table>
* <p>When switch between AF_MODE_CONTINUOUS_* (CAF modes) and AF_MODE_AUTO/AF_MODE_MACRO
* (AUTO modes), the initial INACTIVE or PASSIVE_SCAN states may be skipped by the
* camera device. When a trigger is included in a mode switch request, the trigger
* will be evaluated in the context of the new mode in the request.