/*
   * TODO Should the disk requests use Strings? Or URIs?
   *
   * TODO Consider changing the List to a Set so that requests are not duplicated.
   */
  public void onPositionVisited(int position) {
    calculateDirection(position);
    RangesToCache ranges = calculateRanges(position);

    for (int i = ranges.diskCacheLowerIndex; i < ranges.diskCacheUpperIndex; i++) {
      List<String> precacheRequestUris = mPrecacheInformationProvider.getRequestsForDiskPrecache(i);
      precacheListToDisk(precacheRequestUris, position);
    }

    for (int i = ranges.memCacheLowerIndex; i < ranges.memCacheUpperIndex; i++) {
      List<PrecacheRequest> precacheRequests =
          mPrecacheInformationProvider.getRequestsForMemoryPrecache(i);
      precacheListToMemory(precacheRequests, position);
    }
  }