/* * Copyright (c) 2015-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.facebook.imagepipeline.backends.okhttp; import android.content.Context; import com.facebook.imagepipeline.core.ImagePipelineConfig; import com.facebook.imagepipeline.memory.PoolConfig; import com.facebook.imagepipeline.memory.PoolFactory; import com.squareup.okhttp.OkHttpClient; /** * Factory for getting an {@link com.facebook.imagepipeline.core.ImagePipelineConfig} that uses * {@link com.facebook.imagepipeline.backends.okhttp.OkHttpNetworkFetchProducer}. */ public class OkHttpImagePipelineConfigFactory { public static ImagePipelineConfig.Builder newBuilder(Context context, OkHttpClient okHttpClient) { // Before creating OkHttpNetworkFetchProducer we need to configure and get pool factory - // OkHttpNetworkFetchProducer requires pooled byte buffer factory and common byte array pool. PoolConfig poolConfig = PoolConfig.newBuilder().build(); PoolFactory poolFactory = new PoolFactory(poolConfig); // Create OkHttpNetworkFetchProducer OkHttpNetworkFetchProducer producer = new OkHttpNetworkFetchProducer( okHttpClient, true, poolFactory.getPooledByteBufferFactory(), poolFactory.getCommonByteArrayPool()); // Pass OkHttpNetworkFetchProducer and PoolFactory we created above the pipeline configuration return ImagePipelineConfig.newBuilder(context) .setNetworkFetchProducer(producer) .setPoolFactory(poolFactory); } }