SkAndroidCodec: Use getGainmapAndroidCodec

Bug: 349357636
Flag: EXEMPT refactor
Test: courage
Test: Viewing UltraHDR images in Photos
Change-Id: Ifc467d930fe1dc96989751d0a9be30284d292175
diff --git a/libs/hwui/jni/BitmapFactory.cpp b/libs/hwui/jni/BitmapFactory.cpp
index 785aef3..49a7f73 100644
--- a/libs/hwui/jni/BitmapFactory.cpp
+++ b/libs/hwui/jni/BitmapFactory.cpp
@@ -183,14 +183,8 @@
            needsFineScale(fullSize.height(), decodedSize.height(), sampleSize);
 }
 
-static bool decodeGainmap(std::unique_ptr<SkStream> gainmapStream, const SkGainmapInfo& gainmapInfo,
+static bool decodeGainmap(std::unique_ptr<SkAndroidCodec> codec, const SkGainmapInfo& gainmapInfo,
                           sp<uirenderer::Gainmap>* outGainmap, const int sampleSize, float scale) {
-    std::unique_ptr<SkAndroidCodec> codec;
-    codec = SkAndroidCodec::MakeFromStream(std::move(gainmapStream), nullptr);
-    if (!codec) {
-        ALOGE("Can not create a codec for Gainmap.");
-        return false;
-    }
     SkColorType decodeColorType = kN32_SkColorType;
     if (codec->getInfo().colorType() == kGray_8_SkColorType) {
         decodeColorType = kGray_8_SkColorType;
@@ -613,15 +607,15 @@
 
     bool hasGainmap = false;
     SkGainmapInfo gainmapInfo;
-    std::unique_ptr<SkStream> gainmapStream = nullptr;
+    std::unique_ptr<SkAndroidCodec> gainmapCodec;
     sp<uirenderer::Gainmap> gainmap = nullptr;
     if (result == SkCodec::kSuccess) {
-        hasGainmap = codec->getAndroidGainmap(&gainmapInfo, &gainmapStream);
+        hasGainmap = codec->getGainmapAndroidCodec(&gainmapInfo, &gainmapCodec);
     }
 
     if (hasGainmap) {
         hasGainmap =
-                decodeGainmap(std::move(gainmapStream), gainmapInfo, &gainmap, sampleSize, scale);
+                decodeGainmap(std::move(gainmapCodec), gainmapInfo, &gainmap, sampleSize, scale);
     }
 
     if (!isMutable && javaBitmap == NULL) {