Merge changes from topics "DecodeException_ERROR", "AID_autoStart", "onPartialImage" into pi-dev

am: ceb14e015b

Change-Id: I92ffd12b6e8df360a86733ca99676cd8f470addb
This commit is contained in:
Leon Scroggins
2018-03-22 23:43:38 +00:00
committed by android-build-merger
5 changed files with 54 additions and 33 deletions

View File

@@ -13633,14 +13633,14 @@ package android.graphics {
field public static final int ALLOCATOR_HARDWARE = 3; // 0x3
field public static final int ALLOCATOR_SHARED_MEMORY = 2; // 0x2
field public static final int ALLOCATOR_SOFTWARE = 1; // 0x1
field public static final int ERROR_SOURCE_ERROR = 3; // 0x3
field public static final int ERROR_SOURCE_EXCEPTION = 1; // 0x1
field public static final int ERROR_SOURCE_INCOMPLETE = 2; // 0x2
}
public static final class ImageDecoder.DecodeException extends java.io.IOException {
method public int getError();
method public android.graphics.ImageDecoder.Source getSource();
field public static final int SOURCE_EXCEPTION = 1; // 0x1
field public static final int SOURCE_INCOMPLETE = 2; // 0x2
field public static final int SOURCE_MALFORMED_DATA = 3; // 0x3
}
public static class ImageDecoder.ImageInfo {

View File

@@ -155,6 +155,9 @@ package android.graphics {
public final class ImageDecoder implements java.lang.AutoCloseable {
method public deprecated boolean getAsAlphaMask();
method public deprecated android.graphics.ImageDecoder setAsAlphaMask(boolean);
field public static final deprecated int ERROR_SOURCE_ERROR = 3; // 0x3
field public static final deprecated int ERROR_SOURCE_EXCEPTION = 1; // 0x1
field public static final deprecated int ERROR_SOURCE_INCOMPLETE = 2; // 0x2
}
public static deprecated class ImageDecoder.IncompleteException extends java.io.IOException {

View File

@@ -79,7 +79,7 @@ static jobject throw_exception(JNIEnv* env, ImageDecoder::Error error, const cha
static jobject native_create(JNIEnv* env, std::unique_ptr<SkStream> stream, jobject source) {
if (!stream.get()) {
return throw_exception(env, ImageDecoder::kSourceError, "Failed to create a stream",
return throw_exception(env, ImageDecoder::kSourceMalformedData, "Failed to create a stream",
nullptr, source);
}
std::unique_ptr<ImageDecoder> decoder(new ImageDecoder);
@@ -96,8 +96,8 @@ static jobject native_create(JNIEnv* env, std::unique_ptr<SkStream> stream, jobj
SkString msg;
msg.printf("Failed to create image decoder with message '%s'",
SkCodec::ResultToString(result));
return throw_exception(env, ImageDecoder::kSourceError, msg.c_str(), nullptr,
source);
return throw_exception(env, ImageDecoder::kSourceMalformedData, msg.c_str(),
nullptr, source);
}
}
@@ -110,7 +110,7 @@ static jobject native_create(JNIEnv* env, std::unique_ptr<SkStream> stream, jobj
decoder->mCodec = SkAndroidCodec::MakeFromCodec(std::move(codec),
SkAndroidCodec::ExifOrientationBehavior::kRespect);
if (!decoder->mCodec.get()) {
return throw_exception(env, ImageDecoder::kSourceError, "", nullptr, source);
return throw_exception(env, ImageDecoder::kSourceMalformedData, "", nullptr, source);
}
const auto& info = decoder->mCodec->getInfo();
@@ -127,7 +127,7 @@ static jobject ImageDecoder_nCreateFd(JNIEnv* env, jobject /*clazz*/,
struct stat fdStat;
if (fstat(descriptor, &fdStat) == -1) {
return throw_exception(env, ImageDecoder::kSourceError,
return throw_exception(env, ImageDecoder::kSourceMalformedData,
"broken file descriptor; fstat returned -1", nullptr, source);
}
@@ -135,8 +135,8 @@ static jobject ImageDecoder_nCreateFd(JNIEnv* env, jobject /*clazz*/,
FILE* file = fdopen(dupDescriptor, "r");
if (file == NULL) {
close(dupDescriptor);
return throw_exception(env, ImageDecoder::kSourceError, "Could not open file", nullptr,
source);
return throw_exception(env, ImageDecoder::kSourceMalformedData, "Could not open file",
nullptr, source);
}
std::unique_ptr<SkFILEStream> fileStream(new SkFILEStream(file));
@@ -157,7 +157,7 @@ static jobject ImageDecoder_nCreateInputStream(JNIEnv* env, jobject /*clazz*/,
std::unique_ptr<SkStream> stream(CreateJavaInputStreamAdaptor(env, is, storage, false));
if (!stream.get()) {
return throw_exception(env, ImageDecoder::kSourceError, "Failed to create a stream",
return throw_exception(env, ImageDecoder::kSourceMalformedData, "Failed to create a stream",
nullptr, source);
}
@@ -179,7 +179,7 @@ static jobject ImageDecoder_nCreateByteBuffer(JNIEnv* env, jobject /*clazz*/, jo
std::unique_ptr<SkStream> stream = CreateByteBufferStreamAdaptor(env, jbyteBuffer,
initialPosition, limit);
if (!stream) {
return throw_exception(env, ImageDecoder::kSourceError, "Failed to read ByteBuffer",
return throw_exception(env, ImageDecoder::kSourceMalformedData, "Failed to read ByteBuffer",
nullptr, source);
}
return native_create(env, std::move(stream), source);
@@ -313,7 +313,7 @@ static jobject ImageDecoder_nDecodeBitmap(JNIEnv* env, jobject /*clazz*/, jlong
break;
case SkCodec::kErrorInInput:
if (!jexception) {
onPartialImageError = ImageDecoder::kSourceError;
onPartialImageError = ImageDecoder::kSourceMalformedData;
}
break;
default:

View File

@@ -35,9 +35,9 @@ struct ImageDecoder {
// These need to stay in sync with ImageDecoder.java's Error constants.
enum Error {
kSourceException = 1,
kSourceIncomplete = 2,
kSourceError = 3,
kSourceException = 1,
kSourceIncomplete = 2,
kSourceMalformedData = 3,
};
// These need to stay in sync with PixelFormat.java's Format constants.

View File

@@ -457,31 +457,49 @@ public final class ImageDecoder implements AutoCloseable {
};
/**
* An Exception was thrown reading the {@link Source}.
/** @removed
* @deprecated Replaced by {@link #DecodeException#SOURCE_EXCEPTION}.
*/
@java.lang.Deprecated
public static final int ERROR_SOURCE_EXCEPTION = 1;
/**
* The encoded data was incomplete.
/** @removed
* @deprecated Replaced by {@link #DecodeException#SOURCE_INCOMPLETE}.
*/
@java.lang.Deprecated
public static final int ERROR_SOURCE_INCOMPLETE = 2;
/**
* The encoded data contained an error.
/** @removed
* @deprecated Replaced by {@link #DecodeException#SOURCE_MALFORMED_DATA}.
*/
@java.lang.Deprecated
public static final int ERROR_SOURCE_ERROR = 3;
/** @hide **/
@Retention(SOURCE)
@IntDef(value = { ERROR_SOURCE_EXCEPTION, ERROR_SOURCE_INCOMPLETE, ERROR_SOURCE_ERROR },
prefix = {"ERROR_"})
public @interface Error {};
/**
* Information about an interrupted decode.
*/
public static final class DecodeException extends IOException {
/**
* An Exception was thrown reading the {@link Source}.
*/
public static final int SOURCE_EXCEPTION = 1;
/**
* The encoded data was incomplete.
*/
public static final int SOURCE_INCOMPLETE = 2;
/**
* The encoded data contained an error.
*/
public static final int SOURCE_MALFORMED_DATA = 3;
/** @hide **/
@Retention(SOURCE)
@IntDef(value = { SOURCE_EXCEPTION, SOURCE_INCOMPLETE, SOURCE_MALFORMED_DATA },
prefix = {"SOURCE_"})
public @interface Error {};
@Error final int mError;
@NonNull final Source mSource;
@@ -505,7 +523,7 @@ public final class ImageDecoder implements AutoCloseable {
/**
* Retrieve the reason that decoding was interrupted.
*
* <p>If the error is {@link #ERROR_SOURCE_EXCEPTION}, the underlying
* <p>If the error is {@link #SOURCE_EXCEPTION}, the underlying
* {@link java.lang.Throwable} can be retrieved with
* {@link java.lang.Throwable#getCause}.</p>
*/
@@ -524,11 +542,11 @@ public final class ImageDecoder implements AutoCloseable {
private static String errorMessage(@Error int error, @Nullable Throwable cause) {
switch (error) {
case ERROR_SOURCE_EXCEPTION:
case SOURCE_EXCEPTION:
return "Exception in input: " + cause;
case ERROR_SOURCE_INCOMPLETE:
case SOURCE_INCOMPLETE:
return "Input was incomplete.";
case ERROR_SOURCE_ERROR:
case SOURCE_MALFORMED_DATA:
return "Input contained an error.";
default:
return "";
@@ -1368,7 +1386,7 @@ public final class ImageDecoder implements AutoCloseable {
* Private method called by JNI.
*/
@SuppressWarnings("unused")
private void onPartialImage(@Error int error, @Nullable Throwable cause)
private void onPartialImage(@DecodeException.Error int error, @Nullable Throwable cause)
throws DecodeException {
DecodeException exception = new DecodeException(error, cause, mSource);
if (mOnPartialImageListener == null