Add NonNull and Nullable annotations to MtpDevice.
BUG=26758882
Change-Id: I5fa7130b671c71aefca848c109bf37389f57b9da
diff --git a/media/java/android/mtp/MtpDevice.java b/media/java/android/mtp/MtpDevice.java
index 4082778..6970cff 100644
--- a/media/java/android/mtp/MtpDevice.java
+++ b/media/java/android/mtp/MtpDevice.java
@@ -48,7 +48,8 @@
*
* @param device the {@link android.hardware.usb.UsbDevice} for the MTP or PTP device
*/
- public MtpDevice(UsbDevice device) {
+ public MtpDevice(@NonNull UsbDevice device) {
+ Preconditions.checkNotNull(device);
mDevice = device;
}
@@ -61,7 +62,7 @@
* @param connection an open {@link android.hardware.usb.UsbDeviceConnection} for the device
* @return true if the device was successfully opened.
*/
- public boolean open(UsbDeviceConnection connection) {
+ public boolean open(@NonNull UsbDeviceConnection connection) {
boolean result = native_open(mDevice.getDeviceName(), connection.getFileDescriptor());
if (!result) {
connection.close();
@@ -94,7 +95,7 @@
*
* @return the device name
*/
- public String getDeviceName() {
+ public @NonNull String getDeviceName() {
return mDevice.getDeviceName();
}
@@ -110,16 +111,16 @@
}
@Override
- public String toString() {
+ public @NonNull String toString() {
return mDevice.getDeviceName();
}
/**
* Returns the {@link MtpDeviceInfo} for this device
*
- * @return the device info
+ * @return the device info, or null if fetching device info fails
*/
- public MtpDeviceInfo getDeviceInfo() {
+ public @Nullable MtpDeviceInfo getDeviceInfo() {
return native_get_device_info();
}
@@ -127,9 +128,9 @@
* Returns the list of IDs for all storage units on this device
* Information about each storage unit can be accessed via {@link #getStorageInfo}.
*
- * @return the list of storage IDs
+ * @return the list of storage IDs, or null if fetching storage IDs fails
*/
- public int[] getStorageIds() {
+ public @Nullable int[] getStorageIds() {
return native_get_storage_ids();
}
@@ -142,9 +143,9 @@
* @param format the format of the object to return, or zero for all formats
* @param objectHandle the parent object to query, -1 for the storage root,
* or zero for all objects
- * @return the object handles
+ * @return the object handles, or null if fetching object handles fails
*/
- public int[] getObjectHandles(int storageId, int format, int objectHandle) {
+ public @Nullable int[] getObjectHandles(int storageId, int format, int objectHandle) {
return native_get_object_handles(storageId, format, objectHandle);
}
@@ -158,7 +159,7 @@
* {@link MtpObjectInfo#getCompressedSize})
* @return the object's data, or null if reading fails
*/
- public byte[] getObject(int objectHandle, int objectSize) {
+ public @Nullable byte[] getObject(int objectHandle, int objectSize) {
Preconditions.checkArgumentNonnegative(objectSize, "objectSize should not be negative");
return native_get_object(objectHandle, objectSize);
}
@@ -176,7 +177,7 @@
* @param buffer Array to write data.
* @return Size of bytes that are actually read.
*/
- public long getPartialObject(int objectHandle, long offset, long size, byte[] buffer)
+ public long getPartialObject(int objectHandle, long offset, long size, @NonNull byte[] buffer)
throws IOException {
return native_get_partial_object(objectHandle, offset, size, buffer);
}
@@ -197,7 +198,7 @@
* @return Size of bytes that are actually read.
* @see MtpConstants#OPERATION_GET_PARTIAL_OBJECT_64
*/
- public long getPartialObject64(int objectHandle, long offset, long size, byte[] buffer)
+ public long getPartialObject64(int objectHandle, long offset, long size, @NonNull byte[] buffer)
throws IOException {
return native_get_partial_object_64(objectHandle, offset, size, buffer);
}
@@ -212,7 +213,7 @@
* @param objectHandle handle of the object to read
* @return the object's thumbnail, or null if reading fails
*/
- public byte[] getThumbnail(int objectHandle) {
+ public @Nullable byte[] getThumbnail(int objectHandle) {
return native_get_thumbnail(objectHandle);
}
@@ -220,9 +221,9 @@
* Retrieves the {@link MtpStorageInfo} for a storage unit.
*
* @param storageId the ID of the storage unit
- * @return the MtpStorageInfo
+ * @return the MtpStorageInfo, or null if fetching storage info fails
*/
- public MtpStorageInfo getStorageInfo(int storageId) {
+ public @Nullable MtpStorageInfo getStorageInfo(int storageId) {
return native_get_storage_info(storageId);
}
@@ -230,9 +231,9 @@
* Retrieves the {@link MtpObjectInfo} for an object.
*
* @param objectHandle the handle of the object
- * @return the MtpObjectInfo
+ * @return the MtpObjectInfo, or null if fetching object info fails
*/
- public MtpObjectInfo getObjectInfo(int objectHandle) {
+ public @Nullable MtpObjectInfo getObjectInfo(int objectHandle) {
return native_get_object_info(objectHandle);
}
@@ -279,7 +280,7 @@
* {@link android.os.Environment#getExternalStorageDirectory}
* @return true if the file transfer succeeds
*/
- public boolean importFile(int objectHandle, String destPath) {
+ public boolean importFile(int objectHandle, @NonNull String destPath) {
return native_import_file(objectHandle, destPath);
}
@@ -293,7 +294,7 @@
* @param descriptor file descriptor to write the data to for the file transfer.
* @return true if the file transfer succeeds
*/
- public boolean importFile(int objectHandle, ParcelFileDescriptor descriptor) {
+ public boolean importFile(int objectHandle, @NonNull ParcelFileDescriptor descriptor) {
return native_import_file(objectHandle, descriptor.getFd());
}
@@ -308,7 +309,8 @@
* @param descriptor file descriptor to read the data from.
* @return true if the file transfer succeeds
*/
- public boolean sendObject(int objectHandle, long size, ParcelFileDescriptor descriptor) {
+ public boolean sendObject(
+ int objectHandle, long size, @NonNull ParcelFileDescriptor descriptor) {
return native_send_object(objectHandle, size, descriptor.getFd());
}
@@ -319,9 +321,9 @@
* The returned {@link MtpObjectInfo} has the new object handle field filled in.
*
* @param info metadata of the entry
- * @return object info of the created entry or null if the operation failed.
+ * @return object info of the created entry, or null if sending object info fails
*/
- public MtpObjectInfo sendObjectInfo(MtpObjectInfo info) {
+ public @Nullable MtpObjectInfo sendObjectInfo(@NonNull MtpObjectInfo info) {
return native_send_object_info(info);
}
diff --git a/media/jni/android_mtp_MtpDevice.cpp b/media/jni/android_mtp_MtpDevice.cpp
index 1faa0c4..8bcc85f 100644
--- a/media/jni/android_mtp_MtpDevice.cpp
+++ b/media/jni/android_mtp_MtpDevice.cpp
@@ -601,12 +601,12 @@
{
MtpDevice* device = get_device_from_object(env, thiz);
if (!device) {
- return JNI_FALSE;
+ return NULL;
}
// Updating existing objects is not supported.
if (env->GetIntField(info, field_objectInfo_handle) != -1) {
- return JNI_FALSE;
+ return NULL;
}
MtpObjectInfo* object_info = new MtpObjectInfo(-1);