private void onDataSourceNewResult(DataSource<T> dataSource) {
      maybeSetDataSourceWithResult(dataSource, dataSource.isFinished());
      // If the data source with the new result is our {@code mDataSourceWithResult},
      // we have to notify our subscribers about the new result.
      if (dataSource == getDataSourceWithResult()) {
        setResult(null, dataSource.isFinished(), dataSource.getExtras());
      }
    }
{@link DataSource} supplier that provides a data source which will forward results of the first
available data source.

<p>Data sources are obtained in order. Only if the current data source fails, or if it finishes
without result, the next one will be tried.
fbcore/src/main/java/com/facebook/datasource/FirstAvailableDataSourceSupplier.java