Merge "Unhide some camera2 data class constructors to tests."
This commit is contained in:
committed by
Android (Google) Code Review
commit
8cbc8a2c42
@@ -18147,12 +18147,14 @@ package android.hardware.camera2 {
|
||||
package android.hardware.camera2.params {
|
||||
|
||||
public final class BlackLevelPattern {
|
||||
ctor public BlackLevelPattern(@NonNull int[]);
|
||||
method public void copyTo(int[], int);
|
||||
method public int getOffsetForIndex(int, int);
|
||||
field public static final int COUNT = 4; // 0x4
|
||||
}
|
||||
|
||||
public final class Capability {
|
||||
ctor public Capability(int, int, int, float, float);
|
||||
method @NonNull public android.util.Size getMaxStreamingSize();
|
||||
method public int getMode();
|
||||
method @NonNull public android.util.Range<java.lang.Float> getZoomRatioRange();
|
||||
@@ -18167,6 +18169,7 @@ package android.hardware.camera2.params {
|
||||
}
|
||||
|
||||
public final class DeviceStateSensorOrientationMap {
|
||||
ctor public DeviceStateSensorOrientationMap(@NonNull long[]);
|
||||
method public int getSensorOrientation(long);
|
||||
field public static final long FOLDED = 4L; // 0x4L
|
||||
field public static final long NORMAL = 0L; // 0x0L
|
||||
@@ -18201,6 +18204,8 @@ package android.hardware.camera2.params {
|
||||
}
|
||||
|
||||
public final class Face {
|
||||
ctor public Face(@NonNull android.graphics.Rect, int, int, @NonNull android.graphics.Point, @NonNull android.graphics.Point, @NonNull android.graphics.Point);
|
||||
ctor public Face(@NonNull android.graphics.Rect, int);
|
||||
method public android.graphics.Rect getBounds();
|
||||
method public int getId();
|
||||
method public android.graphics.Point getLeftEyePosition();
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.hardware.camera2.params;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -43,13 +44,16 @@ public final class BlackLevelPattern {
|
||||
* a 2x2 pattern corresponding to the color filter arrangement. Offsets are
|
||||
* given in row-column scan order.</p>
|
||||
*
|
||||
* <p>This constructor is public to allow for easier application testing by
|
||||
* creating custom object instances. It's not necessary to construct these
|
||||
* objects during normal use of the camera API.</p>
|
||||
*
|
||||
* @param offsets an array containing a 2x2 pattern of offsets.
|
||||
*
|
||||
* @throws IllegalArgumentException if the given array has an incorrect length.
|
||||
* @throws NullPointerException if the given array is null.
|
||||
* @hide
|
||||
*/
|
||||
public BlackLevelPattern(int[] offsets) {
|
||||
public BlackLevelPattern(@NonNull int[] offsets) {
|
||||
if (offsets == null) {
|
||||
throw new NullPointerException("Null offsets array passed to constructor");
|
||||
}
|
||||
|
||||
@@ -48,6 +48,14 @@ public final class Capability {
|
||||
/**
|
||||
* Create a new Capability object.
|
||||
*
|
||||
* <p>The mode argument can be any integer value. maxStreamingWidth and maxStreamingHeight
|
||||
* must be non-negative, while minZoomRatio and maxZoomRatio must be strictly
|
||||
* positive.</p>
|
||||
*
|
||||
* <p>This constructor is public to allow for easier application testing by
|
||||
* creating custom object instances. It's not necessary to construct these
|
||||
* objects during normal use of the camera API.</p>
|
||||
*
|
||||
* @param mode supported mode for a camera capability.
|
||||
* @param maxStreamingWidth The width of the maximum streaming size for this mode
|
||||
* @param maxStreamingHeight The height of the maximum streaming size for this mode
|
||||
@@ -55,7 +63,6 @@ public final class Capability {
|
||||
* @param maxZoomRatio the maximum zoom ratio this mode supports
|
||||
*
|
||||
* @throws IllegalArgumentException if any of the argument is not valid
|
||||
* @hide
|
||||
*/
|
||||
public Capability(int mode, int maxStreamingWidth, int maxStreamingHeight,
|
||||
float minZoomRatio, float maxZoomRatio) {
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
package android.hardware.camera2.params;
|
||||
|
||||
import android.annotation.LongDef;
|
||||
import android.annotation.NonNull;
|
||||
import android.hardware.camera2.CameraCharacteristics;
|
||||
import android.hardware.camera2.utils.HashCodeHelpers;
|
||||
|
||||
@@ -72,8 +73,19 @@ public final class DeviceStateSensorOrientationMap {
|
||||
/**
|
||||
* Create a new immutable DeviceStateOrientationMap instance.
|
||||
*
|
||||
* <p>The array is a list of pairs of elements (angle, deviceState):</p>
|
||||
*
|
||||
* <code>[angle0, state0, angle1, state1,..., angleN, stateN]</code>
|
||||
*
|
||||
* <p>Each pair describes the camera sensor orientation when the device is in the
|
||||
* matching deviceState. The angle is in degrees, and must be a multiple of 90.</p>
|
||||
*
|
||||
* <p>This constructor takes over the array; do not write to the array afterwards.</p>
|
||||
*
|
||||
* <p>This constructor is public to allow for easier application testing by
|
||||
* creating custom object instances. It's not necessary to construct these
|
||||
* objects during normal use of the camera API.</p>
|
||||
*
|
||||
* @param elements
|
||||
* An array of elements describing the map
|
||||
*
|
||||
@@ -82,10 +94,8 @@ public final class DeviceStateSensorOrientationMap {
|
||||
* invalid element values
|
||||
* @throws NullPointerException
|
||||
* if {@code elements} is {@code null}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public DeviceStateSensorOrientationMap(final long[] elements) {
|
||||
public DeviceStateSensorOrientationMap(@NonNull final long[] elements) {
|
||||
mElements = Objects.requireNonNull(elements, "elements must not be null");
|
||||
if ((elements.length % 2) != 0) {
|
||||
throw new IllegalArgumentException("Device state sensor orientation map length " +
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
package android.hardware.camera2.params;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.graphics.Point;
|
||||
import android.graphics.Rect;
|
||||
import android.hardware.camera2.CameraCharacteristics;
|
||||
@@ -49,12 +51,12 @@ public final class Face {
|
||||
*/
|
||||
public static final int SCORE_MAX = 100;
|
||||
|
||||
private final Rect mBounds;
|
||||
private final int mScore;
|
||||
private final int mId;
|
||||
private final Point mLeftEye;
|
||||
private final Point mRightEye;
|
||||
private final Point mMouth;
|
||||
private Rect mBounds;
|
||||
private int mScore;
|
||||
private int mId;
|
||||
private Point mLeftEye;
|
||||
private Point mRightEye;
|
||||
private Point mMouth;
|
||||
|
||||
/**
|
||||
* Create a new face with all fields set.
|
||||
@@ -67,6 +69,10 @@ public final class Face {
|
||||
* mouthPositions are guaranteed to be {@code null}. Otherwise, each of leftEyePosition,
|
||||
* rightEyePosition, and mouthPosition may be independently null or not-null.</p>
|
||||
*
|
||||
* <p>This constructor is public to allow for easier application testing by
|
||||
* creating custom object instances. It's not necessary to construct these
|
||||
* objects during normal use of the camera API.</p>
|
||||
*
|
||||
* @param bounds Bounds of the face.
|
||||
* @param score Confidence level between {@value #SCORE_MIN}-{@value #SCORE_MAX}.
|
||||
* @param id A unique ID per face visible to the tracker.
|
||||
@@ -81,11 +87,48 @@ public final class Face {
|
||||
* or if id is {@value #ID_UNSUPPORTED} and
|
||||
* leftEyePosition/rightEyePosition/mouthPosition aren't all null,
|
||||
* or else if id is negative.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public Face(Rect bounds, int score, int id,
|
||||
Point leftEyePosition, Point rightEyePosition, Point mouthPosition) {
|
||||
public Face(@NonNull Rect bounds, int score, int id,
|
||||
@NonNull Point leftEyePosition, @NonNull Point rightEyePosition,
|
||||
@NonNull Point mouthPosition) {
|
||||
init(bounds, score, id, leftEyePosition, rightEyePosition, mouthPosition);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new face without the optional fields.
|
||||
*
|
||||
* <p>The id, leftEyePosition, rightEyePosition, and mouthPosition are considered optional.
|
||||
* If the id is {@value #ID_UNSUPPORTED} then the leftEyePosition, rightEyePosition, and
|
||||
* mouthPositions are guaranteed to be {@code null}. Otherwise, each of leftEyePosition,
|
||||
* rightEyePosition, and mouthPosition may be independently null or not-null. When devices
|
||||
* report the value of key {@link CaptureResult#STATISTICS_FACE_DETECT_MODE} as
|
||||
* {@link CameraMetadata#STATISTICS_FACE_DETECT_MODE_SIMPLE} in {@link CaptureResult},
|
||||
* the face id of each face is expected to be {@value #ID_UNSUPPORTED}, the leftEyePosition,
|
||||
* rightEyePosition, and mouthPositions are expected to be {@code null} for each face.</p>
|
||||
*
|
||||
* <p>This constructor is public to allow for easier application testing by
|
||||
* creating custom object instances. It's not necessary to construct these
|
||||
* objects during normal use of the camera API.</p>
|
||||
*
|
||||
* @param bounds Bounds of the face.
|
||||
* @param score Confidence level between {@value #SCORE_MIN}-{@value #SCORE_MAX}.
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* if bounds is {@code null},
|
||||
* or if the confidence is not in the range of
|
||||
* {@value #SCORE_MIN}-{@value #SCORE_MAX}.
|
||||
*/
|
||||
public Face(@NonNull Rect bounds, int score) {
|
||||
init(bounds, score, ID_UNSUPPORTED,
|
||||
/*leftEyePosition*/null, /*rightEyePosition*/null, /*mouthPosition*/null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the object (shared by constructors).
|
||||
*/
|
||||
private void init(@NonNull Rect bounds, int score, int id,
|
||||
@Nullable Point leftEyePosition, @Nullable Point rightEyePosition,
|
||||
@Nullable Point mouthPosition) {
|
||||
checkNotNull("bounds", bounds);
|
||||
if (score < SCORE_MIN || score > SCORE_MAX) {
|
||||
throw new IllegalArgumentException("Confidence out of range");
|
||||
@@ -106,33 +149,6 @@ public final class Face {
|
||||
mMouth = mouthPosition;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new face without the optional fields.
|
||||
*
|
||||
* <p>The id, leftEyePosition, rightEyePosition, and mouthPosition are considered optional.
|
||||
* If the id is {@value #ID_UNSUPPORTED} then the leftEyePosition, rightEyePosition, and
|
||||
* mouthPositions are guaranteed to be {@code null}. Otherwise, each of leftEyePosition,
|
||||
* rightEyePosition, and mouthPosition may be independently null or not-null. When devices
|
||||
* report the value of key {@link CaptureResult#STATISTICS_FACE_DETECT_MODE} as
|
||||
* {@link CameraMetadata#STATISTICS_FACE_DETECT_MODE_SIMPLE} in {@link CaptureResult},
|
||||
* the face id of each face is expected to be {@value #ID_UNSUPPORTED}, the leftEyePosition,
|
||||
* rightEyePosition, and mouthPositions are expected to be {@code null} for each face.</p>
|
||||
*
|
||||
* @param bounds Bounds of the face.
|
||||
* @param score Confidence level between {@value #SCORE_MIN}-{@value #SCORE_MAX}.
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* if bounds is {@code null},
|
||||
* or if the confidence is not in the range of
|
||||
* {@value #SCORE_MIN}-{@value #SCORE_MAX}.
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public Face(Rect bounds, int score) {
|
||||
this(bounds, score, ID_UNSUPPORTED,
|
||||
/*leftEyePosition*/null, /*rightEyePosition*/null, /*mouthPosition*/null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Bounds of the face.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user