build: compile release APK and update dependencies (expo-image-manipulator/loader)
This commit is contained in:
+167
@@ -0,0 +1,167 @@
|
||||
# Changelog
|
||||
|
||||
## Unpublished
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
### 🎉 New features
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
### 💡 Others
|
||||
|
||||
## 6.0.0 — 2025-08-13
|
||||
|
||||
### 🎉 New features
|
||||
|
||||
- [iOS] Add Apple TV support. ([#38513](https://github.com/expo/expo/pull/38513) by [@douglowder](https://github.com/douglowder))
|
||||
|
||||
## 5.1.0 — 2025-04-04
|
||||
|
||||
### 💡 Others
|
||||
|
||||
- [Android] Started using expo modules gradle plugin. ([#34176](https://github.com/expo/expo/pull/34176) by [@lukmccall](https://github.com/lukmccall))
|
||||
- [apple] Migrate remaining `expo-module.config.json` to unified platform syntax. ([#34445](https://github.com/expo/expo/pull/34445) by [@reichhartd](https://github.com/reichhartd))
|
||||
|
||||
## 5.0.0 — 2024-10-22
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
- Bumped iOS deployment target to 15.1. ([#30840](https://github.com/expo/expo/pull/30840) by [@tsapeta](https://github.com/tsapeta))
|
||||
|
||||
## 4.7.0 — 2024-04-18
|
||||
|
||||
### 💡 Others
|
||||
|
||||
- Removed deprecated backward compatible Gradle settings. ([#28083](https://github.com/expo/expo/pull/28083) by [@kudo](https://github.com/kudo))
|
||||
|
||||
## 4.6.0 — 2023-11-14
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
- Bumped iOS deployment target to 13.4. ([#25063](https://github.com/expo/expo/pull/25063) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
||||
- On `Android` bump `compileSdkVersion` and `targetSdkVersion` to `34`. ([#24708](https://github.com/expo/expo/pull/24708) by [@alanjhughes](https://github.com/alanjhughes))
|
||||
|
||||
### 💡 Others
|
||||
|
||||
- Renamed `unimodule.json` to `expo-module.config.json`. ([#25100](https://github.com/expo/expo/pull/25100) by [@reichhartd](https://github.com/reichhartd))
|
||||
|
||||
## 4.5.0 — 2023-10-17
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
- Dropped support for Android SDK 21 and 22. ([#24201](https://github.com/expo/expo/pull/24201) by [@behenate](https://github.com/behenate))
|
||||
|
||||
## 4.4.0 — 2023-09-04
|
||||
|
||||
### 🎉 New features
|
||||
|
||||
- Added support for React Native 0.73. ([#24018](https://github.com/expo/expo/pull/24018) by [@kudo](https://github.com/kudo))
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- Bump `Glide` version to resolve `SecurityException` on Android 13. ([#24196](https://github.com/expo/expo/pull/24196) by [@alanjhughes](https://github.com/alanjhughes))
|
||||
|
||||
## 4.3.0 — 2023-06-13
|
||||
|
||||
- Removed `com.facebook.fresco:fresco` dependency ([#22542](https://github.com/expo/expo/pull/22542) by [@josephyanks](https://github.com/josephyanks))
|
||||
|
||||
### 📚 3rd party library updates
|
||||
|
||||
- Updated `com.github.bumptech.glide:glide` to `4.13.2` and added customizable `glideVersion` variable on ext. ([#22542](https://github.com/expo/expo/pull/22542) by [@josephyanks](https://github.com/josephyanks))
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- Fixed Android build warnings for Gradle version 8. ([#22537](https://github.com/expo/expo/pull/22537), [#22609](https://github.com/expo/expo/pull/22609) by [@kudo](https://github.com/kudo))
|
||||
|
||||
## 4.2.0 — 2023-05-08
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 4.1.1 — 2023-02-09
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 4.1.0 — 2023-02-03
|
||||
|
||||
### 💡 Others
|
||||
|
||||
- On Android bump `compileSdkVersion` and `targetSdkVersion` to `33`. ([#20721](https://github.com/expo/expo/pull/20721) by [@lukmccall](https://github.com/lukmccall))
|
||||
|
||||
## 4.0.0 — 2022-10-25
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
- Bumped iOS deployment target to 13.0 and deprecated support for iOS 12. ([#18873](https://github.com/expo/expo/pull/18873) by [@tsapeta](https://github.com/tsapeta))
|
||||
|
||||
## 3.2.0 — 2022-04-18
|
||||
|
||||
### ⚠️ Notices
|
||||
|
||||
- On Android bump `compileSdkVersion` to `31`, `targetSdkVersion` to `31` and `Java` version to `11`. ([#16941](https://github.com/expo/expo/pull/16941) by [@bbarthec](https://github.com/bbarthec))
|
||||
|
||||
## 3.1.1 - 2022-02-01
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- Fix `Plugin with id 'maven' not found` build error from Android Gradle 7. ([#16080](https://github.com/expo/expo/pull/16080) by [@kudo](https://github.com/kudo))
|
||||
|
||||
## 3.1.0 — 2021-12-03
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 3.0.0 — 2021-09-28
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
- Dropped support for iOS 11.0 ([#14383](https://github.com/expo/expo/pull/14383) by [@cruzach](https://github.com/cruzach))
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- Fix building errors from use_frameworks! in Podfile. ([#14523](https://github.com/expo/expo/pull/14523) by [@kudo](https://github.com/kudo))
|
||||
|
||||
## 2.3.0-alpha.0 — 2021-08-17
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 2.2.0 — 2021-06-16
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- Enable kotlin in all modules. ([#12716](https://github.com/expo/expo/pull/12716) by [@wschurman](https://github.com/wschurman))
|
||||
|
||||
## 2.1.1 — 2021-03-23
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 2.1.0 — 2021-03-10
|
||||
|
||||
### 🎉 New features
|
||||
|
||||
- Updated Android build configuration to target Android 11 (added support for Android SDK 30). ([#11647](https://github.com/expo/expo/pull/11647) by [@bbarthec](https://github.com/bbarthec))
|
||||
|
||||
### 🐛 Bug fixes
|
||||
|
||||
- Remove peerDependencies and unimodulePeerDependencies from Expo modules. ([#11980](https://github.com/expo/expo/pull/11980) by [@brentvatne](https://github.com/brentvatne))
|
||||
|
||||
## 2.0.0 — 2021-01-15
|
||||
|
||||
### 🛠 Breaking changes
|
||||
|
||||
- Dropped support for iOS 10.0 ([#11344](https://github.com/expo/expo/pull/11344) by [@tsapeta](https://github.com/tsapeta))
|
||||
|
||||
## 1.3.0 — 2020-11-17
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 1.2.0 — 2020-08-18
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 1.1.1 — 2020-05-29
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
|
||||
## 1.1.0 — 2020-05-27
|
||||
|
||||
_This version does not introduce any user-facing changes._
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
# expo-image-loader
|
||||
|
||||
Provides image loader
|
||||
|
||||
# Installation in managed Expo projects
|
||||
|
||||
For [managed](https://docs.expo.dev/archive/managed-vs-bare/) Expo projects, please follow the installation instructions in the [API documentation for the latest stable release](#api-documentation). If you follow the link and there is no documentation available then this library is not yet usable within managed projects — it is likely to be included in an upcoming Expo SDK release.
|
||||
|
||||
# Installation in bare React Native projects
|
||||
|
||||
For bare React Native projects, you must ensure that you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before continuing.
|
||||
|
||||
### Add the package to your npm dependencies
|
||||
|
||||
```
|
||||
npm install expo-image-loader
|
||||
```
|
||||
|
||||
### Configure for Android
|
||||
|
||||
No additional set up necessary.
|
||||
|
||||
# Contributing
|
||||
|
||||
Contributions are very welcome! Please refer to guidelines described in the [contributing guide](https://github.com/expo/expo#contributing).
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
plugins {
|
||||
id 'com.android.library'
|
||||
id 'expo-module-gradle-plugin'
|
||||
}
|
||||
|
||||
group = 'host.exp.exponent'
|
||||
version = '6.0.0'
|
||||
|
||||
android {
|
||||
namespace "expo.modules.imageloader"
|
||||
defaultConfig {
|
||||
versionCode 8
|
||||
versionName "6.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
def glideVersion = expoModule.safeExtGet('glideVersion', '4.16.0')
|
||||
|
||||
dependencies {
|
||||
api "com.github.bumptech.glide:glide:${glideVersion}"
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
<manifest>
|
||||
</manifest>
|
||||
Generated
Vendored
+105
@@ -0,0 +1,105 @@
|
||||
package expo.modules.imageloader
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.Drawable
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.bumptech.glide.request.target.CustomTarget
|
||||
import com.bumptech.glide.request.transition.Transition
|
||||
import expo.modules.core.interfaces.InternalModule
|
||||
import expo.modules.interfaces.imageloader.ImageLoaderInterface
|
||||
import java.util.concurrent.ExecutionException
|
||||
import java.util.concurrent.Future
|
||||
|
||||
class ImageLoaderModule(val context: Context) : InternalModule, ImageLoaderInterface {
|
||||
|
||||
override fun getExportedInterfaces(): List<Class<*>> {
|
||||
return listOf(ImageLoaderInterface::class.java)
|
||||
}
|
||||
|
||||
override fun loadImageForDisplayFromURL(url: String): Future<Bitmap> {
|
||||
val future = SimpleSettableFuture<Bitmap>()
|
||||
loadImageForDisplayFromURL(
|
||||
url,
|
||||
object : ImageLoaderInterface.ResultListener {
|
||||
override fun onSuccess(bitmap: Bitmap) = future.set(bitmap)
|
||||
|
||||
override fun onFailure(cause: Throwable?) =
|
||||
future.setException(ExecutionException(cause))
|
||||
}
|
||||
)
|
||||
return future
|
||||
}
|
||||
|
||||
override fun loadImageForDisplayFromURL(
|
||||
url: String,
|
||||
resultListener: ImageLoaderInterface.ResultListener
|
||||
) {
|
||||
Glide.with(context)
|
||||
.asBitmap()
|
||||
.load(url)
|
||||
.into(object : CustomTarget<Bitmap>() {
|
||||
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
|
||||
resultListener.onSuccess(resource)
|
||||
}
|
||||
|
||||
override fun onLoadCleared(placeholder: Drawable?) {
|
||||
// no op
|
||||
}
|
||||
|
||||
override fun onLoadFailed(errorDrawable: Drawable?) {
|
||||
super.onLoadFailed(errorDrawable)
|
||||
resultListener.onFailure(Exception("Loading bitmap failed"))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun loadImageForManipulationFromURL(url: String): Future<Bitmap> {
|
||||
val future = SimpleSettableFuture<Bitmap>()
|
||||
loadImageForManipulationFromURL(
|
||||
url,
|
||||
object : ImageLoaderInterface.ResultListener {
|
||||
override fun onSuccess(bitmap: Bitmap) = future.set(bitmap)
|
||||
|
||||
override fun onFailure(cause: Throwable?) = future.setException(ExecutionException(cause))
|
||||
}
|
||||
)
|
||||
return future
|
||||
}
|
||||
|
||||
override fun loadImageForManipulationFromURL(
|
||||
url: String,
|
||||
resultListener: ImageLoaderInterface.ResultListener
|
||||
) {
|
||||
val normalizedUrl = normalizeAssetsUrl(url)
|
||||
|
||||
Glide.with(context)
|
||||
.asBitmap()
|
||||
.diskCacheStrategy(DiskCacheStrategy.NONE)
|
||||
.skipMemoryCache(true)
|
||||
.load(normalizedUrl)
|
||||
.into(object : CustomTarget<Bitmap>() {
|
||||
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
|
||||
resultListener.onSuccess(resource)
|
||||
}
|
||||
|
||||
override fun onLoadCleared(placeholder: Drawable?) {
|
||||
// no op
|
||||
}
|
||||
|
||||
override fun onLoadFailed(errorDrawable: Drawable?) {
|
||||
super.onLoadFailed(errorDrawable)
|
||||
resultListener.onFailure(Exception("Loading bitmap failed"))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun normalizeAssetsUrl(url: String): String {
|
||||
var actualUrl = url
|
||||
if (url.startsWith("asset:///")) {
|
||||
actualUrl = "file:///android_asset/" + url.split("/").last()
|
||||
}
|
||||
return actualUrl
|
||||
}
|
||||
}
|
||||
Generated
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
package expo.modules.imageloader
|
||||
|
||||
import android.content.Context
|
||||
import expo.modules.core.BasePackage
|
||||
import expo.modules.core.interfaces.InternalModule
|
||||
|
||||
class ImageLoaderPackage : BasePackage() {
|
||||
override fun createInternalModules(context: Context): List<InternalModule> = listOf(ImageLoaderModule(context))
|
||||
}
|
||||
Generated
Vendored
+120
@@ -0,0 +1,120 @@
|
||||
// Copied from React Native
|
||||
package expo.modules.imageloader;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
/**
|
||||
* A super simple Future-like class that can safely notify another Thread when a value is ready.
|
||||
* Does not support canceling.
|
||||
*/
|
||||
public class SimpleSettableFuture<T> implements Future<T> {
|
||||
private final CountDownLatch mReadyLatch = new CountDownLatch(1);
|
||||
private @Nullable
|
||||
T mResult;
|
||||
private @Nullable
|
||||
Exception mException;
|
||||
|
||||
/**
|
||||
* Sets the result. If another thread has called {@link #get}, they will immediately receive the
|
||||
* value. set or setException must only be called once.
|
||||
*/
|
||||
public void set(@Nullable T result) {
|
||||
checkNotSet();
|
||||
mResult = result;
|
||||
mReadyLatch.countDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the exception. If another thread has called {@link #get}, they will immediately receive
|
||||
* the exception. set or setException must only be called once.
|
||||
*/
|
||||
public void setException(Exception exception) {
|
||||
checkNotSet();
|
||||
mException = exception;
|
||||
mReadyLatch.countDown();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean cancel(boolean mayInterruptIfRunning) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCancelled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDone() {
|
||||
return mReadyLatch.getCount() == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Nullable
|
||||
T get() throws InterruptedException, ExecutionException {
|
||||
mReadyLatch.await();
|
||||
if (mException != null) {
|
||||
throw new ExecutionException(mException);
|
||||
}
|
||||
|
||||
return mResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wait up to the timeout time for another Thread to set a value on this future. If a value has
|
||||
* already been set, this method will return immediately.
|
||||
*
|
||||
* <p>NB: For simplicity, we catch and wrap InterruptedException. Do NOT use this class if you are
|
||||
* in the 1% of cases where you actually want to handle that.
|
||||
*/
|
||||
@Override
|
||||
public @Nullable
|
||||
T get(long timeout, TimeUnit unit)
|
||||
throws InterruptedException, ExecutionException, TimeoutException {
|
||||
if (!mReadyLatch.await(timeout, unit)) {
|
||||
throw new TimeoutException("Timed out waiting for result");
|
||||
}
|
||||
if (mException != null) {
|
||||
throw new ExecutionException(mException);
|
||||
}
|
||||
|
||||
return mResult;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience wrapper for {@link #get()} that re-throws get()'s Exceptions as RuntimeExceptions.
|
||||
*/
|
||||
public @Nullable
|
||||
T getOrThrow() {
|
||||
try {
|
||||
return get();
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience wrapper for {@link #get(long, TimeUnit)} that re-throws get()'s Exceptions as
|
||||
* RuntimeExceptions.
|
||||
*/
|
||||
public @Nullable
|
||||
T getOrThrow(long timeout, TimeUnit unit) {
|
||||
try {
|
||||
return get(timeout, unit);
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkNotSet() {
|
||||
if (mReadyLatch.getCount() == 0) {
|
||||
throw new RuntimeException("Result has already been set!");
|
||||
}
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"platforms": ["apple", "android"],
|
||||
"android": {
|
||||
"publication": {
|
||||
"groupId": "host.exp.exponent",
|
||||
"artifactId": "expo.modules.imageloader",
|
||||
"version": "6.0.0",
|
||||
"repository": "local-maven-repo"
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
module.exports = null;
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
require 'json'
|
||||
|
||||
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
|
||||
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'EXImageLoader'
|
||||
s.version = package['version']
|
||||
s.summary = package['description']
|
||||
s.description = package['description']
|
||||
s.license = package['license']
|
||||
s.author = package['author']
|
||||
s.homepage = package['homepage']
|
||||
s.platforms = {
|
||||
:ios => '15.1',
|
||||
:tvos => '15.1'
|
||||
}
|
||||
s.source = { git: 'https://github.com/expo/expo.git' }
|
||||
s.static_framework = true
|
||||
|
||||
s.dependency 'React-Core'
|
||||
s.dependency 'ExpoModulesCore'
|
||||
|
||||
# Swift/Objective-C compatibility
|
||||
s.pod_target_xcconfig = {
|
||||
'DEFINES_MODULE' => 'YES',
|
||||
'SWIFT_COMPILATION_MODE' => 'wholemodule'
|
||||
}
|
||||
|
||||
if !$ExpoUseSources&.include?(package['name']) && ENV['EXPO_USE_SOURCE'].to_i == 0 && File.exist?("#{s.name}.xcframework") && Gem::Version.new(Pod::VERSION) >= Gem::Version.new('1.10.0')
|
||||
s.source_files = "#{s.name}/**/*.h"
|
||||
s.vendored_frameworks = "#{s.name}.xcframework"
|
||||
else
|
||||
s.source_files = "#{s.name}/**/*.{h,m}"
|
||||
end
|
||||
end
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// Copyright 2019-present 650 Industries. All rights reserved.
|
||||
|
||||
#import <ExpoModulesCore/EXInternalModule.h>
|
||||
#import <ExpoModulesCore/EXImageLoaderInterface.h>
|
||||
#import <React/RCTBridgeModule.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface EXImageLoader : NSObject <RCTBridgeModule, EXInternalModule, EXImageLoaderInterface>
|
||||
|
||||
@end
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
// Copyright 2019-present 650 Industries. All rights reserved.
|
||||
|
||||
#import <EXImageLoader/EXImageLoader.h>
|
||||
#import <React/RCTImageLoaderProtocol.h>
|
||||
#import <ExpoModulesCore/EXUtilities.h>
|
||||
|
||||
@interface EXImageLoader ()
|
||||
|
||||
@property (weak, nonatomic) RCTBridge *bridge;
|
||||
|
||||
@end
|
||||
|
||||
@implementation EXImageLoader
|
||||
|
||||
EX_REGISTER_MODULE();
|
||||
|
||||
+ (NSString *)moduleName
|
||||
{
|
||||
return @"EXImageLoader";
|
||||
}
|
||||
|
||||
+ (const NSArray<Protocol *> *)exportedInterfaces
|
||||
{
|
||||
return @[@protocol(EXImageLoaderInterface)];
|
||||
}
|
||||
|
||||
- (void)setBridge:(RCTBridge *)bridge
|
||||
{
|
||||
_bridge = bridge;
|
||||
}
|
||||
|
||||
- (void)loadImageForURL:(NSURL *)imageURL
|
||||
completionHandler:(EXImageLoaderCompletionBlock)completionHandler
|
||||
{
|
||||
[[_bridge moduleForName:@"ImageLoader" lazilyLoadIfNecessary:YES] loadImageWithURLRequest:[NSURLRequest requestWithURL:imageURL]
|
||||
callback:^(NSError *error, UIImage *loadedImage) {
|
||||
completionHandler(error, loadedImage);
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
18247aba20c02293002ede5352d767e2
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
ab7a6fa2440f2d905cc3e8956262a1bb42dd7fd4
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
629413154ddf0f463f69efd14daf0ad2d6b238c6f15a5774e4d527515466073e
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
c24d298c590fb988c40b922ee8f819c729d252df77b14ce7afef8d6c4727f3df461aadaf2eca428e535b8cca5a663eb6be4ac801b301ca7f1471191a4240cb46
|
||||
Generated
Vendored
BIN
Binary file not shown.
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
d275db858ff7957dbeae00c5e5faa788
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
7363cbd9c137c65bd1ae8a2e1ca61a31bedaa4f8
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
352d0424a05612c6eb98a2f31708626657ce93e94946b4a5573c9bd847128468
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
39dd45977d35f1bf3abb5cd07d95aa0c17bc42785e9e75dfa2fe621fa80f197acd2eedb1517f50a1b63f83705378575dc06b4f948ba8434c4e5fb1d28ce98018
|
||||
Generated
Vendored
+103
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"formatVersion": "1.1",
|
||||
"component": {
|
||||
"group": "host.exp.exponent",
|
||||
"module": "expo.modules.imageloader",
|
||||
"version": "6.0.0",
|
||||
"attributes": {
|
||||
"org.gradle.status": "release"
|
||||
}
|
||||
},
|
||||
"createdBy": {
|
||||
"gradle": {
|
||||
"version": "8.14.3"
|
||||
}
|
||||
},
|
||||
"variants": [
|
||||
{
|
||||
"name": "releaseVariantReleaseApiPublication",
|
||||
"attributes": {
|
||||
"org.gradle.category": "library",
|
||||
"org.gradle.dependency.bundling": "external",
|
||||
"org.gradle.libraryelements": "aar",
|
||||
"org.gradle.usage": "java-api"
|
||||
},
|
||||
"dependencies": [
|
||||
{
|
||||
"group": "com.github.bumptech.glide",
|
||||
"module": "glide",
|
||||
"version": {
|
||||
"requires": "4.16.0"
|
||||
}
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"name": "expo.modules.imageloader-6.0.0.aar",
|
||||
"url": "expo.modules.imageloader-6.0.0.aar",
|
||||
"size": 10510,
|
||||
"sha512": "39dd45977d35f1bf3abb5cd07d95aa0c17bc42785e9e75dfa2fe621fa80f197acd2eedb1517f50a1b63f83705378575dc06b4f948ba8434c4e5fb1d28ce98018",
|
||||
"sha256": "352d0424a05612c6eb98a2f31708626657ce93e94946b4a5573c9bd847128468",
|
||||
"sha1": "7363cbd9c137c65bd1ae8a2e1ca61a31bedaa4f8",
|
||||
"md5": "d275db858ff7957dbeae00c5e5faa788"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "releaseVariantReleaseRuntimePublication",
|
||||
"attributes": {
|
||||
"org.gradle.category": "library",
|
||||
"org.gradle.dependency.bundling": "external",
|
||||
"org.gradle.libraryelements": "aar",
|
||||
"org.gradle.usage": "java-runtime"
|
||||
},
|
||||
"dependencies": [
|
||||
{
|
||||
"group": "org.jetbrains.kotlin",
|
||||
"module": "kotlin-stdlib-jdk7",
|
||||
"version": {
|
||||
"requires": "2.1.20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "com.github.bumptech.glide",
|
||||
"module": "glide",
|
||||
"version": {
|
||||
"requires": "4.16.0"
|
||||
}
|
||||
}
|
||||
],
|
||||
"files": [
|
||||
{
|
||||
"name": "expo.modules.imageloader-6.0.0.aar",
|
||||
"url": "expo.modules.imageloader-6.0.0.aar",
|
||||
"size": 10510,
|
||||
"sha512": "39dd45977d35f1bf3abb5cd07d95aa0c17bc42785e9e75dfa2fe621fa80f197acd2eedb1517f50a1b63f83705378575dc06b4f948ba8434c4e5fb1d28ce98018",
|
||||
"sha256": "352d0424a05612c6eb98a2f31708626657ce93e94946b4a5573c9bd847128468",
|
||||
"sha1": "7363cbd9c137c65bd1ae8a2e1ca61a31bedaa4f8",
|
||||
"md5": "d275db858ff7957dbeae00c5e5faa788"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "releaseVariantReleaseSourcePublication",
|
||||
"attributes": {
|
||||
"org.gradle.category": "documentation",
|
||||
"org.gradle.dependency.bundling": "external",
|
||||
"org.gradle.docstype": "sources",
|
||||
"org.gradle.usage": "java-runtime"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"name": "expo.modules.imageloader-6.0.0-sources.jar",
|
||||
"url": "expo.modules.imageloader-6.0.0-sources.jar",
|
||||
"size": 3464,
|
||||
"sha512": "c24d298c590fb988c40b922ee8f819c729d252df77b14ce7afef8d6c4727f3df461aadaf2eca428e535b8cca5a663eb6be4ac801b301ca7f1471191a4240cb46",
|
||||
"sha256": "629413154ddf0f463f69efd14daf0ad2d6b238c6f15a5774e4d527515466073e",
|
||||
"sha1": "ab7a6fa2440f2d905cc3e8956262a1bb42dd7fd4",
|
||||
"md5": "18247aba20c02293002ede5352d767e2"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
05aa0cc29557a41467d87165ad43b093
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
b3ef9dbae25fe3437b14b6512bc0736c20328c9b
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
7666ea2d336fa62249e2b8faafe04971afda4556685c66f7f60d1cb6f6d900b2
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
3d9a2da58f189ffa0a0a6c924fbbe26facf98ef4efa8d8e7a7b77cf01b6a99b496629cbaa90132f40938106a1034a855775fb74a2f02b05afc50d6db7d3e7cb4
|
||||
Generated
Vendored
+41
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<!-- This module was also published with a richer model, Gradle metadata, -->
|
||||
<!-- which should be used instead. Do not delete the following line which -->
|
||||
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
|
||||
<!-- that they should prefer consuming it instead. -->
|
||||
<!-- do_not_remove: published-with-gradle-metadata -->
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>host.exp.exponent</groupId>
|
||||
<artifactId>expo.modules.imageloader</artifactId>
|
||||
<version>6.0.0</version>
|
||||
<packaging>aar</packaging>
|
||||
<name>expo.modules.imageloader</name>
|
||||
<url>https://github.com/expo/expo</url>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>MIT License</name>
|
||||
<url>https://github.com/expo/expo/blob/main/LICENSE</url>
|
||||
</license>
|
||||
</licenses>
|
||||
<scm>
|
||||
<connection>https://github.com/expo/expo.git</connection>
|
||||
<developerConnection>https://github.com/expo/expo.git</developerConnection>
|
||||
<url>https://github.com/expo/expo</url>
|
||||
</scm>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.github.bumptech.glide</groupId>
|
||||
<artifactId>glide</artifactId>
|
||||
<version>4.16.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jetbrains.kotlin</groupId>
|
||||
<artifactId>kotlin-stdlib-jdk7</artifactId>
|
||||
<version>2.1.20</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
00fd7f10f3d969d569b124a73a445dc7
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
9e58919108a6d48d5cfdf9afff094ad28057bb8b
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
e031928276f57c9c6fe4c4fe2e11adfe8bef6a7614adbcc055045a5dc65c8dcc
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
cb4f0353bc9eebbe038307da50b8b4a438f02dc50947eb964e9df35f2d8bddf78ba853adda54685befd96d16f2615e29b24cc2936d41b59dbc89f0be0519a1d3
|
||||
Generated
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<metadata>
|
||||
<groupId>host.exp.exponent</groupId>
|
||||
<artifactId>expo.modules.imageloader</artifactId>
|
||||
<versioning>
|
||||
<latest>6.0.0</latest>
|
||||
<release>6.0.0</release>
|
||||
<versions>
|
||||
<version>6.0.0</version>
|
||||
</versions>
|
||||
<lastUpdated>20250813165924</lastUpdated>
|
||||
</versioning>
|
||||
</metadata>
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
d43f648f8917cbbd46ae23e7fd98d2df
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
febc9012ffd49b4487db148640ce6f4e8fa341af
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
e66cb2996df10b7e27150fbd8f075ea8bb407604fb92fcb9342e1bdc912ba9b7
|
||||
Generated
Vendored
+1
@@ -0,0 +1 @@
|
||||
2c79198620b64d8eb3318989ad287b9589113491c444d5754226fca4a3869f12a975a183ad03d6d7181c0a9f4c537a544f857f892c3057bf911917b5da1dfe32
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "expo-image-loader",
|
||||
"version": "6.0.0",
|
||||
"description": "Image loader",
|
||||
"main": "index.js",
|
||||
"keywords": [
|
||||
"unimodules",
|
||||
"image-loader",
|
||||
"expo-image-loader"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/expo/expo.git",
|
||||
"directory": "packages/expo-image-loader"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/expo/expo/issues"
|
||||
},
|
||||
"author": "650 Industries, Inc.",
|
||||
"license": "MIT",
|
||||
"homepage": "https://github.com/expo/expo/tree/main/packages/expo-image-loader",
|
||||
"dependencies": {},
|
||||
"devDependencies": {},
|
||||
"peerDependencies": {
|
||||
"expo": "*"
|
||||
},
|
||||
"gitHead": "cb7062e2c17d1fb09522834aaaac0e19b766df62"
|
||||
}
|
||||
Reference in New Issue
Block a user