@nativescript-community/ui-image 5.0.11 → 5.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/index-common.d.ts +30 -1
- package/index-common.js.map +1 -1
- package/index.android.d.ts +11 -4
- package/index.android.js +159 -71
- package/index.android.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.ios.d.ts +3 -3
- package/index.ios.js +6 -18
- package/index.ios.js.map +1 -1
- package/package.json +2 -2
- package/platforms/android/java/com/nativescript/image/CacheKeyStore.java +15 -27
- package/platforms/android/java/com/nativescript/image/CustomGlideModule.java +35 -154
- package/platforms/android/java/com/nativescript/image/CustomGlideUrl.java +2 -2
- package/platforms/android/java/com/nativescript/image/EvictionManager.java +331 -333
- package/platforms/android/java/com/nativescript/image/GlideConfiguration.java +28 -0
- package/platforms/android/java/com/nativescript/image/ModelSignatureDiskLruCacheWrapper.java +321 -0
- package/platforms/android/java/com/nativescript/image/ModelSignatureMemoryCache.java +155 -0
- package/platforms/android/java/com/nativescript/image/SaveKeysRequestListener.java +69 -125
- package/platforms/android/java/com/nativescript/image/SharedPrefCacheKeyStore.java +75 -49
- package/typings/ui_image.android.d.ts +10 -17
- package/platforms/android/java/com/nativescript/image/CapturingEngineKeyFactory.java +0 -43
- package/platforms/android/java/com/nativescript/image/RecordingDigest.java +0 -48
- package/platforms/android/java/com/nativescript/image/RecreatedResourceKey.java +0 -95
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.13](https://github.com/nativescript-community/ui-image/compare/v5.0.12...v5.0.13) (2025-12-26)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @nativescript-community/ui-image
|
|
9
|
+
|
|
10
|
+
## [5.0.12](https://github.com/nativescript-community/ui-image/compare/v5.0.11...v5.0.12) (2025-12-11)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @nativescript-community/ui-image
|
|
13
|
+
|
|
6
14
|
## [5.0.11](https://github.com/nativescript-community/ui-image/compare/v5.0.10...v5.0.11) (2025-12-11)
|
|
7
15
|
|
|
8
16
|
### Bug Fixes
|
package/index-common.d.ts
CHANGED
|
@@ -88,6 +88,35 @@ export interface ImagePipelineConfigSetting {
|
|
|
88
88
|
memoryCacheSize?: number;
|
|
89
89
|
memoryCacheScreens?: number;
|
|
90
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Options for prefetching images with transformations and request options
|
|
93
|
+
*/
|
|
94
|
+
export interface PrefetchOptions {
|
|
95
|
+
/** Custom headers for the request */
|
|
96
|
+
headers?: Record<string, string>;
|
|
97
|
+
/** Decode width for downsampling */
|
|
98
|
+
decodeWidth?: number;
|
|
99
|
+
/** Decode height for downsampling */
|
|
100
|
+
decodeHeight?: number;
|
|
101
|
+
/** Blur radius */
|
|
102
|
+
blurRadius?: number;
|
|
103
|
+
/** Blur downsampling factor (Android only) */
|
|
104
|
+
blurDownSampling?: number;
|
|
105
|
+
/** Round image as circle */
|
|
106
|
+
roundAsCircle?: boolean;
|
|
107
|
+
/** Tint color */
|
|
108
|
+
tintColor?: Color;
|
|
109
|
+
/** Round corner radius for top left */
|
|
110
|
+
roundTopLeftRadius?: number;
|
|
111
|
+
/** Round corner radius for top right */
|
|
112
|
+
roundTopRightRadius?: number;
|
|
113
|
+
/** Round corner radius for bottom left */
|
|
114
|
+
roundBottomLeftRadius?: number;
|
|
115
|
+
/** Round corner radius for bottom right */
|
|
116
|
+
roundBottomRightRadius?: number;
|
|
117
|
+
/** image rotation, iOS only */
|
|
118
|
+
imageRotation?: number;
|
|
119
|
+
}
|
|
91
120
|
export type Stretch = 'none' | 'fill' | 'aspectFill' | 'aspectFit';
|
|
92
121
|
export declare const srcProperty: Property<ImageBase, string | ImageSource | ImageAsset>;
|
|
93
122
|
export declare const headersProperty: Property<ImageBase, Record<string, string>>;
|
|
@@ -164,7 +193,7 @@ export declare abstract class ImageBase extends View {
|
|
|
164
193
|
get nativeImageViewProtected(): any;
|
|
165
194
|
mCanRequestImage: boolean;
|
|
166
195
|
mNeedRequestImage: boolean;
|
|
167
|
-
protected abstract initImage():
|
|
196
|
+
protected abstract initImage(): Promise<void>;
|
|
168
197
|
onResumeNativeUpdates(): void;
|
|
169
198
|
protected handleImageProgress(value: number, totalSize?: number): void;
|
|
170
199
|
private static needsSizeAdjustment;
|
package/index-common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-common.js","sourceRoot":"","sources":["../../src/image/index-common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAa,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKvG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAGxD,MAAM,UAAU,cAAc,CAAC,CAAiB;IAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAU,CAAC;IACtB,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC;AAiDD,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,uCAA2B,CAAA;IAC3B,yCAA6B,CAAA;IAC7B,yCAA6B,CAAA;IAC7B,2CAA+B,CAAA;AACnC,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAe,EAAE,GAAG,IAAI,EAAE,EAAE;IAC7C,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAC;AAC/H,CAAC,CAAC;AAIF,MAAM,CAAN,IAAY,SAaX;AAbD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,8BAAiB,CAAA;IACjB,sCAAyB,CAAA;IACzB,0CAA6B,CAAA;IAC7B,oCAAuB,CAAA;IACvB,8BAAiB,CAAA;IACjB,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,oCAAuB,CAAA;AAC3B,CAAC,EAbW,SAAS,KAAT,SAAS,QAapB;AAmBD,MAAM,UAAU,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,EAAE;IACzD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,CAAC,EAAE,YAAY,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrC,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;YAC5B,YAAY;YACZ,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;YAC5E,OAAO,GAAG,CAAC;QACf,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC;YAC/C,GAAG,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;YAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YAC1B,iDAAiD;YACjD,OAAO,GAAG,CAAC;QACf,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC;AAcD,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,QAAQ,CAA+C,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvG,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAoC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpG,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAC5F,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAC5G,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;AACpG,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAChG,MAAM,CAAC,MAAM,mCAAmC,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,6BAA6B,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC/J,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,+BAA+B,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACnK,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7J,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChI,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5I,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5K,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC7I,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC3I,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClI,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpI,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,QAAQ,CAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAClJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,QAAQ,CAAoB,EAAE,IAAI,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpI,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC5I,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC/K,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,QAAQ,CAAkC;IACpF,IAAI,EAAE,oBAAoB;IAC1B,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,QAAQ,CAAkC;IACrF,IAAI,EAAE,qBAAqB;IAC3B,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,QAAQ,CAAkC;IACvF,IAAI,EAAE,uBAAuB;IAC7B,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,QAAQ,CAAkC;IACxF,IAAI,EAAE,wBAAwB;IAC9B,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,CAAC;AACH,iGAAiG;AACjG,4BAA4B;AAC5B,gCAAgC;AAChC,qBAAqB;AACrB,eAAe;AACf,oFAAoF;AACpF,uFAAuF;AACvF,mFAAmF;AACnF,cAAc;AACd,+CAA+C;AAC/C,YAAY;AAEZ,qJAAqJ;AACrJ,2CAA2C;AAC3C,sEAAsE;AACtE,SAAS;AACT,mBAAmB;AACnB,yBAAyB;AACzB,2CAA2C;AAC3C,0DAA0D;AAE1D,uBAAuB;AACvB,kEAAkE;AAClE,qEAAqE;AACrE,yEAAyE;AACzE,qEAAqE;AACrE,iBAAiB;AACjB,mBAAmB;AACnB,uBAAuB;AACvB,uDAAuD;AACvD,wDAAwD;AACxD,2DAA2D;AAC3D,yDAAyD;AACzD,iBAAiB;AACjB,YAAY;AACZ,QAAQ;AACR,MAAM;AACN,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,QAAQ,CAA8B;IACtE,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,MAAM;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACrJ,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,QAAQ,CAAqB,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAEhK,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,MAAW,EAAE,WAA4B,EAAE,UAA8B;IAC/G,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;QACvC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC9B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;AACN,CAAC,CAAC;AAIF,MAAM,OAAgB,SAAU,SAAQ,IAAI;IAA5C;;QAgDI,qBAAgB,GAAG,IAAI,CAAC;QACxB,sBAAiB,GAAG,KAAK,CAAC;IAyF9B,CAAC;IAhGG,kGAAkG;IAElG,IAAI,wBAAwB;QACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAKM,qBAAqB;QACxB,iHAAiH;QACjH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACrB,CAAC;IACL,CAAC;IAES,mBAAmB,CAAC,KAAa,EAAE,SAAkB,IAAG,CAAC;IAC3D,MAAM,CAAC,mBAAmB,CAAC,SAAoB;QACnD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,QAAQ,SAAS,EAAE,CAAC;YAChB,KAAK,SAAS,CAAC,SAAS,CAAC;YACzB,KAAK,SAAS,CAAC,MAAM,CAAC;YACtB,KAAK,SAAS,CAAC,UAAU,CAAC;YAC1B,KAAK,SAAS,CAAC,YAAY,CAAC;YAC5B,KAAK,SAAS,CAAC,SAAS,CAAC;YACzB,KAAK,SAAS,CAAC,SAAS,CAAC;YACzB,KAAK,SAAS,CAAC,KAAK;gBAChB,OAAO,IAAI,CAAC;YAChB;gBACI,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IACM,kBAAkB,CACrB,YAAoB,EACpB,aAAqB,EACrB,aAAsB,EACtB,cAAuB,EACvB,WAAmB,EACnB,YAAoB,EACpB,WAAmB;QAEnB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;YACjF,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,MAAM,YAAY,GAAG,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,MAAM,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAE7D,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YAC9K,CAAC;YACD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,MAAM,GAAG,CAAC,CAAC;oBACX,MAAM,GAAG,WAAW,CAAC;gBACzB,CAAC;qBAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,MAAM,GAAG,CAAC,CAAC;oBACX,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC;gBAC7B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,aAAa,EAAE,CAAC;oBACjB,MAAM,GAAG,CAAC,CAAC;oBACX,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;gBAClC,CAAC;qBAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,MAAM,GAAG,CAAC,CAAC;oBACX,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACJ,0BAA0B;oBAC1B,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;wBACnB,KAAK,SAAS,CAAC,KAAK,CAAC;wBACrB,KAAK,SAAS,CAAC,SAAS,CAAC;wBACzB,KAAK,SAAS,CAAC,IAAI;4BACf,MAAM;wBACV;4BACI,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;gCAC7B,MAAM,GAAG,CAAC,CAAC;gCACX,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;4BAClC,CAAC;iCAAM,CAAC;gCACJ,MAAM,GAAG,CAAC,CAAC;gCACX,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;4BACxC,CAAC;oBACT,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC7C,CAAC;;AAxIa,4BAAkB,GAAW,eAAe,AAA1B,CAA2B;AAC7C,sBAAY,GAAW,SAAS,AAApB,CAAqB;AACjC,sCAA4B,GAAW,yBAAyB,AAApC,CAAqC;AACjE,mCAAyB,GAAW,sBAAsB,AAAjC,CAAkC;AAC3D,sBAAY,GAAW,SAAS,AAApB,CAAqB;AACjC,qBAAW,GAAW,QAAQ,AAAnB,CAAoB;AAC/B,uBAAa,GAAW,UAAU,AAArB,CAAsB;AACnC,yBAAe,GAAW,YAAY,AAAvB,CAAwB;AAmIzD,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChD,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC5C,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1C,mCAAmC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxD,qCAAqC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1D,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1C,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/C,2BAA2B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAChD,6BAA6B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAClD,8BAA8B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACnD,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,wBAAwB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC7C,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC1C,0BAA0B,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC/C,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC9C,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACxC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACpC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzC,yBAAyB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC9C,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACrC,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC3C,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACtC,kDAAkD;AAElD,sDAAsD"}
|
|
1
|
+
{"version":3,"file":"index-common.js","sourceRoot":"","sources":["../../src/image/index-common.ts"],"names":[],"mappings":"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"}
|
package/index.android.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export * from './index-common';
|
|
2
|
-
import { ImageBase, ImageError as ImageErrorBase, ImageInfo as ImageInfoBase, ImagePipelineConfigSetting, SrcType } from './index-common';
|
|
2
|
+
import { ImageBase, ImageError as ImageErrorBase, ImageInfo as ImageInfoBase, ImagePipelineConfigSetting, PrefetchOptions, SrcType } from './index-common';
|
|
3
3
|
export declare function initialize(config?: ImagePipelineConfigSetting): void;
|
|
4
4
|
export declare class ImagePipeline {
|
|
5
5
|
toUri(value: string | android.net.Uri): string;
|
|
6
|
-
getCacheKey(uri: string
|
|
6
|
+
getCacheKey(uri: string | android.net.Uri): string;
|
|
7
7
|
isInDiskCache(uri: string | android.net.Uri): Promise<boolean>;
|
|
8
8
|
isInBitmapMemoryCache(uri: string | android.net.Uri): boolean;
|
|
9
9
|
evictFromMemoryCache(uri: string | android.net.Uri): Promise<void>;
|
|
@@ -12,8 +12,8 @@ export declare class ImagePipeline {
|
|
|
12
12
|
clearCaches(): Promise<void>;
|
|
13
13
|
clearMemoryCaches(): Promise<void>;
|
|
14
14
|
clearDiskCaches(): Promise<void>;
|
|
15
|
-
prefetchToDiskCache(uri: string): Promise<void>;
|
|
16
|
-
prefetchToMemoryCache(uri: string): Promise<void>;
|
|
15
|
+
prefetchToDiskCache(uri: string, options?: PrefetchOptions): Promise<void>;
|
|
16
|
+
prefetchToMemoryCache(uri: string, options?: PrefetchOptions): Promise<void>;
|
|
17
17
|
private prefetchToCache;
|
|
18
18
|
get android(): any;
|
|
19
19
|
}
|
|
@@ -51,10 +51,17 @@ export declare class Img extends ImageBase {
|
|
|
51
51
|
private isNetworkRequest;
|
|
52
52
|
private progressCallback;
|
|
53
53
|
private loadSourceCallback;
|
|
54
|
+
private skipMemoryCacheOnNextLoad;
|
|
54
55
|
createNativeView(): com.nativescript.image.MatrixImageView;
|
|
55
56
|
disposeNativeView(): void;
|
|
56
57
|
get cacheKey(): string;
|
|
57
58
|
updateImageUri(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Force reload the image, bypassing memory cache and evicting from all caches.
|
|
61
|
+
* Use this when the image file content has changed but the URI remains the same.
|
|
62
|
+
* This ensures Glide loads the fresh content instead of serving cached data.
|
|
63
|
+
*/
|
|
64
|
+
forceReloadImage(): Promise<void>;
|
|
58
65
|
private cancelCurrentRequest;
|
|
59
66
|
private loadImageWithGlide;
|
|
60
67
|
private notifyLoadSource;
|
package/index.android.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
2
2
|
export * from './index-common';
|
|
3
|
-
import { ImageAsset, ImageSource, Trace, Utils, backgroundInternalProperty, knownFolders, path } from '@nativescript/core';
|
|
3
|
+
import { Color, ImageAsset, ImageSource, Trace, Utils, backgroundInternalProperty, knownFolders, path } from '@nativescript/core';
|
|
4
4
|
import { isString } from '@nativescript/core/utils/types';
|
|
5
5
|
import { CLog, CLogTypes, ImageBase, ScaleType, aspectRatioProperty, backgroundUriProperty, blurDownSamplingProperty, blurRadiusProperty, decodeHeightProperty, decodeWidthProperty, fadeDurationProperty, failureImageUriProperty, headersProperty, imageRotationProperty, lowerResSrcProperty, needRequestImage, noRatioEnforceProperty, placeholderImageUriProperty, roundAsCircleProperty, roundBottomLeftRadiusProperty, roundBottomRightRadiusProperty, roundTopLeftRadiusProperty, roundTopRightRadiusProperty, srcProperty, stretchProperty, tintColorProperty, wrapNativeException } from './index-common';
|
|
6
6
|
let initialized = false;
|
|
@@ -18,9 +18,13 @@ export function initialize(config) {
|
|
|
18
18
|
if (config?.memoryCacheScreens > 0) {
|
|
19
19
|
glideConfig.setMemoryCacheScreens(config.memoryCacheScreens);
|
|
20
20
|
}
|
|
21
|
+
if (config?.usePersistentCacheKeyStore) {
|
|
22
|
+
com.nativescript.image.EvictionManager.get().setPersistentStore(new com.nativescript.image.SharedPrefCacheKeyStore(Utils.android.getApplicationContext()));
|
|
23
|
+
}
|
|
21
24
|
signature = new com.bumptech.glide.signature.ObjectKey(config?.globalSignatureKey || globalSignatureKey);
|
|
22
25
|
// Now initialize Glide (which will read from GlideConfiguration)
|
|
23
26
|
glideInstance = com.bumptech.glide.Glide.get(context);
|
|
27
|
+
com.nativescript.image.EvictionManager.get().setGlideInstance(glideInstance);
|
|
24
28
|
// this is needed for further buildKey to trigger ...
|
|
25
29
|
com.bumptech.glide.Glide.with(context).load('toto').apply(new com.bumptech.glide.request.RequestOptions().signature(signature)).preload();
|
|
26
30
|
// com.nativescript.image.EngineKeyFactoryMethodDumper.dumpKeyFactoryMethods(glideInstance);
|
|
@@ -28,81 +32,94 @@ export function initialize(config) {
|
|
|
28
32
|
initialized = true;
|
|
29
33
|
}
|
|
30
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Helper function to determine if a URI is a network request.
|
|
37
|
+
* Only http:// and https:// URLs are considered network requests.
|
|
38
|
+
* @param uri The URI to check
|
|
39
|
+
* @returns true if the URI is a network request, false otherwise
|
|
40
|
+
*/
|
|
41
|
+
function isNetworkUri(uri) {
|
|
42
|
+
// Defensive check for runtime safety (uri should always be a string by TypeScript typing)
|
|
43
|
+
if (!uri) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return uri.startsWith('http://') || uri.startsWith('https://');
|
|
47
|
+
}
|
|
31
48
|
export class ImagePipeline {
|
|
32
49
|
toUri(value) {
|
|
33
50
|
if (value instanceof android.net.Uri) {
|
|
34
51
|
return value.toString();
|
|
35
52
|
}
|
|
36
|
-
return value;
|
|
53
|
+
return getUri(value);
|
|
37
54
|
}
|
|
38
|
-
getCacheKey(uri
|
|
39
|
-
return uri;
|
|
55
|
+
getCacheKey(uri) {
|
|
56
|
+
return this.toUri(uri);
|
|
40
57
|
}
|
|
41
58
|
isInDiskCache(uri) {
|
|
42
|
-
const url = this.
|
|
59
|
+
const url = this.getCacheKey(uri);
|
|
43
60
|
return new Promise((resolve, reject) => {
|
|
44
61
|
com.nativescript.image.EvictionManager.get().isInDiskCacheAsync(url, new com.nativescript.image.EvictionManager.DiskPresenceCallback({
|
|
45
|
-
onResult(
|
|
46
|
-
resolve(
|
|
62
|
+
onResult(present) {
|
|
63
|
+
resolve(present);
|
|
47
64
|
}
|
|
48
65
|
}));
|
|
49
66
|
});
|
|
50
67
|
}
|
|
51
68
|
isInBitmapMemoryCache(uri) {
|
|
52
69
|
// Still not directly accessible, but we can check if it's registered
|
|
53
|
-
const url = this.
|
|
70
|
+
const url = this.getCacheKey(uri);
|
|
54
71
|
return com.nativescript.image.EvictionManager.get().isInMemoryCache(url);
|
|
55
72
|
}
|
|
56
73
|
evictFromMemoryCache(uri) {
|
|
57
|
-
const url = this.
|
|
74
|
+
const url = this.getCacheKey(uri);
|
|
58
75
|
return new Promise((resolve, reject) => {
|
|
59
76
|
com.nativescript.image.EvictionManager.get().evictMemoryForId(url, new com.nativescript.image.EvictionManager.EvictionCallback({
|
|
60
77
|
onComplete(success, error) {
|
|
61
|
-
if (
|
|
62
|
-
resolve();
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
78
|
+
if (error) {
|
|
65
79
|
if (Trace.isEnabled()) {
|
|
66
80
|
CLog(CLogTypes.error, error);
|
|
67
81
|
}
|
|
68
82
|
reject(error);
|
|
69
83
|
}
|
|
84
|
+
else {
|
|
85
|
+
resolve();
|
|
86
|
+
}
|
|
70
87
|
}
|
|
71
88
|
}));
|
|
72
89
|
});
|
|
73
90
|
}
|
|
74
91
|
evictFromDiskCache(uri) {
|
|
75
|
-
const url = this.
|
|
92
|
+
const url = this.getCacheKey(uri);
|
|
76
93
|
return new Promise((resolve, reject) => {
|
|
77
94
|
com.nativescript.image.EvictionManager.get().evictDiskForId(url, new com.nativescript.image.EvictionManager.EvictionCallback({
|
|
78
95
|
onComplete(success, error) {
|
|
79
|
-
if (
|
|
80
|
-
resolve();
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
96
|
+
if (error) {
|
|
83
97
|
if (Trace.isEnabled()) {
|
|
84
98
|
CLog(CLogTypes.error, error);
|
|
85
99
|
}
|
|
86
100
|
reject(error);
|
|
87
101
|
}
|
|
102
|
+
else {
|
|
103
|
+
resolve();
|
|
104
|
+
}
|
|
88
105
|
}
|
|
89
106
|
}));
|
|
90
107
|
});
|
|
91
108
|
}
|
|
92
|
-
evictFromCache(uri) {
|
|
109
|
+
async evictFromCache(uri) {
|
|
93
110
|
const url = this.toUri(uri);
|
|
94
111
|
return new Promise((resolve, reject) => {
|
|
95
112
|
com.nativescript.image.EvictionManager.get().evictAllForId(url, new com.nativescript.image.EvictionManager.EvictionCallback({
|
|
96
|
-
onComplete(success, error) {
|
|
97
|
-
if (
|
|
98
|
-
resolve();
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
113
|
+
async onComplete(success, error) {
|
|
114
|
+
if (error) {
|
|
101
115
|
if (Trace.isEnabled()) {
|
|
102
116
|
CLog(CLogTypes.error, error);
|
|
103
117
|
}
|
|
104
118
|
reject(error);
|
|
105
119
|
}
|
|
120
|
+
else {
|
|
121
|
+
resolve();
|
|
122
|
+
}
|
|
106
123
|
}
|
|
107
124
|
}));
|
|
108
125
|
});
|
|
@@ -111,15 +128,15 @@ export class ImagePipeline {
|
|
|
111
128
|
return new Promise((resolve, reject) => {
|
|
112
129
|
com.nativescript.image.EvictionManager.get().clearAll(new com.nativescript.image.EvictionManager.EvictionCallback({
|
|
113
130
|
onComplete(success, error) {
|
|
114
|
-
if (
|
|
115
|
-
resolve();
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
131
|
+
if (error) {
|
|
118
132
|
if (Trace.isEnabled()) {
|
|
119
133
|
CLog(CLogTypes.error, error);
|
|
120
134
|
}
|
|
121
135
|
reject(error);
|
|
122
136
|
}
|
|
137
|
+
else {
|
|
138
|
+
resolve();
|
|
139
|
+
}
|
|
123
140
|
}
|
|
124
141
|
}));
|
|
125
142
|
});
|
|
@@ -158,49 +175,88 @@ export class ImagePipeline {
|
|
|
158
175
|
}));
|
|
159
176
|
});
|
|
160
177
|
}
|
|
161
|
-
prefetchToDiskCache(uri) {
|
|
162
|
-
return this.prefetchToCache(uri, true);
|
|
178
|
+
prefetchToDiskCache(uri, options) {
|
|
179
|
+
return this.prefetchToCache(uri, true, options);
|
|
163
180
|
}
|
|
164
|
-
prefetchToMemoryCache(uri) {
|
|
181
|
+
prefetchToMemoryCache(uri, options) {
|
|
182
|
+
return this.prefetchToCache(uri, false, options);
|
|
183
|
+
}
|
|
184
|
+
prefetchToCache(uri, toDiskCache, options) {
|
|
165
185
|
return new Promise((resolve, reject) => {
|
|
166
186
|
try {
|
|
187
|
+
const url = this.toUri(uri);
|
|
167
188
|
const context = Utils.android.getApplicationContext();
|
|
168
189
|
const requestManager = com.bumptech.glide.Glide.with(context);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
190
|
+
// Determine if this is a network request
|
|
191
|
+
const isNetworkRequest = isNetworkUri(uri);
|
|
192
|
+
// Build the load model
|
|
193
|
+
let loadModel;
|
|
194
|
+
// Only use CustomGlideUrl for network requests to ensure cache key consistency
|
|
195
|
+
// For local files (file://), use plain URI string to avoid OkHttp requirement
|
|
196
|
+
if (isNetworkRequest) {
|
|
197
|
+
let headersMap = null;
|
|
198
|
+
if (options?.headers) {
|
|
199
|
+
headersMap = new java.util.HashMap();
|
|
200
|
+
for (const key in options.headers) {
|
|
201
|
+
headersMap.put(key, options.headers[key]);
|
|
202
|
+
}
|
|
176
203
|
}
|
|
204
|
+
loadModel = new com.nativescript.image.CustomGlideUrl(url, headersMap, null, // progressCallback
|
|
205
|
+
null // loadSourceCallback
|
|
206
|
+
);
|
|
177
207
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
208
|
+
else {
|
|
209
|
+
// For local files, use plain URI string
|
|
210
|
+
loadModel = url;
|
|
211
|
+
}
|
|
212
|
+
// Use the same model for both disk and memory to ensure key consistency
|
|
213
|
+
let requestBuilder = toDiskCache ? requestManager.downloadOnly().load(loadModel) : requestManager.asBitmap().load(loadModel);
|
|
214
|
+
// Apply transformations if provided
|
|
215
|
+
const transformations = [];
|
|
216
|
+
if (options?.blurRadius) {
|
|
217
|
+
transformations.push(new jp.wasabeef.glide.transformations.BlurTransformation(Math.round(options.blurRadius), options.blurDownSampling || 1));
|
|
218
|
+
}
|
|
219
|
+
if (options?.roundAsCircle) {
|
|
220
|
+
transformations.push(new jp.wasabeef.glide.transformations.CropCircleTransformation());
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
const topLeft = Utils.layout.toDevicePixels(options?.roundTopLeftRadius || 0);
|
|
224
|
+
const topRight = Utils.layout.toDevicePixels(options?.roundTopRightRadius || 0);
|
|
225
|
+
const bottomRight = Utils.layout.toDevicePixels(options?.roundBottomRightRadius || 0);
|
|
226
|
+
const bottomLeft = Utils.layout.toDevicePixels(options?.roundBottomLeftRadius || 0);
|
|
227
|
+
if (topLeft || topRight || bottomRight || bottomLeft) {
|
|
228
|
+
const radius = Math.max(topLeft, topRight, bottomRight, bottomLeft);
|
|
229
|
+
transformations.push(new jp.wasabeef.glide.transformations.RoundedCornersTransformation(Math.round(radius), 0, jp.wasabeef.glide.transformations.RoundedCornersTransformation.CornerType.ALL));
|
|
188
230
|
}
|
|
189
|
-
}
|
|
190
|
-
//
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
231
|
+
}
|
|
232
|
+
// Tint color
|
|
233
|
+
if (options?.tintColor) {
|
|
234
|
+
const tintColor = options.tintColor instanceof Color ? options.tintColor : new Color(options.tintColor);
|
|
235
|
+
transformations.push(new jp.wasabeef.glide.transformations.ColorFilterTransformation(tintColor.android));
|
|
236
|
+
}
|
|
237
|
+
let multiTransform = null;
|
|
238
|
+
if (transformations.length > 0) {
|
|
239
|
+
multiTransform = new com.bumptech.glide.load.MultiTransformation(java.util.Arrays.asList(transformations));
|
|
240
|
+
requestBuilder = requestBuilder.transform(multiTransform);
|
|
241
|
+
}
|
|
242
|
+
// Apply decode size if provided
|
|
243
|
+
if (options?.decodeWidth || options?.decodeHeight) {
|
|
244
|
+
const Target = com.bumptech.glide.request.target.Target;
|
|
245
|
+
const width = options.decodeWidth || Target.SIZE_ORIGINAL;
|
|
246
|
+
const height = options.decodeHeight || Target.SIZE_ORIGINAL;
|
|
247
|
+
if (width === Target.SIZE_ORIGINAL) {
|
|
248
|
+
requestBuilder = requestBuilder.override(height);
|
|
249
|
+
}
|
|
250
|
+
else if (height === Target.SIZE_ORIGINAL) {
|
|
251
|
+
requestBuilder = requestBuilder.override(width);
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
requestBuilder = requestBuilder.override(width, height);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Apply signature
|
|
258
|
+
const ro = new com.bumptech.glide.request.RequestOptions().signature(signature);
|
|
259
|
+
requestBuilder = requestBuilder.apply(ro);
|
|
204
260
|
let futureTarget = null;
|
|
205
261
|
function clearLater() {
|
|
206
262
|
if (futureTarget) {
|
|
@@ -214,7 +270,12 @@ export class ImagePipeline {
|
|
|
214
270
|
}, 0);
|
|
215
271
|
}
|
|
216
272
|
}
|
|
217
|
-
|
|
273
|
+
// Create a composite listener array to save keys during preload
|
|
274
|
+
const objectArr = Array.create(com.bumptech.glide.request.RequestListener, 2);
|
|
275
|
+
// Add SaveKeysRequestListener to capture keys during preload
|
|
276
|
+
objectArr[0] = new com.nativescript.image.SaveKeysRequestListener(url, loadModel, new com.bumptech.glide.signature.ObjectKey(url), // fallback only
|
|
277
|
+
signature);
|
|
278
|
+
objectArr[1] = new com.bumptech.glide.request.RequestListener({
|
|
218
279
|
onLoadFailed(e, model, target, isFirstResource) {
|
|
219
280
|
clearLater();
|
|
220
281
|
reject(e);
|
|
@@ -226,7 +287,7 @@ export class ImagePipeline {
|
|
|
226
287
|
return true;
|
|
227
288
|
}
|
|
228
289
|
});
|
|
229
|
-
futureTarget = requestBuilder.listener(
|
|
290
|
+
futureTarget = requestBuilder.listener(new com.nativescript.image.CompositeRequestListener(objectArr)).preload();
|
|
230
291
|
}
|
|
231
292
|
catch (error) {
|
|
232
293
|
reject(error);
|
|
@@ -328,6 +389,7 @@ export class Img extends ImageBase {
|
|
|
328
389
|
this.isNetworkRequest = false;
|
|
329
390
|
this.progressCallback = null;
|
|
330
391
|
this.loadSourceCallback = null;
|
|
392
|
+
this.skipMemoryCacheOnNextLoad = false;
|
|
331
393
|
}
|
|
332
394
|
createNativeView() {
|
|
333
395
|
if (!initialized) {
|
|
@@ -350,11 +412,23 @@ export class Img extends ImageBase {
|
|
|
350
412
|
return undefined;
|
|
351
413
|
}
|
|
352
414
|
async updateImageUri() {
|
|
415
|
+
return this.forceReloadImage();
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Force reload the image, bypassing memory cache and evicting from all caches.
|
|
419
|
+
* Use this when the image file content has changed but the URI remains the same.
|
|
420
|
+
* This ensures Glide loads the fresh content instead of serving cached data.
|
|
421
|
+
*/
|
|
422
|
+
async forceReloadImage() {
|
|
353
423
|
const imagePipeLine = getImagePipeline();
|
|
354
424
|
const cacheKey = this.cacheKey;
|
|
425
|
+
// Set flag to skip memory cache on next load
|
|
426
|
+
this.skipMemoryCacheOnNextLoad = true;
|
|
427
|
+
// Evict from all caches
|
|
355
428
|
if (cacheKey) {
|
|
356
429
|
await imagePipeLine.evictFromCache(cacheKey);
|
|
357
430
|
}
|
|
431
|
+
// Clear current image and reload
|
|
358
432
|
this.handleImageSrc(null);
|
|
359
433
|
this.initImage();
|
|
360
434
|
}
|
|
@@ -437,7 +511,7 @@ export class Img extends ImageBase {
|
|
|
437
511
|
// Cancel any prior Glide request/target for this view before starting a new one.
|
|
438
512
|
this.cancelCurrentRequest();
|
|
439
513
|
// Determine if this is a network request
|
|
440
|
-
this.isNetworkRequest =
|
|
514
|
+
this.isNetworkRequest = isNetworkUri(uri);
|
|
441
515
|
let requestBuilder;
|
|
442
516
|
let loadModel = uri;
|
|
443
517
|
// Create callbacks separately based on what's needed
|
|
@@ -473,10 +547,12 @@ export class Img extends ImageBase {
|
|
|
473
547
|
}
|
|
474
548
|
});
|
|
475
549
|
}
|
|
476
|
-
// Use CustomGlideUrl
|
|
550
|
+
// Use CustomGlideUrl ONLY for network requests (http/https)
|
|
551
|
+
// For local file:// URIs, use the string directly to avoid CustomDataFetcher's OkHttp requirement
|
|
477
552
|
if (this.isNetworkRequest && (this.headers || this.progressCallback || this.loadSourceCallback)) {
|
|
478
|
-
|
|
553
|
+
let headersMap = null;
|
|
479
554
|
if (this.headers) {
|
|
555
|
+
headersMap = new java.util.HashMap();
|
|
480
556
|
for (const key in this.headers) {
|
|
481
557
|
headersMap.put(key, this.headers[key]);
|
|
482
558
|
}
|
|
@@ -485,6 +561,10 @@ export class Img extends ImageBase {
|
|
|
485
561
|
this.loadSourceCallback // Can be null
|
|
486
562
|
);
|
|
487
563
|
}
|
|
564
|
+
else {
|
|
565
|
+
// For local files or network requests without callbacks/headers, use plain URI
|
|
566
|
+
loadModel = uri;
|
|
567
|
+
}
|
|
488
568
|
requestBuilder = com.bumptech.glide.Glide.with(context).load(loadModel);
|
|
489
569
|
// Apply transformations (blur, rounded corners, etc.)
|
|
490
570
|
const transformations = [];
|
|
@@ -541,7 +621,7 @@ export class Img extends ImageBase {
|
|
|
541
621
|
requestBuilder = requestBuilder.transition(com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade(factory));
|
|
542
622
|
}
|
|
543
623
|
// Cache settings
|
|
544
|
-
if (this.noCache) {
|
|
624
|
+
if (this.noCache || this.skipMemoryCacheOnNextLoad) {
|
|
545
625
|
requestBuilder = requestBuilder.skipMemoryCache(true).diskCacheStrategy(com.bumptech.glide.load.engine.DiskCacheStrategy.NONE);
|
|
546
626
|
}
|
|
547
627
|
// Decode size
|
|
@@ -560,14 +640,18 @@ export class Img extends ImageBase {
|
|
|
560
640
|
}
|
|
561
641
|
}
|
|
562
642
|
const owner = new WeakRef(this);
|
|
563
|
-
const sourceKey = new com.bumptech.glide.signature.ObjectKey(uri);
|
|
564
643
|
const objectArr = Array.create(com.bumptech.glide.request.RequestListener, 2);
|
|
565
644
|
const ro = new com.bumptech.glide.request.RequestOptions().signature(signature);
|
|
566
|
-
objectArr[0] = new com.nativescript.image.SaveKeysRequestListener(uri,
|
|
645
|
+
objectArr[0] = new com.nativescript.image.SaveKeysRequestListener(uri, loadModel, new com.bumptech.glide.signature.ObjectKey(uri), // fallback only
|
|
646
|
+
signature);
|
|
567
647
|
objectArr[1] = new com.bumptech.glide.request.RequestListener({
|
|
568
648
|
onLoadFailed(e, model, target, isFirstResource) {
|
|
569
649
|
const instance = owner.get();
|
|
570
650
|
if (instance) {
|
|
651
|
+
if (instance.skipMemoryCacheOnNextLoad) {
|
|
652
|
+
getImagePipeline().evictFromMemoryCache(uri);
|
|
653
|
+
instance.skipMemoryCacheOnNextLoad = false;
|
|
654
|
+
}
|
|
571
655
|
// If this callback is for a previously canceled request, swallow it to avoid
|
|
572
656
|
// emitting/logging errors for obsolete requests.
|
|
573
657
|
if (instance.currentTarget && target !== instance.currentTarget) {
|
|
@@ -586,6 +670,10 @@ export class Img extends ImageBase {
|
|
|
586
670
|
onResourceReady(resource, model, target, dataSource, isFirstResource) {
|
|
587
671
|
const instance = owner.get();
|
|
588
672
|
if (instance) {
|
|
673
|
+
if (instance.skipMemoryCacheOnNextLoad) {
|
|
674
|
+
getImagePipeline().evictFromMemoryCache(uri);
|
|
675
|
+
instance.skipMemoryCacheOnNextLoad = false;
|
|
676
|
+
}
|
|
589
677
|
// Ignore if the callback is from a previous request (stale).
|
|
590
678
|
if (instance.currentTarget && target !== instance.currentTarget) {
|
|
591
679
|
instance.progressCallback = null;
|