@nativescript-community/ui-image 5.0.17 → 5.1.0

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.
@@ -0,0 +1,46 @@
1
+ import { SharedTransition } from '@nativescript/core';
2
+ /**
3
+ * Shared element transitions with the @akylas/nativescript fork: the fork lets plugins register how to animate their own views.
4
+ * On main NativeScript `registerElementHandler` does not exist and nothing is registered.
5
+ *
6
+ * A MatrixImageView applies its scale type itself: the platform transitions (ChangeBounds + ChangeImageTransform)
7
+ * only resize it, and the image is drawn with the scale type of the start (eg a cropped thumbnail stretched in a fullscreen bounds)
8
+ * until the end of the transition.
9
+ * Here we start with the scale type of the view we leave and morph it to the scale type of the view we enter,
10
+ * following the size of the view while the transition resizes it.
11
+ */
12
+ export function registerSharedTransitionHandler(ImgClass) {
13
+ const register = SharedTransition?.registerElementHandler;
14
+ if (typeof register !== 'function') {
15
+ return;
16
+ }
17
+ register.call(SharedTransition, {
18
+ handle({ from, onEnd, progress, skipImageTransform, to }) {
19
+ if (!(from instanceof ImgClass) || !(to instanceof ImgClass)) {
20
+ return false;
21
+ }
22
+ const fromView = from.nativeViewProtected;
23
+ const toView = to.nativeViewProtected;
24
+ const fromType = fromView?.getAppliedScaleType();
25
+ const toType = toView?.getAppliedScaleType();
26
+ if (!fromType || !toType || fromType.toString() === toType.toString()) {
27
+ return false;
28
+ }
29
+ // the image matrix is computed by the view, we update it ourselves while the view is resized
30
+ skipImageTransform();
31
+ toView.setScaleTypeBlend(fromType, toType, new com.nativescript.image.MatrixImageView.BlendProgressProvider({
32
+ getProgress: (width, height) => progress(width, height)
33
+ }));
34
+ // the view sets its own outline provider (for its border radius) at each size change,
35
+ // which would replace the one which animates the corner radius
36
+ const wasUsingOutlineProvider = toView.isUsingOutlineProvider;
37
+ toView.isUsingOutlineProvider = false;
38
+ onEnd(() => {
39
+ toView.isUsingOutlineProvider = wasUsingOutlineProvider;
40
+ toView.setScaleTypeBlend(null, null, null);
41
+ });
42
+ return true;
43
+ }
44
+ });
45
+ }
46
+ //# sourceMappingURL=shared-transition.android.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-transition.android.js","sourceRoot":"","sources":["../../src/image/shared-transition.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B,CAAC,QAAoB;IAChE,MAAM,QAAQ,GAAI,gBAAwB,EAAE,sBAAsB,CAAC;IACnE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO;IACX,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE;QAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE;YACpD,IAAI,CAAC,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,YAAY,QAAQ,CAAC,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAC1C,MAAM,MAAM,GAAG,EAAE,CAAC,mBAAmB,CAAC;YACtC,MAAM,QAAQ,GAAG,QAAQ,EAAE,mBAAmB,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,EAAE,mBAAmB,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACpE,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,6FAA6F;YAC7F,kBAAkB,EAAE,CAAC;YACrB,MAAM,CAAC,iBAAiB,CACpB,QAAQ,EACR,MAAM,EACN,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,qBAAqB,CAAC;gBAC7D,WAAW,EAAE,CAAC,KAAa,EAAE,MAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;aAC1E,CAAC,CACL,CAAC;YAEF,sFAAsF;YACtF,+DAA+D;YAC/D,MAAM,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC;YAC9D,MAAM,CAAC,sBAAsB,GAAG,KAAK,CAAC;YAEtC,KAAK,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,sBAAsB,GAAG,uBAAuB,CAAC;gBACxD,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;KACJ,CAAC,CAAC;AACP,CAAC"}
@@ -1 +1 @@
1
- {"root":["../../src/image/index-common.ts","../../src/image/index.android.ts","../../src/image/index.d.ts","../../src/image/index.ios.ts","../../src/image/references.d.ts","../../src/image/typings/android.d.ts","../../src/image/typings/glide.android.d.ts","../../src/image/typings/glide.okhttp.android.d.ts","../../src/image/typings/glide.transform.android.d.ts","../../src/image/typings/ios.d.ts","../../src/image/typings/objc!SDWebImage.d.ts","../../src/image/typings/objc!SDWebImagePhotosPlugin.d.ts","../../src/image/typings/ui_image.android.d.ts","../../src/image/vue/index.ts","../../references.d.ts","../../tools/references.d.ts"],"version":"5.8.3"}
1
+ {"root":["../../src/image/index-common.ts","../../src/image/index.android.ts","../../src/image/index.d.ts","../../src/image/index.ios.ts","../../src/image/references.d.ts","../../src/image/shared-transition.android.ts","../../src/image/typings/android.d.ts","../../src/image/typings/glide.android.d.ts","../../src/image/typings/glide.okhttp.android.d.ts","../../src/image/typings/glide.transform.android.d.ts","../../src/image/typings/ios.d.ts","../../src/image/typings/objc!sdwebimage.d.ts","../../src/image/typings/objc!sdwebimagephotosplugin.d.ts","../../src/image/typings/ui_image.android.d.ts","../../src/image/vue/index.ts","../../references.d.ts","../../tools/references.d.ts"],"version":"5.8.3"}
@@ -49,6 +49,8 @@ declare namespace com {
49
49
  setMemoryCacheScreens(memoryCacheScreens: number);
50
50
  getMemoryCacheSize(): number;
51
51
  setMemoryCacheSize(memoryCacheSize: number);
52
+ setOkHttpClient(client: any);
53
+ getOkHttpClient(): any;
52
54
  static getInstance():GlideConfiguration;
53
55
  }
54
56
  export class CacheKeyStore {
@@ -455,6 +457,8 @@ declare namespace com {
455
457
  public mBaseMatrix: globalAndroid.graphics.Matrix;
456
458
  public mExtraMatrix: globalAndroid.graphics.Matrix;
457
459
  public isUsingOutlineProvider: boolean;
460
+ public getAppliedScaleType(): globalAndroid.widget.ImageView.ScaleType;
461
+ public setScaleTypeBlend(from: globalAndroid.widget.ImageView.ScaleType, to: globalAndroid.widget.ImageView.ScaleType, provider: com.nativescript.image.MatrixImageView.BlendProgressProvider): void;
458
462
  public constructor(context: globalAndroid.content.Context);
459
463
  public cancelRotationAnimation(): void;
460
464
  public setImageRotation(degrees: number): void;
@@ -484,6 +488,13 @@ declare namespace com {
484
488
  public onAttachedToWindow(): void;
485
489
  public onDraw(saveCount: globalAndroid.graphics.Canvas): void;
486
490
  }
491
+ export namespace MatrixImageView {
492
+ export class BlendProgressProvider {
493
+ public static class: java.lang.Class<com.nativescript.image.MatrixImageView.BlendProgressProvider>;
494
+ public constructor(implementation: { getProgress(viewWidth: number, viewHeight: number): number });
495
+ public getProgress(viewWidth: number, viewHeight: number): number;
496
+ }
497
+ }
487
498
  export class ProgressInterceptor {
488
499
  public static class: java.lang.Class<com.nativescript.image.ProgressInterceptor>;
489
500
  public intercept(chain: okhttp3.Interceptor.Chain): okhttp3.Response;