assemble method

void assemble(
  1. InfiniteScorllController<T> controller
)

Implementation

void assemble(InfiniteScorllController<T> controller) {
  // infiniteScorllController = controller;
  final indicotorTrigger = this;
  final headerRequest = indicotorTrigger.appendHeadTask;
  final footerRequest = indicotorTrigger.appendFootTask;
  final lThis = this;
  if (lThis is IndicatorLoadTrigger) {
    if (headerRequest != null) {
      MTProcessingManager headProcessManager = MTProcessingManager(
        generateTask: () {
          final task = controller.trickAppendData(
              appendLeading: true,
              request: () {
                return headerRequest(controller);
              });
          return task;
        },
      );
      _headerIndicator = (lThis as IndicatorLoadTrigger).buildHeaderIndicator(headProcessManager, controller);
    }
    if (footerRequest != null) {
      MTProcessingManager footProcessManager = MTProcessingManager(
        generateTask: () {
          final task = controller.trickAppendData(
              appendLeading: false,
              request: () {
                return footerRequest(controller);
              });
          return task;
        },
      );

      _footerIndicator = (lThis as IndicatorLoadTrigger).buildFooterIndicator(footProcessManager, controller);
    }
  } else if (this is AutoLoadTrigger) {
    if (headerRequest != null) {
      MTProcessingManager headProcessManager = MTProcessingManager(
        generateTask: () {
          final task = controller.trickAppendData(
              appendLeading: true,
              request: () {
                return headerRequest(controller);
              });
          return task;
        },
      );
      _headerIndicator = buildHeaderIndicator(headProcessManager, controller);
    }
    if (footerRequest != null) {
      MTProcessingManager headProcessManager = MTProcessingManager(
        generateTask: () {
          final task = controller.trickAppendData(
              appendLeading: false,
              request: () {
                return footerRequest(controller);
              });
          return task;
        },
      );
      _footerIndicator = buildFooterIndicator(headProcessManager, controller);
    }
  }
}