diff options
| -rw-r--r-- | core/api/current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/impl/CameraMetadataNative.java | 10 | ||||
| -rw-r--r-- | core/java/android/hardware/camera2/params/Capability.java | 62 |
3 files changed, 36 insertions, 38 deletions
diff --git a/core/api/current.txt b/core/api/current.txt index 8520e757bf8b..17e0e56c1c2d 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -18154,7 +18154,7 @@ package android.hardware.camera2.params { } public final class Capability { - ctor public Capability(int, int, int, float, float); + ctor public Capability(int, @NonNull android.util.Size, @NonNull android.util.Range<java.lang.Float>); method @NonNull public android.util.Size getMaxStreamingSize(); method public int getMode(); method @NonNull public android.util.Range<java.lang.Float> getZoomRatioRange(); diff --git a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java index 468e6041eb73..ee12df547291 100644 --- a/core/java/android/hardware/camera2/impl/CameraMetadataNative.java +++ b/core/java/android/hardware/camera2/impl/CameraMetadataNative.java @@ -88,8 +88,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; -import java.util.Map; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.Set; @@ -1734,12 +1734,12 @@ public class CameraMetadataNative implements Parcelable { int height = maxSizes[3 * i + 2]; if (mode != CameraMetadata.CONTROL_EXTENDED_SCENE_MODE_DISABLED && j < numExtendedSceneModeZoomRanges) { - capabilities[i] = new Capability(mode, width, height, zoomRanges[2 * j], - zoomRanges[2 * j + 1]); + capabilities[i] = new Capability(mode, new Size(width, height), + new Range<Float>(zoomRanges[2 * j], zoomRanges[2 * j + 1])); j++; } else { - capabilities[i] = new Capability(mode, width, height, modeOffMinZoomRatio, - modeOffMaxZoomRatio); + capabilities[i] = new Capability(mode, new Size(width, height), + new Range<Float>(modeOffMinZoomRatio, modeOffMaxZoomRatio)); } } diff --git a/core/java/android/hardware/camera2/params/Capability.java b/core/java/android/hardware/camera2/params/Capability.java index fd71c82817f5..a015f720241f 100644 --- a/core/java/android/hardware/camera2/params/Capability.java +++ b/core/java/android/hardware/camera2/params/Capability.java @@ -40,10 +40,8 @@ public final class Capability { public static final int COUNT = 3; private final int mMode; - private final int mMaxStreamingWidth; - private final int mMaxStreamingHeight; - private final float mMinZoomRatio; - private final float mMaxZoomRatio; + private final Size mMaxStreamingSize; + private final Range<Float> mZoomRatioRange; /** * Create a new Capability object. @@ -57,29 +55,30 @@ public final class Capability { * 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 - * @param minZoomRatio the minimum zoom ratio this mode supports - * @param maxZoomRatio the maximum zoom ratio this mode supports + * @param maxStreamingSize The maximum streaming size for this mode + * @param zoomRatioRange the minimum/maximum zoom ratio this mode supports * - * @throws IllegalArgumentException if any of the argument is not valid + * @throws IllegalArgumentException if any of the arguments are not valid */ - public Capability(int mode, int maxStreamingWidth, int maxStreamingHeight, - float minZoomRatio, float maxZoomRatio) { + public Capability(int mode, @NonNull Size maxStreamingSize, + @NonNull Range<Float> zoomRatioRange) { mMode = mode; - mMaxStreamingWidth = checkArgumentNonnegative(maxStreamingWidth, - "maxStreamingWidth must be nonnegative"); - mMaxStreamingHeight = checkArgumentNonnegative(maxStreamingHeight, - "maxStreamingHeight must be nonnegative"); + checkArgumentNonnegative(maxStreamingSize.getWidth(), + "maxStreamingSize.getWidth() must be nonnegative"); + checkArgumentNonnegative(maxStreamingSize.getHeight(), + "maxStreamingSize.getHeight() must be nonnegative"); + mMaxStreamingSize = maxStreamingSize; - if (minZoomRatio > maxZoomRatio) { - throw new IllegalArgumentException("minZoomRatio " + minZoomRatio - + " is greater than maxZoomRatio " + maxZoomRatio); + if (zoomRatioRange.getLower() > zoomRatioRange.getUpper()) { + throw new IllegalArgumentException("zoomRatioRange.getLower() " + + zoomRatioRange.getLower() + " is greater than zoomRatioRange.getUpper() " + + zoomRatioRange.getUpper()); } - mMinZoomRatio = checkArgumentPositive(minZoomRatio, - "minZoomRatio must be positive"); - mMaxZoomRatio = checkArgumentPositive(maxZoomRatio, - "maxZoomRatio must be positive"); + checkArgumentPositive(zoomRatioRange.getLower(), + "zoomRatioRange.getLower() must be positive"); + checkArgumentPositive(zoomRatioRange.getUpper(), + "zoomRatioRange.getUpper() must be positive"); + mZoomRatioRange = zoomRatioRange; } /** @@ -100,7 +99,7 @@ public final class Capability { * @return a new {@link Size} with non-negative width and height */ public @NonNull Size getMaxStreamingSize() { - return new Size(mMaxStreamingWidth, mMaxStreamingHeight); + return mMaxStreamingSize; } /** @@ -109,7 +108,7 @@ public final class Capability { * @return The supported zoom ratio range supported by this capability */ public @NonNull Range<Float> getZoomRatioRange() { - return new Range<Float>(mMinZoomRatio, mMaxZoomRatio); + return mZoomRatioRange; } @@ -132,10 +131,8 @@ public final class Capability { if (obj instanceof Capability) { final Capability other = (Capability) obj; return (mMode == other.mMode - && mMaxStreamingWidth == other.mMaxStreamingWidth - && mMaxStreamingHeight == other.mMaxStreamingHeight - && mMinZoomRatio == other.mMinZoomRatio - && mMaxZoomRatio == other.mMaxZoomRatio); + && mMaxStreamingSize.equals(other.mMaxStreamingSize) + && mZoomRatioRange.equals(other.mZoomRatioRange)); } return false; } @@ -145,8 +142,9 @@ public final class Capability { */ @Override public int hashCode() { - return HashCodeHelpers.hashCode(mMode, mMaxStreamingWidth, mMaxStreamingHeight, - mMinZoomRatio, mMaxZoomRatio); + return HashCodeHelpers.hashCode(mMode, mMaxStreamingSize.getWidth(), + mMaxStreamingSize.getHeight(), mZoomRatioRange.getLower(), + mZoomRatioRange.getUpper()); } /** @@ -158,7 +156,7 @@ public final class Capability { @Override public String toString() { return String.format("(mode:%d, maxStreamingSize:%d x %d, zoomRatio: %f-%f)", - mMode, mMaxStreamingWidth, mMaxStreamingHeight, mMinZoomRatio, - mMaxZoomRatio); + mMode, mMaxStreamingSize.getWidth(), mMaxStreamingSize.getHeight(), + mZoomRatioRange.getLower(), mZoomRatioRange.getUpper()); } } |