android_jni: Add alphaPresent to AvifDecoder

This brings the AvifDecoder full class usage to parity with the
AvifDecoder$Info class.

GOOGLE_INTERNAL_CL: 525455096
diff --git a/android_jni/avifandroidjni/src/androidTest/java/org/aomedia/avif/android/AnimatedImageTest.java b/android_jni/avifandroidjni/src/androidTest/java/org/aomedia/avif/android/AnimatedImageTest.java
index d322c70..c588403 100644
--- a/android_jni/avifandroidjni/src/androidTest/java/org/aomedia/avif/android/AnimatedImageTest.java
+++ b/android_jni/avifandroidjni/src/androidTest/java/org/aomedia/avif/android/AnimatedImageTest.java
@@ -28,6 +28,7 @@
     public final int width;
     public final int height;
     public final int depth;
+    public final boolean alphaPresent;
     public final int frameCount;
     public final int repetitionCount;
     public final double frameDuration;
@@ -37,6 +38,7 @@
         int width,
         int height,
         int depth,
+        boolean alphaPresent,
         int frameCount,
         int repetitionCount,
         double frameDuration) {
@@ -44,6 +46,7 @@
       this.width = width;
       this.height = height;
       this.depth = depth;
+      this.alphaPresent = alphaPresent;
       this.frameCount = frameCount;
       this.repetitionCount = repetitionCount;
       this.frameDuration = frameDuration;
@@ -51,10 +54,10 @@
   }
 
   private static final Image[] IMAGES = {
-    // Parameter ordering: filename, width, height, depth, frameCount, repetitionCount,
-    // frameDuration.
-    new Image("alpha_video.avif", 640, 480, 8, 48, -2, 0.04),
-    new Image("Chimera-AV1-10bit-480x270.avif", 480, 270, 10, 95, -2, 0.04),
+    // Parameter ordering: filename, width, height, depth, alphaPresent, frameCount,
+    // repetitionCount, frameDuration.
+    new Image("alpha_video.avif", 640, 480, 8, true, 48, -2, 0.04),
+    new Image("Chimera-AV1-10bit-480x270.avif", 480, 270, 10, false, 95, -2, 0.04),
   };
 
   private static final String ASSET_DIRECTORY = "animated_avif";
@@ -89,6 +92,7 @@
     assertThat(decoder.getWidth()).isEqualTo(image.width);
     assertThat(decoder.getHeight()).isEqualTo(image.height);
     assertThat(decoder.getDepth()).isEqualTo(image.depth);
+    assertThat(decoder.getAlphaPresent()).isEqualTo(image.alphaPresent);
     assertThat(decoder.getFrameCount()).isEqualTo(image.frameCount);
     assertThat(decoder.getRepetitionCount()).isEqualTo(image.repetitionCount);
     double[] frameDurations = decoder.getFrameDurations();
diff --git a/android_jni/avifandroidjni/src/main/java/org/aomedia/avif/android/AvifDecoder.java b/android_jni/avifandroidjni/src/main/java/org/aomedia/avif/android/AvifDecoder.java
index 2bb4450..d76c42a 100644
--- a/android_jni/avifandroidjni/src/main/java/org/aomedia/avif/android/AvifDecoder.java
+++ b/android_jni/avifandroidjni/src/main/java/org/aomedia/avif/android/AvifDecoder.java
@@ -48,6 +48,7 @@
   private int width;
   private int height;
   private int depth;
+  private boolean alphaPresent;
   private int frameCount;
   private int repetitionCount;
   private double[] frameDurations;
@@ -130,6 +131,11 @@
     return depth;
   }
 
+  /** Returns true if the image contains a transparency/alpha channel, false otherwise. */
+  public boolean getAlphaPresent() {
+    return alphaPresent;
+  }
+
   /** Get the number of frames in the image. */
   public int getFrameCount() {
     return frameCount;
diff --git a/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc b/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc
index efaef2d..0090cf1 100644
--- a/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc
+++ b/android_jni/avifandroidjni/src/main/jni/libavif_jni.cc
@@ -209,6 +209,8 @@
   const jfieldID width_id = env->GetFieldID(avif_decoder_class, "width", "I");
   const jfieldID height_id = env->GetFieldID(avif_decoder_class, "height", "I");
   const jfieldID depth_id = env->GetFieldID(avif_decoder_class, "depth", "I");
+  const jfieldID alpha_present_id =
+      env->GetFieldID(avif_decoder_class, "alphaPresent", "Z");
   const jfieldID frame_count_id =
       env->GetFieldID(avif_decoder_class, "frameCount", "I");
   const jfieldID repetition_count_id =
@@ -218,6 +220,7 @@
   env->SetIntField(thiz, width_id, decoder->decoder->image->width);
   env->SetIntField(thiz, height_id, decoder->decoder->image->height);
   env->SetIntField(thiz, depth_id, decoder->decoder->image->depth);
+  env->SetBooleanField(thiz, alpha_present_id, decoder->decoder->alphaPresent);
   env->SetIntField(thiz, repetition_count_id,
                    decoder->decoder->repetitionCount);
   const int frameCount = decoder->decoder->imageCount;