mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Convert com/facebook/react/views/image/MultiPostprocessor.java to Kotlin (#45712)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/45712 This moves the first remaining file inside views/image from Java to Kotlin Changelog: [Internal] [Changed] - Convert com/facebook/react/views/image/MultiPostprocessor.java to Kotlin Reviewed By: rshest Differential Revision: D60283278 fbshipit-source-id: 800ba559750aca0bc9bf7311d0717c6f9bf635a7
This commit is contained in:
committed by
Facebook GitHub Bot
parent
f888f2434c
commit
878802fe2a
@@ -6343,13 +6343,19 @@ public final class com/facebook/react/views/image/ImageResizeMode {
|
||||
public static final fun toTileMode (Ljava/lang/String;)Landroid/graphics/Shader$TileMode;
|
||||
}
|
||||
|
||||
public class com/facebook/react/views/image/MultiPostprocessor : com/facebook/imagepipeline/request/Postprocessor {
|
||||
public static fun from (Ljava/util/List;)Lcom/facebook/imagepipeline/request/Postprocessor;
|
||||
public final class com/facebook/react/views/image/MultiPostprocessor : com/facebook/imagepipeline/request/Postprocessor {
|
||||
public static final field Companion Lcom/facebook/react/views/image/MultiPostprocessor$Companion;
|
||||
public synthetic fun <init> (Ljava/util/List;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public static final fun from (Ljava/util/List;)Lcom/facebook/imagepipeline/request/Postprocessor;
|
||||
public fun getName ()Ljava/lang/String;
|
||||
public fun getPostprocessorCacheKey ()Lcom/facebook/cache/common/CacheKey;
|
||||
public fun process (Landroid/graphics/Bitmap;Lcom/facebook/imagepipeline/bitmaps/PlatformBitmapFactory;)Lcom/facebook/common/references/CloseableReference;
|
||||
}
|
||||
|
||||
public final class com/facebook/react/views/image/MultiPostprocessor$Companion {
|
||||
public final fun from (Ljava/util/List;)Lcom/facebook/imagepipeline/request/Postprocessor;
|
||||
}
|
||||
|
||||
public abstract interface class com/facebook/react/views/image/ReactCallerContextFactory {
|
||||
public abstract fun getOrCreateCallerContext (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;
|
||||
}
|
||||
|
||||
-89
@@ -1,89 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.views.image;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.cache.common.CacheKey;
|
||||
import com.facebook.cache.common.MultiCacheKey;
|
||||
import com.facebook.common.references.CloseableReference;
|
||||
import com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory;
|
||||
import com.facebook.imagepipeline.request.Postprocessor;
|
||||
import com.facebook.infer.annotation.Nullsafe;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
@Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
public class MultiPostprocessor implements Postprocessor {
|
||||
private final List<Postprocessor> mPostprocessors;
|
||||
|
||||
@Nullable
|
||||
public static Postprocessor from(List<Postprocessor> postprocessors) {
|
||||
switch (postprocessors.size()) {
|
||||
case 0:
|
||||
return null;
|
||||
case 1:
|
||||
return postprocessors.get(0);
|
||||
default:
|
||||
return new MultiPostprocessor(postprocessors);
|
||||
}
|
||||
}
|
||||
|
||||
private MultiPostprocessor(List<Postprocessor> postprocessors) {
|
||||
mPostprocessors = new LinkedList<>(postprocessors);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
StringBuilder name = new StringBuilder();
|
||||
for (Postprocessor p : mPostprocessors) {
|
||||
if (name.length() > 0) {
|
||||
name.append(",");
|
||||
}
|
||||
name.append(p.getName());
|
||||
}
|
||||
name.insert(0, "MultiPostProcessor (");
|
||||
name.append(")");
|
||||
return name.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CacheKey getPostprocessorCacheKey() {
|
||||
LinkedList<CacheKey> keys = new LinkedList<>();
|
||||
for (Postprocessor p : mPostprocessors) {
|
||||
CacheKey key = p.getPostprocessorCacheKey();
|
||||
if (key != null) {
|
||||
keys.add(key);
|
||||
}
|
||||
}
|
||||
return new MultiCacheKey(keys);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CloseableReference<Bitmap> process(
|
||||
Bitmap sourceBitmap, PlatformBitmapFactory bitmapFactory) {
|
||||
@Nullable CloseableReference<Bitmap> prevBitmap = null, nextBitmap = null;
|
||||
|
||||
try {
|
||||
for (Postprocessor p : mPostprocessors) {
|
||||
nextBitmap = p.process(prevBitmap != null ? prevBitmap.get() : sourceBitmap, bitmapFactory);
|
||||
CloseableReference.closeSafely(prevBitmap);
|
||||
prevBitmap = nextBitmap.clone();
|
||||
}
|
||||
if (nextBitmap == null) {
|
||||
throw new IllegalStateException(
|
||||
"MultiPostprocessor returned null bitmap - Number of Postprocessors: "
|
||||
+ mPostprocessors.size());
|
||||
} else {
|
||||
return nextBitmap.clone();
|
||||
}
|
||||
} finally {
|
||||
CloseableReference.closeSafely(nextBitmap);
|
||||
}
|
||||
}
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
package com.facebook.react.views.image
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import com.facebook.cache.common.CacheKey
|
||||
import com.facebook.cache.common.MultiCacheKey
|
||||
import com.facebook.common.references.CloseableReference
|
||||
import com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory
|
||||
import com.facebook.imagepipeline.request.Postprocessor
|
||||
import java.util.LinkedList
|
||||
|
||||
public class MultiPostprocessor private constructor(postprocessors: List<Postprocessor>) :
|
||||
Postprocessor {
|
||||
|
||||
private val postprocessors: List<Postprocessor> = LinkedList(postprocessors)
|
||||
|
||||
override fun getName(): String = "MultiPostProcessor (${postprocessors.joinToString(",")})"
|
||||
|
||||
override fun getPostprocessorCacheKey(): CacheKey =
|
||||
MultiCacheKey(postprocessors.map { it.postprocessorCacheKey })
|
||||
|
||||
public override fun process(
|
||||
sourceBitmap: Bitmap,
|
||||
bitmapFactory: PlatformBitmapFactory
|
||||
): CloseableReference<Bitmap> {
|
||||
var prevBitmap: CloseableReference<Bitmap>? = null
|
||||
var nextBitmap: CloseableReference<Bitmap>? = null
|
||||
|
||||
try {
|
||||
for (p in postprocessors) {
|
||||
nextBitmap = p.process(prevBitmap?.get() ?: sourceBitmap, bitmapFactory)
|
||||
CloseableReference.closeSafely(prevBitmap)
|
||||
prevBitmap = nextBitmap.clone()
|
||||
}
|
||||
checkNotNull(nextBitmap) {
|
||||
("MultiPostprocessor returned null bitmap - Number of Postprocessors: " +
|
||||
postprocessors.size)
|
||||
}
|
||||
return nextBitmap.clone()
|
||||
} finally {
|
||||
CloseableReference.closeSafely(nextBitmap)
|
||||
}
|
||||
}
|
||||
|
||||
public companion object {
|
||||
@JvmStatic
|
||||
public fun from(postprocessors: List<Postprocessor>): Postprocessor? {
|
||||
return when (postprocessors.size) {
|
||||
0 -> null
|
||||
1 -> postprocessors[0]
|
||||
else -> MultiPostprocessor(postprocessors)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user