diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImage.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImage.kt index 975b5463..d86f555b 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImage.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImage.kt @@ -12,6 +12,13 @@ import com.facebook.proguard.annotations.DoNotStrip import com.madebyevan.thumbhash.ThumbHash import com.margelo.nitro.core.ArrayBuffer import com.margelo.nitro.core.Promise +import com.margelo.nitro.image.extensions.compressInMemory +import com.margelo.nitro.image.extensions.isGPU +import com.margelo.nitro.image.extensions.pixelFormat +import com.margelo.nitro.image.extensions.saveToFile +import com.margelo.nitro.image.extensions.toByteBuffer +import com.margelo.nitro.image.extensions.toCpuAccessible +import com.margelo.nitro.image.extensions.toMutable import java.io.File import java.nio.ByteBuffer diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageFactory.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageFactory.kt index 30fa45a4..9d6ff8b8 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageFactory.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageFactory.kt @@ -11,6 +11,8 @@ import com.madebyevan.thumbhash.ThumbHash import com.margelo.nitro.NitroModules import com.margelo.nitro.core.ArrayBuffer import com.margelo.nitro.core.Promise +import com.margelo.nitro.image.extensions.bitmapFromRawPixelData +import com.margelo.nitro.image.extensions.toBitmapColor import java.nio.ByteBuffer @DoNotStrip diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageView.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageView.kt index 4e12b133..672c3e2c 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageView.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/HybridImageView.kt @@ -5,8 +5,8 @@ import android.util.Log import android.view.View import android.widget.ImageView import androidx.annotation.Keep -import androidx.core.view.isVisible import com.facebook.common.internal.DoNotStrip +import com.margelo.nitro.image.utils.CustomImageView import com.margelo.nitro.views.RecyclableView import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+compressInMemory.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+compressInMemory.kt similarity index 85% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+compressInMemory.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+compressInMemory.kt index 036773a4..522d56e7 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+compressInMemory.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+compressInMemory.kt @@ -1,6 +1,8 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap +import com.margelo.nitro.image.ImageFormat +import com.margelo.nitro.image.utils.FastByteArrayOutputStream import java.nio.ByteBuffer fun Bitmap.compressInMemory(format: ImageFormat, quality: Int): ByteBuffer { diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+fromRawPixelData.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+fromRawPixelData.kt similarity index 97% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+fromRawPixelData.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+fromRawPixelData.kt index a0464b05..72063642 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+fromRawPixelData.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+fromRawPixelData.kt @@ -1,11 +1,11 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap import android.graphics.ColorSpace import android.os.Build import androidx.core.graphics.createBitmap -import java.io.File -import java.io.FileOutputStream +import com.margelo.nitro.image.PixelFormat +import com.margelo.nitro.image.RawPixelData import java.nio.IntBuffer private data class Swizzle(val r: Int, val g: Int, val b: Int, val a: Int, val bpp: Int) @@ -108,4 +108,4 @@ fun bitmapFromRawPixelData(data: RawPixelData, allowGpu: Boolean): Bitmap { bitmap.isPremultiplied = true bitmap.copyPixelsFromBuffer(IntBuffer.wrap(out)) return bitmap -} \ No newline at end of file +} diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+isGPU.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+isGPU.kt similarity index 83% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+isGPU.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+isGPU.kt index 64f0e5ea..49db1530 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+isGPU.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+isGPU.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap import android.os.Build diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+pixelFormat.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+pixelFormat.kt similarity index 95% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+pixelFormat.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+pixelFormat.kt index 0f189f06..d7e99edc 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+pixelFormat.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+pixelFormat.kt @@ -1,8 +1,9 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap import android.hardware.HardwareBuffer import android.os.Build +import com.margelo.nitro.image.PixelFormat import java.nio.ByteOrder val Bitmap.pixelFormat: PixelFormat diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+saveToFile.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+saveToFile.kt similarity index 92% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+saveToFile.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+saveToFile.kt index 0280b222..9be25c87 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+saveToFile.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+saveToFile.kt @@ -1,6 +1,7 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap +import com.margelo.nitro.image.ImageFormat import java.io.File import java.io.FileOutputStream diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toByteBuffer.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toByteBuffer.kt similarity index 90% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toByteBuffer.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toByteBuffer.kt index 63fb7c12..11026341 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toByteBuffer.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toByteBuffer.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap import java.nio.ByteBuffer diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toCpuAccessible.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toCpuAccessible.kt similarity index 86% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toCpuAccessible.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toCpuAccessible.kt index ec928915..433285d9 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toCpuAccessible.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toCpuAccessible.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toMutable.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toMutable.kt similarity index 91% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toMutable.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toMutable.kt index 2e995b2b..f57bbc86 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Bitmap+toMutable.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Bitmap+toMutable.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions import android.graphics.Bitmap diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Color+toBitmapColor.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Color+toBitmapColor.kt similarity index 80% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Color+toBitmapColor.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Color+toBitmapColor.kt index 126f8f1d..82fc38f5 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/Color+toBitmapColor.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/extensions/Color+toBitmapColor.kt @@ -1,4 +1,6 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.extensions + +import com.margelo.nitro.image.Color fun Color.toBitmapColor(): Int { if (a != null) { diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/CustomImageView.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/utils/CustomImageView.kt similarity index 92% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/CustomImageView.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/utils/CustomImageView.kt index 7b400b6a..41a3c6fc 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/CustomImageView.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/utils/CustomImageView.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.utils import android.content.Context import androidx.appcompat.widget.AppCompatImageView diff --git a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/FastByteArrayOutputStream.kt b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/utils/FastByteArrayOutputStream.kt similarity index 95% rename from packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/FastByteArrayOutputStream.kt rename to packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/utils/FastByteArrayOutputStream.kt index ec7ec533..f2e08c0e 100644 --- a/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/FastByteArrayOutputStream.kt +++ b/packages/react-native-nitro-image/android/src/main/java/com/margelo/nitro/image/utils/FastByteArrayOutputStream.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.image +package com.margelo.nitro.image.utils import java.io.OutputStream import java.nio.ByteBuffer @@ -31,4 +31,4 @@ class FastByteArrayOutputStream(initialSize: Int = 64 * 1024) : OutputStream() { } fun toByteBuffer(): ByteBuffer = ByteBuffer.wrap(bytes, 0, count) -} \ No newline at end of file +} diff --git a/packages/react-native-nitro-image/ios/Bridge.h b/packages/react-native-nitro-image/ios/Bridge.h deleted file mode 100644 index 167b12b9..00000000 --- a/packages/react-native-nitro-image/ios/Bridge.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Bridge.h -// NitroImage -// -// Created by Marc Rousavy on 22.07.24. -// - -#pragma once diff --git a/packages/react-native-nitro-image/ios/NativeImage.swift b/packages/react-native-nitro-image/ios/Public/NativeImage.swift similarity index 100% rename from packages/react-native-nitro-image/ios/NativeImage.swift rename to packages/react-native-nitro-image/ios/Public/NativeImage.swift diff --git a/packages/react-native-nitro-image/ios/NativeImageView.swift b/packages/react-native-nitro-image/ios/Public/NativeImageView.swift similarity index 100% rename from packages/react-native-nitro-image/ios/NativeImageView.swift rename to packages/react-native-nitro-image/ios/Public/NativeImageView.swift diff --git a/packages/react-native-nitro-image/ios/CustomImageView.swift b/packages/react-native-nitro-image/ios/Utils/CustomImageView.swift similarity index 100% rename from packages/react-native-nitro-image/ios/CustomImageView.swift rename to packages/react-native-nitro-image/ios/Utils/CustomImageView.swift diff --git a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageFactory.kt b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageFactory.kt index 51f470de..e282f35b 100644 --- a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageFactory.kt +++ b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageFactory.kt @@ -9,6 +9,7 @@ import com.margelo.nitro.NitroModules import com.margelo.nitro.core.Promise import com.margelo.nitro.image.HybridImageLoaderSpec import com.margelo.nitro.image.HybridImageSpec +import com.margelo.nitro.web.image.extensions.loadImageAsync @DoNotStrip @Keep diff --git a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageLoader.kt b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageLoader.kt index efa44355..d4fd6b40 100644 --- a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageLoader.kt +++ b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/HybridWebImageLoader.kt @@ -8,6 +8,8 @@ import com.margelo.nitro.core.Promise import com.margelo.nitro.image.HybridImageSpec import com.margelo.nitro.image.HybridImageLoaderSpec import com.margelo.nitro.image.HybridNitroImageViewSpec +import com.margelo.nitro.web.image.extensions.applyOptions +import com.margelo.nitro.web.image.extensions.loadImageAsync class HybridWebImageLoader(private val imageLoader: ImageLoader, private val url: String, diff --git a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/AsyncImagePriority+toCoroutineContext.kt b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/AsyncImagePriority+toCoroutineContext.kt similarity index 79% rename from packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/AsyncImagePriority+toCoroutineContext.kt rename to packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/AsyncImagePriority+toCoroutineContext.kt index 9af1eed4..a15cb8b5 100644 --- a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/AsyncImagePriority+toCoroutineContext.kt +++ b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/AsyncImagePriority+toCoroutineContext.kt @@ -1,10 +1,9 @@ -package com.margelo.nitro.web.image +package com.margelo.nitro.web.image.extensions +import com.margelo.nitro.web.image.AsyncImagePriority import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.currentCoroutineContext import kotlin.coroutines.CoroutineContext - fun AsyncImagePriority.toCoroutineContext(): CoroutineContext? { // TODO: Does this look about right? return when (this) { diff --git a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/ImageLoader+loadImageAsync.kt b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/ImageLoader+loadImageAsync.kt similarity index 92% rename from packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/ImageLoader+loadImageAsync.kt rename to packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/ImageLoader+loadImageAsync.kt index 6e9663d6..a6e104a4 100644 --- a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/ImageLoader+loadImageAsync.kt +++ b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/ImageLoader+loadImageAsync.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.web.image +package com.margelo.nitro.web.image.extensions import android.content.Context import coil3.BitmapImage @@ -8,6 +8,7 @@ import coil3.request.ImageRequest import com.margelo.nitro.core.Promise import com.margelo.nitro.image.HybridImage import com.margelo.nitro.image.HybridImageSpec +import com.margelo.nitro.web.image.AsyncImageLoadOptions suspend fun ImageLoader.loadCoilImageAsync(url: String, options: AsyncImageLoadOptions?, diff --git a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/ImageRequestBuilder+applyOptions.kt b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/ImageRequestBuilder+applyOptions.kt similarity index 94% rename from packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/ImageRequestBuilder+applyOptions.kt rename to packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/ImageRequestBuilder+applyOptions.kt index b2a5354f..6acec22d 100644 --- a/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/ImageRequestBuilder+applyOptions.kt +++ b/packages/react-native-nitro-web-image/android/src/main/java/com/margelo/nitro/web/image/extensions/ImageRequestBuilder+applyOptions.kt @@ -1,4 +1,4 @@ -package com.margelo.nitro.web.image +package com.margelo.nitro.web.image.extensions import coil3.annotation.ExperimentalCoilApi import coil3.decode.BlackholeDecoder @@ -6,6 +6,7 @@ import coil3.request.CachePolicy import coil3.request.ImageRequest import coil3.request.allowHardware import coil3.size.Precision +import com.margelo.nitro.web.image.AsyncImageLoadOptions @OptIn(ExperimentalCoilApi::class) fun ImageRequest.Builder.applyOptions(options: AsyncImageLoadOptions?): ImageRequest.Builder { diff --git a/packages/react-native-nitro-web-image/ios/Bridge.h b/packages/react-native-nitro-web-image/ios/Bridge.h deleted file mode 100644 index ddc2117b..00000000 --- a/packages/react-native-nitro-web-image/ios/Bridge.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Bridge.h -// NitroWebImage -// -// Created by Marc Rousavy on 22.07.24. -// - -#pragma once diff --git a/packages/react-native-nitro-web-image/ios/AsyncImageLoadOptions+toSDWebImageOptions.swift b/packages/react-native-nitro-web-image/ios/Extensions/AsyncImageLoadOptions+toSDWebImageOptions.swift similarity index 100% rename from packages/react-native-nitro-web-image/ios/AsyncImageLoadOptions+toSDWebImageOptions.swift rename to packages/react-native-nitro-web-image/ios/Extensions/AsyncImageLoadOptions+toSDWebImageOptions.swift diff --git a/packages/react-native-nitro-web-image/ios/SDWebImageManager+loadImage.swift b/packages/react-native-nitro-web-image/ios/Extensions/SDWebImageManager+loadImage.swift similarity index 100% rename from packages/react-native-nitro-web-image/ios/SDWebImageManager+loadImage.swift rename to packages/react-native-nitro-web-image/ios/Extensions/SDWebImageManager+loadImage.swift