@nativescript-community/ui-image 4.3.9 → 4.3.11

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.
@@ -1,6 +1,9 @@
1
1
  package com.nativescript.image;
2
2
 
3
3
  import com.facebook.drawee.view.SimpleDraweeView;
4
+ import com.facebook.imagepipeline.request.ImageRequestBuilder;
5
+ import com.facebook.imagepipeline.request.ImageRequest;
6
+ import com.facebook.drawee.backends.pipeline.PipelineDraweeControllerBuilder;
4
7
 
5
8
  import android.graphics.Outline;
6
9
  import android.graphics.Rect;
@@ -22,6 +25,10 @@ import android.view.ViewOutlineProvider;
22
25
 
23
26
  import org.nativescript.widgets.BorderDrawable;
24
27
 
28
+ import org.json.JSONArray;
29
+ import org.json.JSONObject;
30
+ import org.json.JSONException;
31
+
25
32
  import java.util.Arrays;
26
33
 
27
34
  public class DraweeView extends SimpleDraweeView {
@@ -120,6 +127,7 @@ public class DraweeView extends SimpleDraweeView {
120
127
  && (borderLeftWidth == 0 && borderBottomWidth == 0 && borderTopWidth == 0 && borderRightWidth == 0))
121
128
  || (borderTopLeftRadius == 0 && borderTopRightRadius == 0 && borderBottomRightRadius == 0
122
129
  && borderBottomLeftRadius == 0))) {
130
+ // we can use outline
123
131
  return null;
124
132
  }
125
133
  if (innerBorderPath == null) {
@@ -178,4 +186,70 @@ public class DraweeView extends SimpleDraweeView {
178
186
  }
179
187
  super.onDraw(canvas);
180
188
  }
189
+
190
+ public void setUri(android.net.Uri uri, String jsonOptions, com.facebook.drawee.controller.ControllerListener listener) {
191
+ long start = System.nanoTime();
192
+ ImageRequestBuilder requestBuilder = ImageRequestBuilder.newBuilderWithSource(uri).setRotationOptions( com.facebook.imagepipeline.common.RotationOptions.autoRotate());
193
+ JSONObject object = null;
194
+ if (jsonOptions.length() > 2) {
195
+ try {
196
+ object = new JSONObject(jsonOptions);
197
+ } catch (Exception ignored) {
198
+ }
199
+ }
200
+ if (object != null) {
201
+ if (object.optBoolean("progressiveRenderingEnabled")) {
202
+ requestBuilder = requestBuilder.setProgressiveRenderingEnabled(true);
203
+ }
204
+ if (object.optBoolean("localThumbnailPreviewsEnabled")) {
205
+ requestBuilder = requestBuilder.setLocalThumbnailPreviewsEnabled(true);
206
+ }
207
+ int decodeWidth = object.optInt("decodeWidth");
208
+ int decodeHeight = object.optInt("decodeHeight");
209
+
210
+ if (decodeWidth > 0 && decodeHeight > 0) {
211
+ requestBuilder = requestBuilder.setResizeOptions(new com.facebook.imagepipeline.common.ResizeOptions(decodeWidth, decodeHeight));
212
+ }
213
+ int blurRadius = object.optInt("blurRadius", 0);
214
+ if (blurRadius > 0) {
215
+ int blurDownSampling = object.optInt("blurDownSampling", 1);
216
+ requestBuilder = requestBuilder.setPostprocessor(new com.nativescript.image.ScalingBlurPostprocessor(2, blurRadius, blurDownSampling));
217
+ }
218
+ }
219
+
220
+ ImageRequest request = requestBuilder.build();
221
+ PipelineDraweeControllerBuilder builder = com.facebook.drawee.backends.pipeline.Fresco.newDraweeControllerBuilder();
222
+ builder.setImageRequest(request);
223
+ builder.setCallerContext(uri.toString());
224
+ builder.setControllerListener(listener);
225
+ builder.setOldController(getController());
226
+ // if (Trace.isEnabled()) {
227
+ // builder.setPerfDataListener(
228
+ // new com.facebook.drawee.backends.pipeline.info.ImagePerfDataListener({
229
+ // onImageLoadStatusUpdated(param0: com.facebook.drawee.backends.pipeline.info.ImagePerfData, param1: number) {
230
+ // CLog(CLogTypes.info, 'onImageLoadStatusUpdated', param0, param1);
231
+ // },
232
+ // onImageVisibilityUpdated(param0: com.facebook.drawee.backends.pipeline.info.ImagePerfData, param1: number) {
233
+ // CLog(CLogTypes.info, 'onImageVisibilityUpdated', param0, param1);
234
+ // }
235
+ // })
236
+ // );
237
+ // }
238
+ if (object != null) {
239
+ String lowerResSrc = object.optString("lowerResSrc");
240
+ if (lowerResSrc != null) {
241
+ builder.setLowResImageRequest(com.facebook.imagepipeline.request.ImageRequest.fromUri(android.net.Uri.parse(lowerResSrc)));
242
+ }
243
+
244
+ if (object.optBoolean("autoPlayAnimations")) {
245
+ builder.setAutoPlayAnimations(true);
246
+ }
247
+
248
+ if (object.optBoolean("tapToRetryEnabled")) {
249
+ builder.setTapToRetryEnabled(true);
250
+ }
251
+ }
252
+
253
+ setController(builder.build());
254
+ }
181
255
  }
@@ -14,6 +14,7 @@
14
14
  "com.facebook.imagepipeline.request:ImageRequestBuilder",
15
15
  "com.facebook.imagepipeline.request:ImageRequest",
16
16
  "com.facebook.imagepipeline.core:ImagePipelineConfig",
17
+ "com.facebook.imagepipeline.core:ImagePipelineConfig.Builder",
17
18
  "com.facebook.imagepipeline.core:ImagePipeline",
18
19
  "com.facebook.imagepipeline.common:RotationOptions",
19
20
  "com.facebook.imagepipeline.common:ResizeOptions",
@@ -31,6 +32,6 @@
31
32
  "com.facebook.imagepipeline.image:ImageInfo",
32
33
  "com.facebook.common.util:UriUtil",
33
34
  "android.net:Uri",
34
- "android.net.Uri:Builder"
35
+ "android.net:Uri.Builder"
35
36
  ]
36
37
  }
Binary file
@@ -7,6 +7,7 @@ declare namespace com {
7
7
  class DraweeView extends facebook.drawee.view.SimpleDraweeView {
8
8
  imageWidth: number;
9
9
  imageHeight: number;
10
+ setUri(uri: globalAndroid.net.Uri, options: string, listener: facebook.drawee.controller.ControllerListener);
10
11
  }
11
12
  class ScalingBlurPostprocessor extends facebook.imagepipeline.request.BasePostprocessor {
12
13
  public constructor(iterations: number, blurRadius: number, scaleRatio: number);