diff --git a/android/src/main/java/com/dylanvann/fastimage/FastImageViewModule.java b/android/src/main/java/com/dylanvann/fastimage/FastImageViewModule.java index ac1d0daab..c88d44bfb 100644 --- a/android/src/main/java/com/dylanvann/fastimage/FastImageViewModule.java +++ b/android/src/main/java/com/dylanvann/fastimage/FastImageViewModule.java @@ -64,8 +64,8 @@ public void run() { }); } - @ReactMethod - public void setMaxDiskCacheSize(int maxSizeInBytes, final Promise promise) { + @ReactMethod + public void setDiskCacheSize(int maxSizeInBytes, final Promise promise) { final Activity activity = getCurrentActivity(); if (activity == null) { promise.resolve(false); diff --git a/dist/PreloaderManager.d.ts b/dist/PreloaderManager.d.ts index f23f3afcf..a7ca33879 100644 --- a/dist/PreloaderManager.d.ts +++ b/dist/PreloaderManager.d.ts @@ -21,6 +21,7 @@ declare class PreloaderManager { preload(sources: Source[], onProgress?: PreloadProgressHandler, onComplete?: PreloadCompletionHandler): void; onProgress({ id, finished, total }: OnProgressParams): void; onComplete({ id, finished, skipped }: OnCompleteParams): void; + setDiskCacheSize(maxSizeInBytes: number): any; } declare const preloaderManager: PreloaderManager; export default preloaderManager; diff --git a/dist/PreloaderManager.d.ts.map b/dist/PreloaderManager.d.ts.map index 76f84516c..acc245a7f 100644 --- a/dist/PreloaderManager.d.ts.map +++ b/dist/PreloaderManager.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"PreloaderManager.d.ts","sourceRoot":"","sources":["../src/PreloaderManager.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,KAAK,EACR,MAAM,EACN,sBAAsB,EACtB,wBAAwB,EAC3B,MAAM,SAAS,CAAA;AAKhB,aAAK,gBAAgB,GAAG;IACpB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,UAAU,CAAC,EAAE,wBAAwB,CAAA;CACxC,CAAA;AAED,aAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,aAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,cAAM,gBAAgB;IAClB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAY;IACrD,YAAY,EAAG,mBAAmB,CAAA;IAClC,YAAY,EAAG,mBAAmB,CAAA;IAElC,OAAO,CACH,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,sBAAsB,EACnC,UAAU,CAAC,EAAE,wBAAwB;IAoBzC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,gBAAgB;IAOpD,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,gBAAgB;CAiBzD;AAED,QAAA,MAAM,gBAAgB,kBAAyB,CAAA;AAE/C,eAAe,gBAAgB,CAAA"} \ No newline at end of file +{"version":3,"file":"PreloaderManager.d.ts","sourceRoot":"","sources":["../src/PreloaderManager.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,OAAO,KAAK,EACR,MAAM,EACN,sBAAsB,EACtB,wBAAwB,EAC3B,MAAM,SAAS,CAAA;AAKhB,aAAK,gBAAgB,GAAG;IACpB,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,UAAU,CAAC,EAAE,wBAAwB,CAAA;CACxC,CAAA;AAED,aAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,aAAK,gBAAgB,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,cAAM,gBAAgB;IAClB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAY;IACrD,YAAY,EAAG,mBAAmB,CAAA;IAClC,YAAY,EAAG,mBAAmB,CAAA;IAElC,OAAO,CACH,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,sBAAsB,EACnC,UAAU,CAAC,EAAE,wBAAwB;IAoBzC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,gBAAgB;IAOpD,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,gBAAgB;IAkBtD,gBAAgB,CAAC,cAAc,EAAE,MAAM;CAG1C;AAED,QAAA,MAAM,gBAAgB,kBAAyB,CAAA;AAE/C,eAAe,gBAAgB,CAAA"} \ No newline at end of file diff --git a/dist/index.cjs.js b/dist/index.cjs.js index 9e1dc176d..37928f166 100644 --- a/dist/index.cjs.js +++ b/dist/index.cjs.js @@ -63,11 +63,14 @@ class PreloaderManager { } } + setDiskCacheSize(maxSizeInBytes) { + return nativeManager.setDiskCacheSize(maxSizeInBytes); + } + } const preloaderManager = new PreloaderManager(); -const FastImageViewModule = reactNative.NativeModules.FastImageView; const resizeMode = { contain: "contain", cover: "cover", @@ -153,14 +156,13 @@ FastImage.priority = priority; FastImage.preload = (sources, onProgress, onComplete) => preloaderManager.preload(sources, onProgress, onComplete); +FastImage.setDiskCacheSize = maxSizeInBytes => preloaderManager.setDiskCacheSize(maxSizeInBytes); + const styles = reactNative.StyleSheet.create({ imageContainer: { overflow: "hidden" } -}); - -FastImage.setDiskCacheSize = maxSizeInBytes => FastImageViewModule.setDiskCacheSize(maxSizeInBytes); // Types of requireNativeComponent are not correct. - +}); // Types of requireNativeComponent are not correct. const FastImageView = reactNative.requireNativeComponent("FastImageView", FastImage, { nativeOnly: { diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index 027df2a9d..0e8d857fe 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAChD,OAAO,EAKH,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,SAAS,EACZ,MAAM,cAAc,CAAC;AAItB,oBAAY,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpE,QAAA,MAAM,UAAU;;;;;CAKN,CAAC;AAEX,oBAAY,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjD,QAAA,MAAM,QAAQ;;;;CAIJ,CAAC;AAEX,aAAK,KAAK,GAAG,WAAW,GAAG,KAAK,GAAG,WAAW,CAAC;AAE/C,QAAA,MAAM,YAAY;;;;CAOR,CAAC;AAEX,oBAAY,MAAM,GAAG;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;CACL;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS,EAAE,eAAe,EAAE,cAAc;IAC1E,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAe,SAAQ,kBAAkB,EAAE,SAAS;IACjE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,WAAW,CAAC,IAAI,IAAI,CAAC;IAErB,UAAU,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAE1C,MAAM,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAElC,OAAO,CAAC,IAAI,IAAI,CAAC;IAEjB,SAAS,CAAC,IAAI,IAAI,CAAC;IAEnB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAE9C;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAE9B;;;;OAIG;IAEH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACnC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACrC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAwED,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,YAAY,EAAE,OAAO,YAAY,CAAC;IAClC,OAAO,EAAE,CACL,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,CAAC,EAAE,sBAAsB,EACnC,UAAU,CAAC,EAAE,wBAAwB,KACpC,IAAI,CAAC;IACV,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,GAChD,yBAAqD,CAAC;AAsC1D,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index 5e2912641..1d82d637e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -56,11 +56,14 @@ class PreloaderManager { } } + setDiskCacheSize(maxSizeInBytes) { + return nativeManager.setDiskCacheSize(maxSizeInBytes); + } + } const preloaderManager = new PreloaderManager(); -const FastImageViewModule = NativeModules.FastImageView; const resizeMode = { contain: "contain", cover: "cover", @@ -146,14 +149,13 @@ FastImage.priority = priority; FastImage.preload = (sources, onProgress, onComplete) => preloaderManager.preload(sources, onProgress, onComplete); +FastImage.setDiskCacheSize = maxSizeInBytes => preloaderManager.setDiskCacheSize(maxSizeInBytes); + const styles = StyleSheet.create({ imageContainer: { overflow: "hidden" } -}); - -FastImage.setDiskCacheSize = maxSizeInBytes => FastImageViewModule.setDiskCacheSize(maxSizeInBytes); // Types of requireNativeComponent are not correct. - +}); // Types of requireNativeComponent are not correct. const FastImageView = requireNativeComponent("FastImageView", FastImage, { nativeOnly: { diff --git a/ios/FastImage/FFFastImagePreloaderManager.m b/ios/FastImage/FFFastImagePreloaderManager.m index 742dc3cd5..2cb90bbea 100644 --- a/ios/FastImage/FFFastImagePreloaderManager.m +++ b/ios/FastImage/FFFastImagePreloaderManager.m @@ -2,6 +2,7 @@ #import "FFFastImagePreloader.h" #import "FFFastImageSource.h" #import "SDWebImageDownloader.h" +#import @implementation FFFastImagePreloaderManager { @@ -76,4 +77,14 @@ - (void) imagePrefetcher:(nonnull SDWebImagePrefetcher *)imagePrefetcher [preloader prefetchURLs:urls]; } +RCT_EXPORT_METHOD(setDiskCacheSize:(NSInteger)maxSizeInBytes resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) +{ + #ifdef DEBUG + NSLog(@"Setting disk cache size to: %ld", (long)maxSizeInBytes); + #endif + [SDImageCache.sharedImageCache.config setMaxDiskSize:maxSizeInBytes]; + + resolve(NULL); +} + @end diff --git a/ios/FastImage/FFFastImageViewManager.m b/ios/FastImage/FFFastImageViewManager.m index 93241d32f..caab34e97 100644 --- a/ios/FastImage/FFFastImageViewManager.m +++ b/ios/FastImage/FFFastImageViewManager.m @@ -1,6 +1,5 @@ #import "FFFastImageViewManager.h" #import "FFFastImageView.h" -#import @implementation FFFastImageViewManager @@ -19,14 +18,4 @@ - (FFFastImageView*)view { RCT_EXPORT_VIEW_PROPERTY(onFastImageLoadEnd, RCTDirectEventBlock) RCT_REMAP_VIEW_PROPERTY(tintColor, imageColor, UIColor) -RCT_EXPORT_METHOD(setDiskCacheSize:(NSInteger)maxSizeInBytes resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -{ - #ifdef DEBUG - NSLog(@"Setting disk cache size to: %ld", (long)maxSizeInBytes); - #endif - [SDImageCache.sharedImageCache.config setMaxDiskSize:maxSizeInBytes]; - - resolve(NULL); -} - @end diff --git a/src/PreloaderManager.tsx b/src/PreloaderManager.tsx index 8b2acca2d..d5bab9495 100644 --- a/src/PreloaderManager.tsx +++ b/src/PreloaderManager.tsx @@ -1,87 +1,91 @@ -import { NativeEventEmitter, NativeModules } from 'react-native' +import { NativeEventEmitter, NativeModules } from "react-native"; -import type { EmitterSubscription } from 'react-native' +import type { EmitterSubscription } from "react-native"; import type { Source, PreloadProgressHandler, PreloadCompletionHandler, -} from './index' +} from "./index"; -const nativeManager = NativeModules.FastImagePreloaderManager -const nativeEmitter = new NativeEventEmitter(nativeManager) +const nativeManager = NativeModules.FastImagePreloaderManager; +const nativeEmitter = new NativeEventEmitter(nativeManager); type PreloadCallbacks = { - onProgress?: PreloadProgressHandler - onComplete?: PreloadCompletionHandler -} + onProgress?: PreloadProgressHandler; + onComplete?: PreloadCompletionHandler; +}; type OnProgressParams = { - id: number - finished: number - total: number -} + id: number; + finished: number; + total: number; +}; type OnCompleteParams = { - id: number - finished: number - skipped: number -} + id: number; + finished: number; + skipped: number; +}; class PreloaderManager { - _instances: Map = new Map() - _subProgress!: EmitterSubscription - _subComplete!: EmitterSubscription + _instances: Map = new Map(); + _subProgress!: EmitterSubscription; + _subComplete!: EmitterSubscription; preload( sources: Source[], onProgress?: PreloadProgressHandler, - onComplete?: PreloadCompletionHandler, + onComplete?: PreloadCompletionHandler ) { nativeManager.createPreloader().then((id: number) => { if (this._instances.size === 0) { this._subProgress = nativeEmitter.addListener( - 'fffastimage-progress', - this.onProgress.bind(this), - ) + "fffastimage-progress", + this.onProgress.bind(this) + ); this._subComplete = nativeEmitter.addListener( - 'fffastimage-complete', - this.onComplete.bind(this), - ) + "fffastimage-complete", + this.onComplete.bind(this) + ); } - this._instances.set(id, { onProgress, onComplete }) + this._instances.set(id, { onProgress, onComplete }); - nativeManager.preload(id, sources) - }) + nativeManager.preload(id, sources); + }); } onProgress({ id, finished, total }: OnProgressParams) { - const instance = this._instances.get(id) + const instance = this._instances.get(id); if (instance && instance.onProgress) - instance.onProgress(finished, total) + instance.onProgress(finished, total); } onComplete({ id, finished, skipped }: OnCompleteParams) { - const instance = this._instances.get(id) + const instance = this._instances.get(id); if (instance && instance.onComplete) - instance.onComplete(finished, skipped) + instance.onComplete(finished, skipped); - this._instances.delete(id) + this._instances.delete(id); if ( this._instances.size === 0 && this._subProgress && this._subComplete ) { - this._subProgress.remove() - this._subComplete.remove() + this._subProgress.remove(); + this._subComplete.remove(); } } + + setDiskCacheSize(maxSizeInBytes: number) { + return nativeManager.setDiskCacheSize(maxSizeInBytes); + } } -const preloaderManager = new PreloaderManager() +const preloaderManager = new PreloaderManager(); -export default preloaderManager \ No newline at end of file +export default preloaderManager; diff --git a/src/index.tsx b/src/index.tsx index ceaa0d2f6..ecf0cc2fe 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -11,11 +11,9 @@ import { TransformsStyle, AccessibilityProps, ViewProps, - NativeModules, } from "react-native"; import preloaderManager from "./PreloaderManager"; -const FastImageViewModule = NativeModules.FastImageView; export type ResizeMode = "contain" | "cover" | "stretch" | "center"; @@ -235,15 +233,15 @@ FastImage.preload = ( onComplete?: PreloadCompletionHandler ) => preloaderManager.preload(sources, onProgress, onComplete); +FastImage.setDiskCacheSize = (maxSizeInBytes: number) => + preloaderManager.setDiskCacheSize(maxSizeInBytes); + const styles = StyleSheet.create({ imageContainer: { overflow: "hidden", }, }); -FastImage.setDiskCacheSize = (maxSizeInBytes: number) => - FastImageViewModule.setDiskCacheSize(maxSizeInBytes); - // Types of requireNativeComponent are not correct. const FastImageView = (requireNativeComponent as any)( "FastImageView",