protected void startLoading() {
    Log.i(TAG, "startLoading");
    if (mAdapter == null) {
      // The method was called before the fragment was started
      Log.i(TAG, "[statLoading] mAdapter is null");
      return;
    }

    configureAdapter();
    int partitionCount = mAdapter.getPartitionCount();
    for (int i = 0; i < partitionCount; i++) {
      Partition partition = mAdapter.getPartition(i);
      if (partition instanceof DirectoryPartition) {
        DirectoryPartition directoryPartition = (DirectoryPartition) partition;
        if (directoryPartition.getStatus() == DirectoryPartition.STATUS_NOT_LOADED) {
          if (directoryPartition.isPriorityDirectory() || !mLoadPriorityDirectoriesOnly) {
            startLoadingDirectoryPartition(i);
          }
        }
      } else {
        getLoaderManager().initLoader(i, null, this);
      }
    }

    // Next time this method is called, we should start loading non-priority directories
    mLoadPriorityDirectoriesOnly = false;
  }