Add attribute for image-loader module
This commit is contained in:
		
							parent
							
								
									65289867c4
								
							
						
					
					
						commit
						b1ec2c373d
					
				@ -79,6 +79,7 @@ class AppModule {
 | 
				
			|||||||
                .client(client)
 | 
					                .client(client)
 | 
				
			||||||
                .executorService(executorService)
 | 
					                .executorService(executorService)
 | 
				
			||||||
                .resources(resources)
 | 
					                .resources(resources)
 | 
				
			||||||
 | 
					                .autoPlayGif(false)
 | 
				
			||||||
                .build();
 | 
					                .build();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -59,6 +59,9 @@ public class AsyncDrawableLoader implements AsyncDrawable.Loader {
 | 
				
			|||||||
    private final Handler mainThread;
 | 
					    private final Handler mainThread;
 | 
				
			||||||
    private final Drawable errorDrawable;
 | 
					    private final Drawable errorDrawable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // @since 1.1.0
 | 
				
			||||||
 | 
					    private final boolean autoPlayGif;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final Map<String, Future<?>> requests;
 | 
					    private final Map<String, Future<?>> requests;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    AsyncDrawableLoader(Builder builder) {
 | 
					    AsyncDrawableLoader(Builder builder) {
 | 
				
			||||||
@ -67,6 +70,7 @@ public class AsyncDrawableLoader implements AsyncDrawable.Loader {
 | 
				
			|||||||
        this.executorService = builder.executorService;
 | 
					        this.executorService = builder.executorService;
 | 
				
			||||||
        this.mainThread = new Handler(Looper.getMainLooper());
 | 
					        this.mainThread = new Handler(Looper.getMainLooper());
 | 
				
			||||||
        this.errorDrawable = builder.errorDrawable;
 | 
					        this.errorDrawable = builder.errorDrawable;
 | 
				
			||||||
 | 
					        this.autoPlayGif = builder.autoPlayGif;
 | 
				
			||||||
        this.requests = new HashMap<>(3);
 | 
					        this.requests = new HashMap<>(3);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -294,8 +298,15 @@ public class AsyncDrawableLoader implements AsyncDrawable.Loader {
 | 
				
			|||||||
        final byte[] bytes = readBytes(stream);
 | 
					        final byte[] bytes = readBytes(stream);
 | 
				
			||||||
        if (bytes != null) {
 | 
					        if (bytes != null) {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                out = new GifDrawable(bytes);
 | 
					                out = new GifDrawable(bytes);
 | 
				
			||||||
                DrawableUtils.intrinsicBounds(out);
 | 
					                DrawableUtils.intrinsicBounds(out);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // @since 1.1.0
 | 
				
			||||||
 | 
					                if (!autoPlayGif) {
 | 
				
			||||||
 | 
					                    ((GifDrawable) out).pause();
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            } catch (IOException e) {
 | 
					            } catch (IOException e) {
 | 
				
			||||||
                e.printStackTrace();
 | 
					                e.printStackTrace();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -346,6 +357,9 @@ public class AsyncDrawableLoader implements AsyncDrawable.Loader {
 | 
				
			|||||||
        private ExecutorService executorService;
 | 
					        private ExecutorService executorService;
 | 
				
			||||||
        private Drawable errorDrawable;
 | 
					        private Drawable errorDrawable;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // @since 1.1.0
 | 
				
			||||||
 | 
					        private boolean autoPlayGif = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Builder client(@NonNull OkHttpClient client) {
 | 
					        public Builder client(@NonNull OkHttpClient client) {
 | 
				
			||||||
            this.client = client;
 | 
					            this.client = client;
 | 
				
			||||||
            return this;
 | 
					            return this;
 | 
				
			||||||
@ -366,6 +380,18 @@ public class AsyncDrawableLoader implements AsyncDrawable.Loader {
 | 
				
			|||||||
            return this;
 | 
					            return this;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /**
 | 
				
			||||||
 | 
					         * @param autoPlayGif flag indicating if loaded gif should automatically start when displayed
 | 
				
			||||||
 | 
					         * @return self
 | 
				
			||||||
 | 
					         * @since 1.1.0
 | 
				
			||||||
 | 
					         */
 | 
				
			||||||
 | 
					        @NonNull
 | 
				
			||||||
 | 
					        public Builder autoPlayGif(boolean autoPlayGif) {
 | 
				
			||||||
 | 
					            this.autoPlayGif = autoPlayGif;
 | 
				
			||||||
 | 
					            return this;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @NonNull
 | 
				
			||||||
        public AsyncDrawableLoader build() {
 | 
					        public AsyncDrawableLoader build() {
 | 
				
			||||||
            if (client == null) {
 | 
					            if (client == null) {
 | 
				
			||||||
                client = new OkHttpClient();
 | 
					                client = new OkHttpClient();
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user