Camera2: Add SDK annotations
- Annotate everything with @NonNull, @Nullable
- Annotate a few @IntRange
- Annotate a few @IntDef
- Most metadata enums probably canont be annotated usefully,
since get/set() are generic and the annotation system
can't yet manage that.
- Plus metadata annotations need to be auto-generated anyway
- Also add explicit null check to prepare's surface argument
- Also update docs of getCameraCharacteristics to match reality
Bug: 21029463
Change-Id: Ifd81b2a782e29ad069fe25c7db4a1fda73dabcd7
diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java
index 0277c5b..f4017d0 100644
--- a/core/java/android/hardware/camera2/CaptureResult.java
+++ b/core/java/android/hardware/camera2/CaptureResult.java
@@ -16,6 +16,8 @@
package android.hardware.camera2;
+import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.hardware.camera2.impl.CameraMetadataNative;
import android.hardware.camera2.impl.CaptureResultExtras;
import android.hardware.camera2.impl.PublicKey;
@@ -102,6 +104,7 @@
*
* @return String representation of the key name
*/
+ @NonNull
public String getName() {
return mKey.getName();
}
@@ -216,6 +219,7 @@
* @param key The result field to read.
* @return The value of that key, or {@code null} if the field is not set.
*/
+ @Nullable
public <T> T get(Key<T> key) {
T value = mResults.get(key);
if (VERBOSE) Log.v(TAG, "#get for Key = " + key.getName() + ", returned value = " + value);
@@ -259,6 +263,7 @@
* {@inheritDoc}
*/
@Override
+ @NonNull
public List<Key<?>> getKeys() {
// Force the javadoc for this function to show up on the CaptureResult page
return super.getKeys();
@@ -285,6 +290,7 @@
*
* @return The request associated with this result. Never {@code null}.
*/
+ @NonNull
public CaptureRequest getRequest() {
return mRequest;
}