@Override
  protected PipelineDraweeController obtainController() {
    if (FrescoSystrace.isTracing()) {
      FrescoSystrace.beginSection("PipelineDraweeControllerBuilder#obtainController");
    }
    try {
      DraweeController oldController = getOldController();
      PipelineDraweeController controller;
      final String controllerId = generateUniqueControllerId();
      if (oldController instanceof PipelineDraweeController) {
        controller = (PipelineDraweeController) oldController;
      } else {
        controller = mPipelineDraweeControllerFactory.newController();
      }
      controller.initialize(
          obtainDataSourceSupplier(controller, controllerId),
          controllerId,
          // NULLSAFE_FIXME[Parameter Not Nullable]
          getCacheKey(),
          // NULLSAFE_FIXME[Parameter Not Nullable]
          getCallerContext(),
          mCustomDrawableFactories);
      controller.initializePerformanceMonitoring(mImagePerfDataListener, this);
      return controller;
    } finally {
      if (FrescoSystrace.isTracing()) {
        FrescoSystrace.endSection();
      }
    }
  }
Concrete implementation of ImagePipeline Drawee controller builder.

<p>See {@link AbstractDraweeControllerBuilder} for more details.
drawee-backends/drawee-pipeline/src/main/java/com/facebook/drawee/backends/pipeline/PipelineDraweeControllerBuilder.java